|
发表于 2014-3-25 09:23:28
|
显示全部楼层
本帖最后由 lslin 于 2014-3-26 09:28 编辑
随便帖一段代码给你说下
00686f30 53 push ebx
00686D11 56 push esi
00686D12 57 push edi 这里是保存环境,程序尾部会POP还原
00686D13 83C4 F8 add esp, -8 这里申请了(2个DWORD型)局部变量
00686D16 894C24 04 mov dword ptr [esp+4], ecx 把ECX的值放入申请的一个局部变量
00686D1A 891424 mov dword ptr [esp], edx 把EDX的值放入申请的另外一个局部变量
00686D1D 33D2 xor edx, edx
00686D1F 8B3424 mov esi, dword ptr [esp] 这里是把局部变量的值放到ESI
00686D22 2BB0 140B0800 sub esi, dword ptr [eax+80B14]
00686D28 8B4C24 04 mov ecx, dword ptr [esp+4]
00686D2C 2B88 180B0800 sub ecx, dword ptr [eax+80B18]
00686D32 85F6 test esi, esi
。。。。。。
。。。。。。
上面是我最近逆向的代码,将就将就,(其实这段没有保存栈地址,只不过保证了栈平衡就行了)
下面[ESP]什么的自己想象,有代码很容易理解,我只帖上头部的代码,一般尾部都会平衡栈,比如上面的代码
的尾部一般会有 ADD ESP,8
希望对楼主有所帮助
|
|