首页
社区
课程
招聘
脱壳为什么在最后的异常后下内存断点而单步跟踪进入ntdll后用alt+F9却跑飞了??
发表于: 2006-7-26 17:57 4182

脱壳为什么在最后的异常后下内存断点而单步跟踪进入ntdll后用alt+F9却跑飞了??

2006-7-26 17:57
4182
脱壳为什么在最后的异常后下内存断点而单步跟踪进入ntdll后用alt+F9却跑飞了??
------------------
我在脱壳(ASProtect 1.23 RC1 -> Alexey Solodovnikov)的时候,在n-1个异常时候,alt+M在code段下断点,OK没有问题!!找到了OEP..
但是如果我在n-1个异常时候,跟进seh后,再进入ntdll.dll我用alt+F9想返回用户代码,却跑飞了!!!请问是为s什么??

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶到答案出来。。
2006-7-28 04:00
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
最初由 lwglucky 发布
跟进seh后,再进入ntdll.dll我用alt+F9想返回用户代码,却跑飞了!!!请问是为s什么??


你对SEH好像还不是太了解,找些资料看看。
seh进去后,不是按alt+F9就能返回到用户代码。
而是根据SEH不同类型得到返回地址,如handler或CONTEXT.EIP等。
2006-7-28 09:20
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
首先谢谢看雪斑竹的提醒。。。(我可是你书的忠实买者啊。呵呵 ) ,,把书翻出来仔细看了看,果然。。。。
经验分享:(老鸟就不要要看了)

---------SEH代码
0187751C    55             push ebp
0187751D    8BEC           mov ebp,esp
0187751F    8B45 10        mov eax,dword ptr ss:[ebp+10】《-指向context
01877522    33D2           xor edx,edx
01877524    8950 04        mov dword ptr ds:[eax+4],edx--]<--清除0硬件断点
01877527    8B15 74318801  mov edx,dword ptr ds:[1883174]
0187752D    8990 C4000000  mov dword ptr ds:[eax+C4],edx<- 新的堆栈位置
01877533    33D2           xor edx,edx
01877535    8950 08        mov dword ptr ds:[eax+8],edx <--清除1硬件断点
01877538    8B15 78318801  mov edx,dword ptr ds:[1883178]
0187753E    8990 B4000000  mov dword ptr ds:[eax+B4],edx 《-新的EBP
01877544    33D2           xor edx,edx
01877546    8950 0C        mov dword ptr ds:[eax+C],edx <--清除2硬件断点
01877549    8B15 7C318801  mov edx,dword ptr ds:[188317C]
0187754F    8990 B8000000  mov dword ptr ds:[eax+B8],edx<-新的eip..呵呵
01877555    33D2           xor edx,edx
01877557    8950 10        mov dword ptr ds:[eax+10],edx <--清除3硬件断点
0187755A    33C0           xor eax,eax
0187755C    5D             pop ebp
0187755D    C3             retn
2006-7-30 00:34
0
游客
登录 | 注册 方可回帖
返回
//