360SelfProtection.sys无法使用Driver Monitor加载

原文:

问题:
虚拟机里使用Driver Monitor加载360SelfProtection.sys,外面使用windbg下了延迟断点。断点下在了DriverEntry第一句。结果。。。
使用Driver Monitor加载时没有命中断点。。。
之后Driver Monitor还提示连到系统上的设备没有发挥作用。。。。

求高人指点。。。 

解决的思路:
1. 双机调试时,开机断下后,用sxe命令下在加载 360SelfProtection.sys断下
2. 断下后,用lmvm看到当前 360SelfProtection.sys在内存中的基址
3. 在 360SelfProtection.sys的入口点下断
4. g起来,会在入口点处断下

解答问题时用到了几个命令,学习一下:
1. sxe命令:
 

加载某个DLL 的时候下断点的WinDBG 命令:

sxe ld:[dll name]

卸载某个DLL 的时候下断点的WinDBG命令:

sxe ud:[dll name]

比如:

sxe ld:wininet  (在wininet.dll 被装载的时候断点)


还可以通过直接在DllMain下断点来达到相同目的:

bu wininet!DllMain





2. lmvm命令


lmvm 命令可以查看任意一个 已加载 的DLL/EXE的详细信息,以及symbol的情况, 特别提醒的是, 不要加后缀名(无论EXE/DLL), 我开始学习时就出过这样的错


3. kvn命令

kvf, kvndisplay the stack frame of the given thread, together with related information



4.poi指令


Poi操作符在WinDBG中可以被用来对指针进行解引用. 类似C语言中对指针的操作符*.

 bp f67b4000+poi(poi(f67b4000+3c)+f67b4000+28) 用到的这句是在f674000模块的PE入口点处下断,PE头偏移28的位置是入口点

比如说, 如果一个地址为0×00123456的指针, 指向地址0×00420000, 即

内存地址地址中存放的值
0×00123456 
0×001234560×00420000
0×0012345A 

...

...

0×004200000x88517517
  

那么下面两条指令是等价的:

0:000> dd 420000 
0:000> dd poi(123456)


 


5. K命令:

k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace)

The k* commands display the stack frame of the given thread, together with related information..

v
Displays frame pointer omission (FPO) information. On x86-based processors, the display also includes calling convention information.
n
Displays frame numbers.

kvn 100:就是看下stack .v显示详细信息,n看的层数

解决方法:
windbg连上VM,在虚拟机启动的时候break一下,然后输入:
sxe ld 360SelfProtection 
g
不一会就会断下,如下
kd>  lmvm 360SelfProtection 

start end module name
f67b4000  f67d1980 360SelfProtection (no symbols) 
Loaded symbol image file: 360SelfProtection.sys
Image path: 360SelfProtection.sys
Image name: 360SelfProtection.sys
Timestamp: Tue Jan 11 19:36:54 2011 (4D2C40D6)
CheckSum: 00021EF4
ImageSize: 0001D980
File version: 1.0.0.1054
Product version: 1.0.0.1054
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.8 Driver
File date: 00000000.00000000
Translations: 0804.04b0
CompanyName: 360安全中心
ProductName: 360安全中心
InternalName: SelfProtection
OriginalFilename: SelfProtection.sys
ProductVersion: 1, 0, 0, 1054
FileVersion: 1, 0, 0, 1054
PrivateBuild: 1, 0, 0, 1054
SpecialBuild: 1, 0, 0, 1054
FileDescription: 360安全卫士 - SelfProtection
LegalCopyright: 版权所有 (C) 2006-2010 360安全中心
LegalTrademarks: 版权所有 (C) 2006-2010 360安全中心
Comments: 版权所有 (C) 2006-2010 360安全中心
 
kd> kvn 100
# ChildEBP RetAddr Args to Child 
00 f819c398 80527fce f819c430 f819c3ac 00000003 nt!DebugService2+0x10 (FPO: [3,0,0])
01 f819c3bc 805a3cea f819c430 f67b4000 ffffffff nt!DbgLoadImageSymbols+0x42 (FPO: [3,4,0])
02 f819c560 80576254 f819c5e4 00000000 00000000 nt!MmLoadSystemImage+0xa34 (FPO: [Non-Fpo])
03 f819c640 80689770 000006c8 00000001 00000000 nt!IopLoadDriver+0x370 (FPO: [4,45,0])
04 f819c69c 80686ad9 00043000 00000000 00000000 nt!IopInitializeSystemDrivers+0x16c (FPO: [0,14,4])
05 f819c83c 80684edd 80087000 00000000 81c4f3e8 nt!IoInitSystem+0x7a3 (FPO: [1,99,4])
06 f819cdac 805c5a28 80087000 00000000 00000000 nt!Phase1Initialization+0x9b5 (FPO: [1,342,4])
07 f819cddc 80541fa2 80684528 80087000 00000000 nt!PspSystemThreadStartup+0x34 (FPO: [Non-Fpo])
08 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
 
 
kd>  bp f67b4000+poi(poi(f67b4000+3c)+f67b4000+28)
kd> bl
0 e f67cee85 0001 (0001) 360SelfProtection+0x1ae85
 
kd> u f67cee85
360SelfProtection+0x1ae85:
f67cee85 a188ad7cf6 mov eax,dword ptr [360SelfProtection+0x16d88 (f67cad88)]
f67cee8a 85c0 test eax,eax
f67cee8c b94ee640bb mov ecx,0BB40E64Eh
f67cee91 7404 je 360SelfProtection+0x1ae97 (f67cee97)
f67cee93 3bc1 cmp eax,ecx
f67cee95 7519 jne 360SelfProtection+0x1aeb0 (f67ceeb0)
f67cee97 a1a48a7cf6 mov eax,dword ptr [360SelfProtection+0x14aa4 (f67c8aa4)]
f67cee9c 8b00 mov eax,dword ptr [eax]
 
kd> g
Breakpoint 0 hit
360SelfProtection+0x1ae85:
f67cee85 a188ad7cf6 mov eax,dword ptr [360SelfProtection+0x16d88 (f67cad88)]
 
kd>  kvn 100
# ChildEBP RetAddr Args to Child 
WARNING: Stack unwind information not available. Following frames may be wrong.
00 f819c640 80689770 000006c8 00000001 00000000  360SelfProtection+0x1ae85
01 f819c69c 80686ad9 00043000 00000000 00000000 nt!IopInitializeSystemDrivers+0x16c (FPO: [0,14,4])
02 f819c83c 80684edd 80087000 00000000 81c4f3e8 nt!IoInitSystem+0x7a3 (FPO: [1,99,4])
03 f819cdac 805c5a28 80087000 00000000 00000000 nt!Phase1Initialization+0x9b5 (FPO: [1,342,4])
04 f819cddc 80541fa2 80684528 80087000 00000000 nt!PspSystemThreadStartup+0x34 (FPO: [Non-Fpo])
05 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
 
ok,进入此驱动内部,调试吧. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值