解包一个似乎没有打包的程序?

逆向工程 开箱 视觉基础
2021-06-10 15:55:58

我已经下载了一个恶意软件样本来分析它。首先,我用PEiD打开它看看它是否被打包。PEiD 为我提供以下信息:

   Microsoft Visual Basic 5.0/6.0

所以,我认为它没有打包。当我使用 ollydbg 打开它时,会显示以下几行:

   PUSH malware.00401F8C
   CALL <JMP.&MSVBVM60.#100>
   ADD BYTE PTR DS:[EAX],AL
   ADD BYTE PTR DS:[EAX],AL
   ADD BYTE PTR DS:[EAX],AL
   ADD BYTE PTR DS:[EAX],AL
   ADD BYTE PTR DS:[EAX],AL
   INC EAX
   ADD BYTE PTR DS:[EAX],AL
   ADD BYTE PTR DS:[EAX],AL
   ADD BYTE PTR DS:[EAX],AL
   DB 00
   DB 1D
   ....
   ....

因此,通常它应该以函数序言(典型的 PUSH EBP 开头行等)开始,但尽管它没有打包,但显然该程序试图使分析过程更加困难(对我而言)。当我进入第二行(CALL <...>)时,进程开始运行并且不会停止。在我之前的案例中,我只解压了用 UPX 打包的恶意软件样本。所以,像上面这样的一段代码对我来说是全新的。所以:

我应该如何解决这个问题?有人可以给我建议我该如何处理吗?

最好的祝福,

1个回答

您的程序未打包,而是编译为Visual Basic P 代码或 Visual Basic 本机代码。

如果是VB原生代码,可以用自己喜欢的调试器(OllyDbg、IDA等)调试,IDA反汇编。

如果是 VB P 代码,则可以使用VB Decompiler Pro进行反汇编/反编译: VB 反编译器

... 和WKTVBDE来调试它: 在此处输入图片说明

请注意,VB Decompiler Pro 甚至对于静态分析 VB 本机代码也很有用。