经过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的地址应该怎么计算呢?

【转】https://tieba.baidu.com/p/6135060219?red_tag=1477406169

最新文章

  1. fso查找被删除的文件
  2. 打开页面自动打开QQ的javascript代码
  3. C++回顾map的用法
  4. 模拟position:fixed效果
  5. 每天一个 Linux 命令(12):more命令
  6. hdu 1290
  7. 文件系统层次标准FHS的详细介绍
  8. STL中set底层实现方式
  9. 【转载】Spring中DispatcherServlet与ContextLoaderListener的区别
  10. DJANGO增加超级用户
  11. @repository注解
  12. 程序ajax请求公共组件-- app-jquery-http.js
  13. String to Integer (atoi) - 字符串转为整形,atoi 函数(Java )
  14. java中类之间的关系之封装、继承与多态的几个例子
  15. C语言那年踩过的坑--局部变量,静态变量,全局变量在内存中存放的位置
  16. 转: 关于linux用户时间与系统时间的说明
  17. odoo Q-web
  18. api文档管理系统合集
  19. 原型模式Prototype,constructor,__proto__详解
  20. 基于PHP构建OAuth 2.0 服务端 认证平台

热门文章

  1. Windows 搭建MongoDB分片集群(一)
  2. bzoj4182 Shopping 点分治+单调队列优化多重背包
  3. hibernate 5原生sql查询测试学习代码
  4. windows下zookeeper单机版安装+dubbo-admin安装注意点
  5. oracle中分页函数写法
  6. ISO C 字符串创建算符 “#”
  7. Linux 统计文件夹下文件个数及目录个数
  8. php fmod()函数 语法
  9. 早日选择一门自己喜欢的,然后瞄准目标,不达目的誓不罢休。像文章的作者一样成为一名成功的IT人士。
  10. iOS Android中 h5键盘遮挡输入框的问题和解决方案