识别 D-Link 固件校验和并将其添加到 OpenWrt 固件中

逆向工程 二元分析
2021-07-10 05:26:00

我有这个 D-Link固件,想确定它使用的校验和类型并将其添加到 OpenWrt bin 文件中,这样我就可以将固件升级到 OpenWrt 而不是默认的蹩脚 D-Link。我确实尝试通过 Realtek 引导加载程序 cli 更新它,但它给了我一个错误

Booting...
OK
OK



---RealTek(RTL8196E-kld) version v6.0.4e(2013.02.22-18:00+0800) [16bit](380MHz)
P0phymode=01, embedded phy

---Ethernet init Okay!


**TFTP Client Upload, File Name: openwrt-realtek-rtl8196e-AP-fw.bin
-\|/-\|...|/-
**TFTP Client Upload File Size = 003AA004 Bytes at 80500000

Success!
<RealTek>checksum failed  80500000  00009fa5

这是宾瓦尔所说的

$ binwalk DIR-605L_v2.08UIBetaB01.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
11280         0x2C10          LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2547712 bytes
658466        0xA0C22         Squashfs filesystem, big endian, version 2.0, size: 89101 bytes, 8 inodes, blocksize: 65536 bytes, created: 2017-06-09 02:24:25
748596        0xB6C34         Squashfs filesystem, big endian, version 2.0, size: 2592128 bytes, 512 inodes, blocksize: 65536 bytes, created: 2017-06-09 02:24:40
2个回答

1- 如果您拥有原始固件 bin 映像,您可以使用 hex Workshop,打开它:工具 -> 生成校验和,保留结果。此外,您还有具有特定 CRC 算法、MD5、MDC2 等的在线网站...保留尽可能多的结果以供下一步使用。

2- 通常校验和字节应该在文件的末尾(EOF)并且通常是一个 CRC32(4 个字节的长度)。因此,收集所有校验和,如果匹配正常,请查看结果。

然后,您将能够使用适当的算法生成正确的校验和,以防万一引导加载程序生成。

永远不要失去信心:-)

我有这个 D-Link 固件,并想确定其上使用的校验和类型

它是 MD5 校验和:d7ad0f50b2f82d60283a75dc63072a6f

binwalk --verbose  DIR-605L_v2.08UIBetaB01.bin 

Scan Time:     2018-10-09 13:28:37
Target File:   /home/training/Desktop/DIR-605L_v2.08UIBetaB01.bin
MD5 Checksum:  d7ad0f50b2f82d60283a75dc63072a6f
Signatures:    386

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
11280         0x2C10          LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2547712 bytes
658466        0xA0C22         Squashfs filesystem, big endian, version 2.0, size: 89101 bytes, 8 inodes, blocksize: 65536 bytes, created: 2017-06-09 02:24:25
748596        0xB6C34         Squashfs filesystem, big endian, version 2.0, size: 2592128 bytes, 512 inodes, blocksize: 65536 bytes, created: 2017-06-09 02:24:40