首页
社区
课程
招聘
[求助]关于调试器设断点
发表于: 2010-9-29 17:06 5280

[求助]关于调试器设断点

2010-9-29 17:06
5280
如题,调试一个程序过程会加载N多DLL模块。需要在其中一个模块的地址空间的某个地方断下来,可是这个模块是在运行过程中动态加载的。使用OD或者Windbg在程序开始运行时设置该地址的断点会提示该地址无法找到。

       本人是菜鸟,可能需要更加高级的设置断点的方法。希望大侠告知,拜谢!

      顺便再问一句,如果是一个dll模块A里面又调用了另外一个dll模块B,对LoadLibraryExW() 设断是不是可以拦截对dll模块B的调用呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 234
活跃值: (83)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
可以先对LoadLibraryExW下条件断点,然后根据模块的基地址找到需要下断的地方在下断呀。。。
2010-9-29 17:19
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不错,这是一种思路。不知道还有没有其他的方法?
2010-9-29 19:07
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你上面的思路在Windbg中不知道可不可以这样写:bp LoadLibraryExW ".if poi(esp+4)==”DLL名称"  {} .else {gc}"
比如有没有一种条件断点,判断当该地址有效时,设置此处的断点。
2010-9-29 19:12
0
雪    币: 807
活跃值: (2228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你可以用od单独加载你想下断的那个dll,设置断点后再加载主程序调试,前面设置的断点就会起作用。
2010-9-30 10:13
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6

123466
2010-9-30 11:08
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
多谢,这个注意不错。但是如果习惯于使用Windbg的话,在加载某个dll之后,想在执行该dll某处代码时断下来,该怎么做呢?
2010-9-30 11:11
0
游客
登录 | 注册 方可回帖
返回
//