首页
社区
课程
招聘
[原创]调试引擎(第一次修正)
发表于: 2010-2-9 14:09 34854

[原创]调试引擎(第一次修正)

2010-2-9 14:09
34854

我正在实现一个调试引擎。但是,由于我电脑处理器以及时间的问题,很多都没有测试,所以,在这儿发帖,希望有人愿意麻烦麻烦,帮我测试下我还没有测试的功能,并把出错信息返回给我

谢谢!!!

里面关于硬件断点的设计,由于太复杂。所以,我先提醒下:
执行断点 只能是 one-byte。例如:0x401 是dr0的局部执行断点。意思是 第10位和第1位置1.其他调试寄存器不予设置。在设置读写 硬件断点时,必须对齐。(细节请参照inter manual)说明里面提到的Dr1 ,dr2,dr3未完成部分, 已经设置

(DbgRelease是调试引擎文件,test我写的测试程序,test_src是测试程序的源代码,Dbg是 调试引擎的源代码)

第一次修正:DbgEngine_1.rar。添加了exe基地址重定位判断。

期待你的建议


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (35)
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
sd:)  看一下
2010-2-9 14:13
0
雪    币: 615
活跃值: (1372)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
那很酷 很赞
2010-2-9 14:42
0
雪    币: 202
活跃值: (543)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
4
关注 /:^}

前排,待修改
2010-2-9 19:02
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
5
建议对内存断点能不能增加功能,现在OD里对内存断点的处理是,对目标地址所在的0x1000处的代码段进行调试属性设置,然后一旦有读写操作就马上中断下来,我觉得首先是不够精确,其次是只能下一个内存断点,不知道你能不能在你的调试器里对这2个问题改进下,谢谢!
2010-2-9 19:33
0
雪    币: 424
活跃值: (2504)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
MSDN里好像看到过说设置内存属性是以页为单位的,如果还是以这种原理来实现内存断点的话,这个精度估计还是得多加个地址范围判断和重复设置内存属性吧。
2010-2-10 03:10
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
7
不用那么麻烦的,虽然说是以页为单位设置断点,但如果中断以后可以获取到具体哪个地址被读写,判断一下就行了。即使是同一个页内的多个断点,只对该页进行一次设置就够的。
2010-2-10 10:17
0
雪    币: 7357
活跃值: (3878)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
8
原来不是开源的啊?
2010-2-10 10:38
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
楼主是个铁公鸡,找人帮你调试,连KX都不给
2010-2-10 11:10
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
使用该引擎有办法知道我是因为什么原因断下来的么
2010-2-10 11:12
0
雪    币: 118
活跃值: (44)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
11
开源,代码已经发出
2010-2-10 13:28
0
雪    币: 118
活跃值: (44)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
12
Dbg.h里面有

//被调试进程的相关信息
MYDLLAPI DEBUG_EVENT                                        stDebugEvent;
MYDLLAPI PROCESS_INFORMATION                        stProcessInfo;

比如 异常产生地址  可用
stDebugEvent.u.Exception.ExceptionRecord.ExceptionAddress
获得
2010-2-10 13:30
0
雪    币: 7357
活跃值: (3878)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
13
支持,有时间帮你测试测试
2010-2-10 13:53
0
雪    币: 4698
活跃值: (5353)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
14
SH0,回头整理点工具给我.
2010-2-10 14:35
0
雪    币: 8209
活跃值: (4559)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
15
你又喝多了吧
2010-2-10 16:53
0
雪    币: 118
活跃值: (44)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
16
遗憾,我真不知道怎么设置,我也不太清楚KX是什么?不好意思了
2010-2-10 17:41
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
哈哈哈 搞笑
2010-2-10 22:02
0
雪    币: 107
活跃值: (439)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我看不像!!!!!
2010-2-14 03:56
0
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
太牛逼了,先膜拜一个。等成品出来学习源码
2010-2-16 16:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
期待测试成功
2010-2-22 23:35
0
雪    币: 118
活跃值: (44)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
21
发了这么久,只有nbw给了建议(谢谢)。

我想是我的错,在dll里面的信息太少了,

虽然,这个调试引擎才完成一半,还很简单。

但是,我会将前面完成的 详细的实现过程总结发出。
2010-2-24 14:31
0
雪    币: 67
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
22
Delphi的dbg头文件与测试例子, 另外里面有关于WriteProcessMemory, ReadProcessMemory不会被硬件断点中断的例子

ForDelphi.rar
上传的附件:
2010-2-24 22:39
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
恩 好咚咚 高手是要会打造自己工具的
2010-3-3 23:04
0
雪    币: 424
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
24
话说现在可以过那些调试器检测的函数么
2010-3-9 23:46
0
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
顶!赞一个!
2010-3-10 19:16
0
游客
登录 | 注册 方可回帖
返回