首页
社区
课程
招聘
[求助]请教CrashDebuggers里xor esp,esp的作用
发表于: 2008-2-22 16:01 4025

[求助]请教CrashDebuggers里xor esp,esp的作用

2008-2-22 16:01
4025
代码如下:
CrashDebuggers:
lea eax,[ebp + _IsDebuggerPresent]
push eax
push [ebp + kernel32base]
call [ebp + __GetProcAddress]
cmp eax,0h
je NoIDP
call eax
cmp eax,0h
je NoIDP
xor esp,esp ;hang debuggers
NoIDP: ret

不知这里xor esp,esp能产生什么作用?这样为什么可以 hang debuggers?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
那个东西是用来欺负菜鸟的

为高手制造点麻烦的
2008-2-22 16:05
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
3
xor esp,esp 相当于 esp 清零
再 ret 之后 相当于让程序到 00000000 地址处去执行。
这样程序就无法继续了。

个人理解,仅供参考!
2008-2-22 18:12
0
雪    币: 4583
活跃值: (3567)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=petnt;419171]xor esp,esp 相当于 esp 清零
再 ret 之后 相当于让程序到 00000000 地址处去执行。
这样程序就无法继续了。

个人理解,仅供参考![/QUOTE]

不是吧。esp清零后,ret指令将导致流程转向[0h],而不是转向0h。
2008-2-24 20:57
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
5
谢谢纠正。。
2008-2-24 21:09
0
雪    币: 88
活跃值: (136)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
谢谢了,学习了,,,
2008-2-25 17:09
0
雪    币: 200
活跃值: (245)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这是典型的SEH防破代码。
执行上述后就进入SEH,如果已设了SEH纠错接口,就会继续程序的正常执行。
如果是调试器跟踪时,可能必须手工解决SEH。。。
不然各类调试器反应不一。。。。。。。。。。。。。。。
2008-2-25 19:02
0
游客
登录 | 注册 方可回帖
返回
//