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

Windows内核调试

帖子发起人: 初学者   发起时间: 2009-03-21 14:28 下午   回复: 4

Print Search
帖子排序:    
   2009-03-21, 14:28 下午
suck007 离线,最后访问时间: 2009/3/28 5:47:33 初学者

发帖数前150位
注册: 2009-03-21
发 贴: 7
请教关于Write_Port_uchar的一个问题
Reply Quote
VM里面手工windbg改Hal的Write_Port_uchar,为什么会导致windbg假死?写sys改也导致vm假死,请问是什么原因?
IP 地址: 已记录   报告
   2009-03-22, 21:37 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教关于Write_Port_uchar的一个问题
Reply Quote
这样的问题让人摸不着头脑。麻烦楼主,能把问题写的清楚些么?改成了什么样?
IP 地址: 已记录   报告
   2009-03-23, 04:46 上午
suck007 离线,最后访问时间: 2009/3/28 5:47:33 初学者

发帖数前150位
注册: 2009-03-21
发 贴: 7
Re: 请教关于Write_Port_uchar的一个问题
Reply Quote
0: kd> u Write_port_uchar
hal!WRITE_PORT_UCHAR:
806ebaac 8b542404 mov edx,dword ptr [esp+4]
806ebab0 8a442408 mov al,byte ptr [esp+8]
806ebab4 ee out dx,al
806ebab5 c20800 ret 8

继续手工输入f WRITE_PORT_UCHAR L9 0x90,Windbg就显示一直Busy,失去响应,不知道是什么原因,eb 806ebab4 0x90也一样,Windbg直接假死了
IP 地址: 已记录   报告
   2009-03-23, 23:03 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 请教关于Write_Port_uchar的一个问题
Reply Quote

你这么描述后,便可以知道其中的原委了。无论是你的内存填充命令还是eb命令,都把WRITE_PORT_UCHAR函数“废掉了”,而这个函数对于系统和内核调试来说都是离不开的,调试引擎也需要它来发送数据给调试器。你的命令送给调试引擎后,便执行了,执行了后,通信的通道便断了,所以调试器收不到数据就一直BUSY了。这好比是把电闸拉了后,灯自然就不亮了。

下面是内核调试引擎的WRITE_PORT_UCHAR函数的反汇编,可以看到,它调用的就是HAL中的WRITE_PORT_UCHAR:

kd> u kdcom!WRITE_PORT_UCHAR

kdcom!WRITE_PORT_UCHAR:

f9f4ccf2 ff2504c3f4f9 jmp dword ptr [kdcom!_imp__WRITE_PORT_UCHAR (f9f4c304)]

 

kd> dd kdcom!_imp__WRITE_PORT_UCHAR l1

f9f4c304  806cce68

kd> u 806cce68

hal!WRITE_PORT_UCHAR:

806cce68 8b542404 mov edx,dword ptr [esp+4]

806cce6c 8a442408 mov al,byte ptr [esp+8]

806cce70 ee       out dx,al

806cce71 c20800   ret 8


IP 地址: 已记录   报告
   2009-03-24, 01:40 上午
suck007 离线,最后访问时间: 2009/3/28 5:47:33 初学者

发帖数前150位
注册: 2009-03-21
发 贴: 7
Re: 请教关于Write_Port_uchar的一个问题
Reply Quote
原来如此,谢谢Raymond 老师
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 请教关于Write_Port_uchar的一个问题

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