-
-
未解决 [求助]关于逆向后参数地址的问题
-
发表于: 2019-5-16 18:01 830
-
经过IDA反编译后的代码是:
int __cdecl Ompress(void *Dst, int a2, int a3, int a4)//dst(
[esp+24h][ebp+4h]
);a2([esp+28h][ebp+8h]);a3([esp+2Ch][ebp+Ch]);a4(
[esp+30h][ebp+10h]
)
{ _BYTE *v4; // ecx
int v5; // esi
char *v6; // edi
signed int v7; // ebp
int result; // eax
int Src; // [esp+4h] [ebp-1Ch]
_BYTE *v10; // [esp+8h] [ebp-18h]
_DWORD *v11; // [esp+Ch] [ebp-14h]
int v12; // [esp+10h] [ebp-10h]
v4 = Dst;
...........}
在ollydbg里,显示这段汇编是:
sub esp,0x1C
mov eax,dword ptr ss:[esp+0x24]
mov ecx,dword ptr ss:[esp+0x20]
mov dword ptr ss:[esp+0x8],eax
xor eax,eax
mov edx,0x80
mov dword ptr ss:[esp+0xC],0x0
mov word ptr ss:[esp+0xC],dx
cmp dword ptr ss:[esp+0xC],edx
push ebx
mov ebx,dword ptr ss:[esp+0x2C]
。。。。。。。。。。。。
我从
mov ecx,dword ptr ss:[esp+0x20]这一句,认为这个就是反编译后的
v4 = Dst这一句,这样我判断dst的实际地址是
ss:[esp+0x20],那么其他的参数的地址是不是可以依次向后推4个字节?如果是的话那么为什么od里的dst地址是
ss:[esp+0x20],跟ida编译的不一样?或者实际参数不是这样推导的?这样的话Src的地址应该怎么计算呢?求各位老哥看下。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-5-16 18:14
被zzllvlv编辑
,原因:
赞赏
看原图
赞赏
雪币:
留言: