xiangshifu
驱动小牛
驱动小牛
  • 注册日期2002-07-25
  • 最后登录2013-10-18
  • 粉丝1
  • 关注0
  • 积分5分
  • 威望20点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1231回复:4

release 模式编译,无源代码的驱动怎么用softice跟踪?

楼主#
更多 发布于:2004-10-18 08:27
rt
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-10-18 09:09
你只能跟踪汇编代码了.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
xiangshifu
驱动小牛
驱动小牛
  • 注册日期2002-07-25
  • 最后登录2013-10-18
  • 粉丝1
  • 关注0
  • 积分5分
  • 威望20点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-18 10:24
关键是如何下断点!
1,想要在驱动入口处断下
2,应用程序会向驱动发消息, 驱动做出相应的处理,想要在处理函数的入口下断点

以上两个断点怎么下?
xqchen
驱动牛犊
驱动牛犊
  • 注册日期2001-09-07
  • 最后登录2004-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-19 03:17
1. If you have symbol. Then you can set symbolic breakpoint, if you are debugging MS drivers, you should be able to get symbol from symbol server or symbol CD.

2. If you don't have symbol.
BPLoad of Visual SoftIce can set a breakpoint for driver loading, I'm not sure if softice have this command. Or you can use driver command to get all entry points and use bpx to set breakpoints, for example

SI>driver cdfs
--------------------------------------------------------------
DrvName        : Cdfs  
Address        : 0xffb872c0
FirstDev       : 0xffb712a0
DrvFlags       : 0x92; DRVO_LEGACY_DRIVER,DRVO_INITIALIZED
DrvLoad        : 0xf92e1000 (Cdfs!_Base)
Size           : 0xf300    
DrvEntry       : 0xf92ee580 (Cdfs!CdGenerate8dot3Name+0x172)
StartIo        : 0x00000000
AddDev         : 0x00000000
DrvCreate      : 0xf92e139a (Cdfs!_Base+0x39a)
DrvClose       : 0xf92e139a (Cdfs!_Base+0x39a)
DrvRead        : 0xf92e139a (Cdfs!_Base+0x39a)
DrvWrite       : 0x804f2529 (ntoskrnl!IopInvalidDeviceRequest)
DrvDevCntrl    : 0xf92e139a (Cdfs!_Base+0x39a)
DrvIntDevCntrl : 0x804f2529 (ntoskrnl!IopInvalidDeviceRequest)
DrvQueryInfo   : 0xf92e139a (Cdfs!_Base+0x39a)
DrvSetInfo     : 0xf92e139a (Cdfs!_Base+0x39a)
DrvQueryEa     : 0x804f2529 (ntoskrnl!IopInvalidDeviceRequest)
DrvSetEa       : 0x804f2529 (ntoskrnl!IopInvalidDeviceRequest)
DrvUnld        : 0xf92ea88e (Cdfs!CdQueryDirectory+0x1a2)
DrvPower       : 0x804f2529 (ntoskrnl!IopInvalidDeviceRequest)
DrvSysCntrl    : 0x804f2529 (ntoskrnl!IopInvalidDeviceRequest)
DrvPnp         : 0xf92e139a (Cdfs!_Base+0x39a)
FastIoTbl      : 0xf92e31e0 (Cdfs!CdInvalidateVolumes+0x170)
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2004-10-19 13:34
用反编译器反汇编驱动,然后找到入口点,将第一条指令修改为0XCC(INT 3)然后加载,就可以在SOFTICE中断下,再将内存中的代码恢复原样执行,不过如果没调试器的话加载驱动会崩的......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部