解压基于 NSPack v 2.9 的恶意软件以获取 OEP

逆向工程 混淆 开箱
2021-06-30 01:03:52

最近我正在分析一个包含 NSPack 的恶意软件。当我尝试使用此博客链接解压缩它时,我PUSHFD,PUSHAD在 ollydbg 中找到了两条指令所以我在 jmp 指令上放了一个断点,它会解包

004DF425                       9D              POPFD
004DF426                      -E9 A5D4FFFF     JMP 5df0b1b0.004DC8D0

跨步后,我已经在指令下方降落,这不是 pe 文件的开头

004DC8D0                         60            DB 60                               ;  CHAR '`'
004DC8D1                         BE            DB BE
004DC8D2                         00            DB 00
004DC8D3                         20            DB 20                               ;  CHAR ' '
004DC8D4                         4C            DB 4C                               ;  CHAR 'L'
004DC8D5                         00            DB 00
004DC8D6                         8D            DB 8D
004DC8D7                         BE            DB BE
004DC8D8                         00            DB 00
004DC8D9                         F0            DB F0
004DC8DA                         F3            DB F3
004DC8DB                         FF            DB FF
004DC8DC                         57            DB 57                               ;  CHAR 'W'
004DC8DD                         83            DB 83
004DC8DE                         CD            DB CD

上面的指令很奇怪,我应该期待这样的指令

PUSH EBP
PUSH EBP,ESP

那么我如何解压恶意软件以及我在解压过程中哪里出错了。 恶意软件的哈希值将不胜感激:59c661ba0c7c485f4480f7b142a9c084

2个回答

您链接到的博客文章的信息不正确。0x004DC8D0不是 OEP。相反,0x0041A4E3是OEP。

到达后0x004DC8D0,在反汇编窗格中右键单击机器代码并选择Analysis → Remove analysis from module然后向下滚动一点到0x004DCA84; 你会看到有一个JMP从那个地址到0x0041A4E3,这是正确的 OEP:

JMP 为 OEP

 所以ollydbg不明白代码把不必要的代码。所以在从组装窗格中“删除分析”之后,我得到了OEP现在基于NS的打包被解包了谢谢@jason Geffner