Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

WinDbg

帖子发起人: nightxie   发起时间: 2009-09-24 18:17 下午   回复: 5

Print Search
帖子排序:    
   2009-09-24, 18:17 下午
nightxie 离线,最后访问时间: 2010/4/3 8:32:07 nightxie

发帖数前25位
注册: 2008-06-09
发 贴: 43
自己写一个调试器时遇到了问题,麻烦各位帮忙
Reply Quote

最近自己在写一个调试器,准备山寨Windbg一下,^_^。

不过现在遇到了一个问题。

在ReadProcessMemory时,如果读取被调试的程序模块之内的内存可以成功。

但是在读取被调试程序以外的模块领空,例如该程序的Dll,就不能读取,返回的错误码是12B(仅完成部分的 ReadProcessMemoty 或 WriteProcessMemory 请求。 )。

我也是百思不得其解啊。给几张图说明一下情况(因为百度空间不支持外链,所以请点连接游览)

第一张是正常的,也就是主程序模块的领空。

http://hiphotos.baidu.com/nightxie/pic/item/2d2610870ec27506c75cc3f0.jpg

第二张就是Kernel32.dll的领空,不能Read

http://hiphotos.baidu.com/nightxie/pic/item/e5067d2ca04de9c08b1399f0.jpg

第三张是Windbg,正常分析Kernel32.dll

http://hiphotos.baidu.com/nightxie/pic/item/1e22ba525fb032220df3e3f0.jpg

 


IP 地址: 已记录   报告
   2009-09-24, 23:01 下午
nightxie 离线,最后访问时间: 2010/4/3 8:32:07 nightxie

发帖数前25位
注册: 2008-06-09
发 贴: 43
Re: 自己写一个调试器时遇到了问题,麻烦各位帮忙
Reply Quote
搞清楚了,读取时机不对而已。。。汗~~~
IP 地址: 已记录   报告
   2009-09-24, 23:29 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
Re: 自己写一个调试器时遇到了问题,麻烦各位帮忙
Reply Quote
怎么不对??是不是读的时候初始化还没完成?
IP 地址: 已记录   报告
   2009-09-25, 01:34 上午
nightxie 离线,最后访问时间: 2010/4/3 8:32:07 nightxie

发帖数前25位
注册: 2008-06-09
发 贴: 43
Re: 自己写一个调试器时遇到了问题,麻烦各位帮忙
Reply Quote
呵呵,对,就是那样。。。我读的时机是创建进程时,而载入dll是在这之后。。。呵呵,这点没搞清所以搞了好久。。
IP 地址: 已记录   报告
   2009-09-25, 12:58 下午
Thomson 离线,最后访问时间: 2013/3/31 11:42:42 Thomson

发帖数前10位
注册: 2008-07-03
发 贴: 211
Re: 自己写一个调试器时遇到了问题,麻烦各位帮忙
Reply Quote
我以前也遇到这个问题,在debugger loop收到第一个断点就去读debuggee的peb里面的一些信息,在vista+上面都没有问题,但是在vista以下读出的内容都为空,,不知道在debugger loop里面怎么拿到像windbg那样的initial breakpoint.
IP 地址: 已记录   报告
   2009-09-25, 21:39 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 自己写一个调试器时遇到了问题,麻烦各位帮忙
Reply Quote

呵呵,初始断点是新进程开始运行后Hard Code在Loader里的,所以在debugger loop里面等待就可以了...


IP 地址: 已记录   报告
高端调试 » 软件调试 » WinDbg » Re: 自己写一个调试器时遇到了问题,麻烦各位帮忙

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.