阅读:1231回复:4
release 模式编译,无源代码的驱动怎么用softice跟踪?
rt
|
|
沙发#
发布于:2004-10-18 09:09
你只能跟踪汇编代码了.
|
|
|
板凳#
发布于:2004-10-18 10:24
关键是如何下断点!
1,想要在驱动入口处断下 2,应用程序会向驱动发消息, 驱动做出相应的处理,想要在处理函数的入口下断点 以上两个断点怎么下? |
|
地板#
发布于: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) |
|
地下室#
发布于:2004-10-19 13:34
用反编译器反汇编驱动,然后找到入口点,将第一条指令修改为0XCC(INT 3)然后加载,就可以在SOFTICE中断下,再将内存中的代码恢复原样执行,不过如果没调试器的话加载驱动会崩的......
|
|
|