-
-
[旧帖]
[求助]还是脱壳的艺术2.4 Debugger Interrupts中问题
0.00雪花
-
发表于:
2011-10-9 16:54
1435
-
[旧帖] [求助]还是脱壳的艺术2.4 Debugger Interrupts中问题
0.00雪花
在脱壳的艺术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直播授课