听起来很奇怪,我知道您通常使用WinDbg调试驱动程序,但是我正在阅读Gray Hat Python,它指出:要进行测试,请尝试加载驱动程序C:\WINDOWS\System32\beep.sys进入Immunity Debugger。加载后,使用调试器的PyShell并输入以下代码:


我想知道这是否完全可能。我只是尝试在Immunity中加载beep.sys,它找不到入口点,而且似乎也没有加载

评论

您到底使用了什么命令?确切的错误消息是什么?

这可能不是您想要的,但我会在此处以注释的形式发布,以防它们有所帮助:恶意软件分析/ communityServer / blogs / geffner / archive / 2006 /…...恶意软件分析/ com / CommunityServer / blogs / geffner /存档/ 2007 /…

@Gilles:没有命令:仅File-> Open Beep.sys。无法找到入口点

您可能正在尝试加载64位可执行文件。它不能工作,必须是32位操作系统。

#1 楼

编辑
我没有意识到您要获得抗扰性,答案是针对纯平直ollydbg 1.10,这个概念在抗扰性方面应该类似。

您需要将IMAGE_SUBSYSTEM从IMAGE_SUBSYSTEM_NATIVE修改为IMAGE_SUBSYSTEM_WINDOWS_GUI_CUI

ollydbg现在将能够加载驱动程序(无法解析从hal等导入的文件,但是如果您执行alt + e(可执行窗口)选择beep.sys,则可以看到正确的反汇编,然后右键单击跟随条目

很明显,您是在vm或一次性配置中对系统驱动程序的已保存备份副本进行实验,而不修改原始文件并破坏os导致故障并烧毁计算机。

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


评论


我也有同样的问题。 @blabb:我将偏移量12c处的所需位也更改为03。将驱动程序加载到imm之后。 deb。再次,它还说未通过底部的异常消息找到入口点。我使用SHIFT + F7将其传递给调试器。我很早以前就知道了,但是您是否也需要传递异常?

–约翰·麦克米兰
16/12/26在13:47