这听起来很奇怪,我意识到您通常使用 WinDbg 来调试驱动程序,但我正在阅读Gray Hat Python并指出:
要对此进行测试,请尝试将驱动程序加载
C:\WINDOWS\System32\beep.sys
到 Immunity Debugger 中。加载后,使用调试器PyShell
并输入以下代码:
我想知道这是否可能。我只是尝试beep.sys
在 Immunity 中加载,但它找不到入口点并且似乎没有加载
这听起来很奇怪,我意识到您通常使用 WinDbg 来调试驱动程序,但我正在阅读Gray Hat Python并指出:
要对此进行测试,请尝试将驱动程序加载
C:\WINDOWS\System32\beep.sys
到 Immunity Debugger 中。加载后,使用调试器PyShell
并输入以下代码:
我想知道这是否可能。我只是尝试beep.sys
在 Immunity 中加载,但它找不到入口点并且似乎没有加载
编辑我没有意识到你在要求免疫答案是简单的 ollydbg 1.10 这个概念在免疫方面应该是相似的
你需要编辑 IMAGE_SUBSYSTEMIMAGE_SUBSYSTEM_NATIVE
到IMAGE_SUBSYSTEM_WINDOWS_GUI
或_CUI
ollydbg 现在将能够加载驱动程序(从 hal 等导入将无法解析,但如果您执行 alt+e(可执行窗口)选择 beep.sys 右键单击跟随条目,您可以看到正确的反汇编
很明显,您是在 vm 或一次性配置中保存的系统驱动程序备份副本上进行实验,而不是修改原件和破坏操作系统以导致故障和烧毁您的机器
open ollydbg alone and use view file to modify subsystem charecteristics to cons
ole or gui instead of native 0000012C 0300 DW 0003 ; Sub
system = IMAGE_SUBSYSTEM_WINDOWS_CUI
C:\>
C:\>fc /b c:\WINDOWS\system32\drivers\beep.sys c:\myollymodbeep.sys
Comparing files C:\WINDOWS\SYSTEM32\DRIVERS\beep.sys and C:\MYOLLYMODBEEP.SYS
0000012C: 01 03
C:\>"f:\odbg110\OLLYDBG.EXE" c:\myollymodbeep.sys
解除beep.sys
0001066C >PUSH EBP
0001066D MOV EBP, ESP
0001066F SUB ESP, 0C
00010672 PUSH EBX
00010673 PUSH EDI
00010674 PUSH myollymo.00010652 ; UNICODE "\Device\Beep"
00010679 LEA EAX, DWORD PTR SS:[EBP-C]
0001067C PUSH EAX
0001067D CALL NEAR DWORD PTR DS:[<&ntoskrnl.Rt>; ntoskrnl.RtlInitUnicodeString
00010683 MOV EDI, DWORD PTR SS:[EBP+8]
00010686 LEA EAX, DWORD PTR SS:[EBP-4]
00010689 PUSH EAX ; /*DeviceObject = 001B1EB4
0001068A XOR EBX, EBX ; |
0001068C PUSH EBX ; |Exclusive = 7FFD7000
0001068D PUSH 100 ; |DeviceCharacteristics = 100
00010692 PUSH 1 ; |DeviceType = 1
00010694 LEA EAX, DWORD PTR SS:[EBP-C] ; |
00010697 PUSH EAX ; |DeviceName = "????"
00010698 PUSH 58 ; |ULONG DeviceExtensionSize = 58
0001069A PUSH EDI ; |DriverObject = 001B1EB4
0001069B CALL NEAR DWORD PTR DS:[<&ntoskrnl.Io>; \IoCreateDevice