首页
社区
课程
招聘
学写简单调试器,对于调试API的几点困惑
发表于: 2013-6-21 20:15 4357

学写简单调试器,对于调试API的几点困惑

2013-6-21 20:15
4357
软件加密技术内幕书中说ContinueDebugEvent这个函数中最后参数可以是以下两种  DBG_CONTINUE和 DBG_EXCEPTION_NOT_HANDLED,书中说DBG_CONTINUE即表示调试器已处理了该异常,程序在发生异常的地方继续执行,异常分发结束。DBG_EXCEPTION_NOT_HANDLED这个是去搜索被调试进程的异常处理例程如果有就执行 没有还会继续给调试器发送调试事件

我现在糊涂的是 我自己试验 发现在被调试进程中 int 3 触发断点异常后,如果DBG_CONTINUE参数设置成这个的话 被调试进程不会再发生异常的地方继续执行 而是继续往下执行 直接执行的是eip指向的int 3指令下一句了。书上的意思是死循环 一直在异常指令那里,请大牛明示

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
2
什么书?你自己要修改contet中的eip才可以让异常指令重新执行。
2013-6-21 20:38
0
雪    币: 19
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
异常的话会,中断的话不会。处理方式不一样罢了
2013-6-21 20:40
0
雪    币: 19
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
你可以用除零异常和int3对比一下。
2013-6-21 20:41
0
雪    币: 645
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
按道理来说是不是应该 一直会触发异常 不会向下执行 除非改变CONTEXT.regEip的值是吧?
2013-6-21 20:46
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
int 3 应该是自陷   和 异常是不同的~~~
2013-6-21 20:52
0
雪    币: 645
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢上面三位前辈指教 刚才测试了下 int 3确实可以继续往下执行 除零不行 一直触发异常
2013-6-21 20:54
0
游客
登录 | 注册 方可回帖
返回
//