binwalk 找不到 gzip 部分

逆向工程 二元分析 解压
2021-07-09 10:02:15

我正在播放以下exe文件,请参阅主页此处exe 包含压缩部分似乎很清楚(使用 -E 熵选项)。由于某种原因binwalk无法找到这些部分的开始。

这是我所拥有的:

$ binwalk -v -B PmsDView.exe 

Scan Time:     2016-09-22 14:42:04
Target File:   /tmp/PmsDView.exe
MD5 Checksum:  911d92675f559a40400f7ca2b69c8544
Signatures:    344

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Microsoft executable, portable (PE)
2015          0x7DF           Copyright string: "Copyright 1995-2005 Mark Adler "

然而,他们似乎正在使用gzip

$ hexdump -C PmsDView.exe
000007a0  30 00 30 00 31 00 35 00  00 00 00 00 4c 64 72 47  |0.0.1.5.....LdrG|
000007b0  65 74 50 72 6f 63 65 64  75 72 65 41 64 64 72 65  |etProcedureAddre|
000007c0  73 73 00 00 6e 74 64 6c  6c 00 00 00 00 00 00 00  |ss..ntdll.......|
000007d0  20 69 6e 66 6c 61 74 65  20 31 2e 32 2e 33 20 43  | inflate 1.2.3 C|
000007e0  6f 70 79 72 69 67 68 74  20 31 39 39 35 2d 32 30  |opyright 1995-20|
000007f0  30 35 20 4d 61 72 6b 20  41 64 6c 65 72 20 00 00  |05 Mark Adler ..|

我错过了什么吗?还是他们掩盖了gzip签名?

2个回答

Binwalk 没有找到 zlib blob,因为它也是加密的。它使用以下代码解密压缩数据。解密使用存储在堆栈中的表,该表在循环之前填充有生成的值。

在此处输入图片说明

因此,您必须反转解密代码或将解压缩的数据从内存中保存。

有关以下示例,请参阅https://en.wikibooks.org/wiki/Reverse_Engineering/File_Formats

inflate 1.1.3 Copyright 1995-1998 Mark Adler 

最好假设文件的至少一部分是 ZIP 压缩的。进一步探查可能会发现该文件不包含完整的 ZIP 存档,而仅包含使用 ZIP deflate 算法压缩的部分,并且应该使用 ZIP inflate 算法(可能是 1.1.3 版,作为字符串的输出)进行解压缩揭晓)。因此,可以通过使用自定义工具将虚构文件进一步分离为其组件,该工具迭代地将膨胀算法应用于文件,直到生成的结果有意义(例如,直到结果包含一些可识别的明文字符串)。

new 似乎是一样的情况,除了你的 inflate 版本是 1.2.3