Archive for the ‘汇编与逆向’ Category

FS寄存器,关于前一篇中获得当前PEB的一些疑点

星期四, 十二月 17th, 2009

FS寄存器指向当前活动线程的TEB结构(线程结构)

偏移 说明
000 指向SEH链指针
004 线程堆栈顶部
008 线程堆栈底部
00C SubSystemTib
010 FiberData
014 ArbitraryUserPointer
018 FS段寄存器在内存中的镜像地址
020 进程PID
024 线程ID
02C 指向线程局部存储指针
030 PEB结构地址(进程结构)
034 上个错误号

得到KERNEL32.DLL基址的方法


(全文…)

kernel32里的 GetVersion 函数的逆向分析

星期一, 十二月 14th, 2009

今天在家调试程序,跟进了一个函数kernel32里面的GetVersion函数。最近刚好在学逆向。心一横,干脆把它逆了。

代码如下:

0043846A  |.  FF15 70F14500 call    dword ptr [<&KERNEL32.GetVersion>]                ;  kernel32.GetVersion

7C81126A >  64:A1 18000000       mov     eax, dword ptr fs:[18]         ; 获得当前线程的TEB地址
7C811270    8B48 30                       mov     ecx, dword ptr [eax+30]        ; 在TEB偏移30h处获得PEB地址
7C811273    8B81 B0000000        mov     eax, dword ptr [ecx+B0]
7C811279    0FB791 AC000000   movzx   edx, word ptr [ecx+AC]
7C811280    83F0 FE                       xor     eax, FFFFFFFE
7C811283    C1E0 0E                      shl     eax, 0E
7C811286    0BC2                            or      eax, edx
7C811288    C1E0 08                      shl     eax, 8
7C81128B    0B81 A8000000        or      eax, dword ptr [ecx+A8]
7C811291    C1E0 08         shl       eax, 8
7C811294    0B81 A4000000        or      eax, dword ptr [ecx+A4]
7C81129A    C3                                retn
解析:

【天书笔记】C函数传参过程

星期天, 十二月 13th, 2009

一.C函数调用与堆栈的关系

C语言通过堆栈将参数传入函数内部

push和pop的时候esp用于指向栈顶——栈顶总是栈中地址最小的位置。push则esp减少,pop则esp增加。

二.函数调用规则

定义:函数调用规则是指调用者和被调用函数之间传递参数及返回参数的方法。

Windows上常用的有Pascal方式,WINAPI(_stdcall)方式以及C方式(_cdecl)。

1._cdecl方式

参数入栈:参数从右到左依次入栈

清理方式:函数返回后,调用者负责清理堆栈。这种调用会生成较大的可执行程序。

2._stdcall方式(WINAPI方式)

参数入栈:参数从右到左依次入栈

清理方式:被调用函数在返回前自行清理堆栈。生成代码比_cdecl方式小。

3.Pascal方式

入栈方式:参数从左到右依次入栈

清理方式:被调用函数在返回前自行清理堆栈

不支持可变参数的函数调用

此外Windows内核中还有常见的_fastcall快速调用;c++中有_thiscall方式。

任何调用方式,最终返回值都是写入eax,然后返回。外部从eax中取得返回值。 (全文…)

վ:Ħ Ϻgay ŰĦ Ϻ տ ɽ ɽ ŰĦ Ϻ˹˾ ŰĦ ϺŰĦ ˹˾ ݰĦ ŰĦ Ħ ϺĦ ͬ־ Ѽ˹˾ ŰĦ ϺѼ ɳ᳡ shenzhen massage ŰĦ ͬ־ Ϸʿյά ϲŰĦ 人˿ఴĦ ɽ˹˾ Ϻ Ѽ˿ Ħ ֣ŰĦ ˹˾ ݼѼ Ϻ ǿ Ϻ ڰ᳡۸ °˾
ӣǵɽǵݸǵ麣ǵɽǵɳǵɽǵǵǵǵϺǵǵǵǵݸǵɽǵ麣ǵǵɽǵɽǵǵǵǵǵǵǵǵϺǵŰĦϺǵɽanĦൺǵӰװϷϺǵϾŰĦϾŰĦϾŰĦ㶫huλ㽭huңhuң
ӣҸĻȾ,ɾӹȫ.
ugg boots cheap UGG Boots UGG Boots Sale UGG Bailey Button Triplet ugg australia uk mens ugg boots new ghd hair straighteners coach handbags outlet
ӣվĶ٣ÿ쿴ɾ, ұ˫Ϊ˴Ǯ;ãӲҪɾҾɾվɾipҲ㡣
ɹͷ Ҹ θ Ƽʪõķ ҸƷ ƾõҽԺ 򾲶ʮζ ƹɹͷҩ θҩ ҽԺ ɹͷô ƹɹͷõҽԺ θҽԺ ̿۸ lovegreen californianews
ӣǵάɽǵάݸǵά麣ǵάɽǵάɳǵάɽǵάǵάǵάǵάϺǵάǵάǵάǵάݸǵάɽǵά麣ǵάǵάɽǵάɽǵάǵάǵάǵάǵάǵάǵάǵάϺװ˿㰴ĦϺǵάɽСlaohujiϷǵӰװϾСϾСϾС㽭huϷɽǵά˿㰴Ħ