| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:关于自己反汇编的一个的一个DLL 中某个函数不是很了解,请高手过来指点一下
只看楼主 加入收藏
wsz9903011
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2009-4-24
结帖率:90.91%
收藏
已结贴  问题点数:0 回复次数:5 
关于自己反汇编的一个的一个DLL 中某个函数不是很了解,请高手过来指点一下
push ebp
mov  ebp,esp
mov  eax,000010f0
call 1001105A  ;这里面迷糊
push ebx
push esi
push edi
lea  edi,dword ptr [ebp+FFFFEF10];其实就是开辟ebp-10f0 局部空间
mov ecx,0000043c
mov eax,cccccccc
repz
stosd  初始化 局部空间 全部填充为 0xcc

========================================
但call 1001105A 里面的 是干嘛的? 是开辟局部空间的?

push ecx ;设置一个小的局部变量????
lea ecx,dword ptr [esp+04]; 指向返回地址的 堆栈??
sub ecx,eax ;ecx-10f0
sbb eax,eax
not eax
and ecx,eax
mov eax,esp
and eax,FFFFF000;这一步想干嘛??

L2: cmp ecx,eax
jb  L1 ;这里我简化下用L1代替   下面都不是很明白 最后怎么平衡堆栈啊  esp 跟 eax 都对换了 ret还怎么回去?

mov eax,ecx
pop ecx
xchg eax,esp
mov eax,dword ptr [eax]
mov dword ptr [esp],eax
ret

L1: sub eax,00001000
test dword ptr [eax],eax
jmp L2
搜索更多相关主题的帖子: 空间 edi 
2011-07-03 23:20
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:10 
call 1001105A  调运1001105A对应的过程
2011-07-03 23:53
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
回复 楼主 wsz9903011
push ecx ;保存ECX,以便以后恢复
2011-07-03 23:54
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
回复 楼主 wsz9903011
jb  L1 ;这里我简化下用L1代替   下面都不是很明白 最后怎么平衡堆栈啊  esp 跟 eax 都对换了 ret还怎么回去?
没有换
2011-07-03 23:56
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
回复 楼主 wsz9903011
lea ecx,dword ptr [esp+04];如果没搞错,是返回地址的地址
2011-07-03 23:59
wsz9903011
Rank: 1
等 级:新手上路
帖 子:35
专家分:7
注 册:2009-4-24
收藏
得分:0 
下面那个循环干嘛的? 好像没什么意义
2011-07-04 00:12
快速回复:关于自己反汇编的一个的一个DLL 中某个函数不是很了解,请高手过来指点 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014724 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved