需要帮助从固件 .bin 文件中提取 YAFFS

逆向工程 固件
2021-06-25 05:34:00

我一直致力于反转 slingbox 固件。我没有尝试进入当前的固件文件(请参阅我的另一个问题 - 似乎已加密),所以我在http://autoupdate.sling.com/tinybird/200.00找到了旧 slingbox 固件的下载.US.99/ 使用http://autoupdate.sling.com/tinybird/200.00.US.99/SlingboxSoloFwV2_1_110HwV1_0_3Current.bin作为起点我注意到 binwalk 如下:

$ binwalk -D 'filesystem:d' SlingboxSoloFwV2_1_110HwV1_0_3Current.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
2947692       0x2CFA6C        YAFFS filesystem
2948896       0x2CFF20        YAFFS filesystem
2948980       0x2CFF74        YAFFS filesystem
2949096       0x2CFFE8        YAFFS filesystem
2949244       0x2D007C        YAFFS filesystem
2949424       0x2D0130        YAFFS filesystem
2950196       0x2D0434        YAFFS filesystem
2950288       0x2D0490        YAFFS filesystem
2950412       0x2D050C        YAFFS filesystem
2950568       0x2D05A8        YAFFS filesystem
2950756       0x2D0664        YAFFS filesystem
2971856       0x2D58D0        SHA256 hash constants, little endian
3000600       0x2DC918        Base64 standard index table
3088905       0x2F2209        Unix path: /services.sling.com/configservices/rest/v2/configuration/product
3302671       0x32650F        HTML document header
3302714       0x32653A        HTML document footer
3344945       0x330A31        Unix path: /www.w3.org/XML/1998/namespace
3358301       0x333E5D        XML document, version: "1.0"
3368469       0x336615        Unix path: /www.w3.org/XML/1998/namespace
3376275       0x338493        XML document, version: ""1."
3376594       0x3385D2        Unix path: /www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
3385025       0x33A6C1        Unix path: /www.adobe.com/xml/dtds/cross-domain-policy.dtd

这产生了 11 个不同的文件(基于 md5 不同)。我在他们每个人上都尝试了 unyaffs 工具,但每个人都遇到了错误:

Can't determine flash layout, perhaps not a yaffs2 image

在生成的文件之一上重复相同的 binwalk 命令会产生 11 个(较小的)文件,也似乎是 YAFFS。当我尝试 unyaffs 时,与之前相同的错误。

所以在这一点上,我被困住了,没有想法。任何帮助?谢谢!

1个回答

你必须使用最新的binwalk 2.1.1,从GitHub下载 zip 文件,binwalk 现在支持提取 yaffs 但我不建议像这样使用 binwalk,只需使用binwalk -e <img.bin>然后扫描结果文件,直到找到目标 yaffs 图像,然后使用yaffshiv提取图像,不要忘记使用-ayaffshiv参数来尝试猜测图像的配置,

yaffshiv -a -f <image file> -d <output directory>

我正在尝试重新打包华为 E5172 固件,但路由器拒绝接受修改后的固件,我希望这无论如何都会有所帮助,如果您对打包此类固件有任何其他想法,请告诉我。