首页
社区
课程
招聘
[分享]辅助调试UnhandledExceptionFilter 用的WinDBG Script
发表于: 2013-3-13 16:00 5161

[分享]辅助调试UnhandledExceptionFilter 用的WinDBG Script

2013-3-13 16:00
5161
菜鸟交流帖,没啥技术含量,大牛就直接跳过吧。
有热心的大牛给些指导意见 当然更加欢迎。

众所周知,调试使用了SetUnhandledExceptionFilter的SEH时,我们需要修改NtQueryInformationProcess的查询结果,否则所设置的UnhandledExceptionFilter 没机会运行。

这个script就是简单地修改下查询结果,只有一句:

bp NtQueryInformationProcess ".if (poi(@esp)-kernel32!UnhandledExceptionFilter<0x200) {.if(poi(@esp + 8) == 7){r @$t0=poi(@esp + 0xc);bp /1 poi(@esp) \".if($t0){ed @$t0 0};gc\"}};gc"

用法就是 当被调进程异常中断在windbg中的时候,输入上面的命令 或者 $$><执行附件里的txt

思路大体上就是 在 NtQueryInformationProcess处 下个断点,断下来之后 判断 是不是从 UnhandledExceptionFilter里面调用进来的、传第二个参数是否等于ProcessDebugPort,是的话则记录下接收查询结果的地址 和 返回地址,然后在返回地址处下了个断点,在这个断点命中的时候 修改查询结果。

我只在win7 64 上调试了一个32位小exe,能用。不知道其他环境下 能不能用。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持啊。。。。。。。。。。。。。。。。。。。
2013-3-19 09:25
0
雪    币: 52
活跃值: (1384)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我擦,试了一下真管用。。。竟然没人回。
2013-4-2 20:54
0
游客
登录 | 注册 方可回帖
返回
//