我想了解一些有关手动解包恶意软件的知识,并找到了以下链接:
writequit.org/blog/?p=165.
如您所见,该示例中的恶意软件以 PUSHAD 指令开头。(我认为这将是一个很好的链接,因为 2 天前我开始分析一个以相同 PUSHAD 指令开头的恶意软件。它也像给定链接的那个示例中的恶意软件一样挤满了 UPX)
因此,我下载了示例的恶意软件以进行测试。
我做了什么:
当我进入PUSHAD指令(按F7)时,双击ESP并结合“Following in Dump”,然后在十六进制窗口中选择第一行(ESP地址)的前4个字节。然后我转到断点 -> 硬件,访问 -> Dword。然后F9。(我希望我能正确解释,但您可以确定我做了与链接示例中完全相同的事情)
我的问题:
第一件事:
单击 ESP -> "Follow in Dump" 后,第一行的 4 个字节如下所示:00 00 00 00。(因此,只有零。与示例中的 08 02 91 7c 不一样,你可以看)
第二件事:
当我选择 00 00 00 00 -> Breakpoint -> Hardware, on access -> Dword,然后我让它运行(F9)但恶意软件没有运行到我可以找到 POPAD 或 JMP 的位置......作为在示例中。在我的情况下,毕竟它运行到一个位置(特别是,运行以 LEAVE 指令结束)具有以下内容:
...
...
LEA EAX, DWORD PTR SS:[EBP-3C]
PUSH EAX
CALL DWORD PTR DS: [<&ntdll.RtlRaiseException>]
LEAVE <----- here, it ends
RETN 10
MOV DWORD PTR SS: [EBP-40], EAX
...
...
所以,即使我向上或向下滚动数百行,我也找不到 POPAD 指令。
我的问题:
为什么会这样?我需要在 ollydbg 设置中配置一些东西吗?
我希望有人能在这种情况下帮助我,因为尽管我执行了与示例中相同的步骤,但我得到了不同的结果。
最好的祝福,








