首页
社区
课程
招聘
[旧帖] [求助]还是脱壳的艺术2.4 Debugger Interrupts中问题 0.00雪花
发表于: 2011-10-9 16:54 1434

[旧帖] [求助]还是脱壳的艺术2.4 Debugger Interrupts中问题 0.00雪花

2011-10-9 16:54
1434
在脱壳的艺术2.4 Debugger Interrupts中,示例
; set exception handler
1、push .exeception_handler  ;此处压入新的例外处理过程的地址
2、push dword [fs:0]        ;保存原有的例外处理过程地址
3、mov [fs:0],esp           ;这儿本意是将新的例外处理过程地址送入fs:0
;reset flag(EAX) invoke int3
xor eax,eax
int3
前面2句代码我明白,但是第3句我就有些不明白了,为何是esp送入[fs:0],此时esp并没有指向exception handler处理过程啊。
我的分析如下:
假定原来第1句执行前ESP值是0012FFE8
push .exeception_handler ;此句执行后ESP值变为0012FFE4
push dword [fs:0]        ;此句执行后ESP值变为0012FFE0
mov [fs:0],esp           ;将0012FFE0送入地址[fs:0]

本来是应当将新的exeception_handler送入[fs:0]才对的,送ESP值不合理啊!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有明白的请指教一下!
2011-10-10 15:54
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
懂的前辈们指点下,实在不明白
2011-10-11 16:56
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
再仔细了解下。
2011-10-11 16:59
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我从网上搜到的几个例子都是这样写的,我就不明白了,第3句为什么那样写,esp值根本没有指向新的例外处理过程,网上估计是一个抄一个,烦啊,有谁知道?1,2即便调整顺序,esp值也不是指向新例程地址,而只是指向堆栈区,弄不懂,请达人出来分析下。看过本站脱壳的艺术的说下。
2011-10-11 17:19
0
雪    币: 343
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
http://bbs.pediy.com/showthread.php?t=140970看下这篇
2011-10-11 17:28
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢,我先看看你贴的那个贴子里的代码部分。
2011-10-11 18:17
0
游客
登录 | 注册 方可回帖
返回
//