首页
论坛
专栏
课程

[求助]关于逆向后参数地址的问题

2019-5-16 18:01 200

[求助]关于逆向后参数地址的问题

2019-5-16 18:01
200
经过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的地址应该怎么计算呢?求各位老哥看下。



[公告]LV6级以上的看雪会员可以免费获得《2019安全开发者峰会》门票一张!!

最后于 2019-5-16 18:14 被zzllvlv编辑 ,原因:
最新回复 (0)
游客
登录 | 注册 方可回帖
返回