我正在尝试拆卸 Cisco Sx300 交换机的固件,如下所示:https ://software.cisco.com/download/release.html%3Fmdfid%3D283019611%26softwareid%3D282463181%26release%3D1.2.7.76
虽然存在一些关于 Wind River 固件其他迭代的文档,但我还没有遇到过针对此特定固件的一组工作工具。
Binwalk 给出了一些结果:
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Cisco VxWorks firmware header, header size: 80 bytes, number of files: 15, image size: 6988894, firmware version: "1.2.7.76"
209 0xD1 LANCOM WWAN firmware
1483 0x5CB LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 16016448 bytes
3984149 0x3CCB15 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 859164 bytes
4153128 0x3F5F28 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2962457 bytes
4847723 0x49F86B LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2122505 bytes
6914211 0x6980A3 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 66664 bytes
6932632 0x69C898 XML document, version: "1.0"
6950635 0x6A0EEB LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 121427 bytes
但是,使用 -e 标志提取不会提供有意义的结果。几个文件被提取出来,但其他文件最终成为损坏的档案,或者文件太小而不能成为实际文件。我不确定 LZMA 压缩数据不是误报。
使用 IDA 反汇编失败,因为我不知道加载程序地址。
此 Cisco 帮助资源表明正在进行某种形式的压缩:https : //supportforums.cisco.com/t5/small-business-support-documents/how-to-recover-a-reboot-loop-on-sx300 /ta-p/3134953
此帮助支持帖子确认固件是基于 ARM 的,但我不确定该芯片的确切品牌。
我知道 VxWork 固件的先前迭代在标头中有加载程序地址。对标头的分析在建议的位置 (0x14) 没有找到可用的地址
我尝试将固件中的字符串与字符串表进行匹配,尽管进行了彻底的搜索,但还是找不到任何字符串表。这支持我的观点,即它被压缩,或以其他方式打包。
最后,我在二进制文件中搜索可能的地址以推断加载程序地址。我找不到任何常用的地址或范围。这尤其困难,因为 IDA 无法正确分析任何二进制文件。
我在这里错过了一些简单而基本的东西吗?VxWorks 固件有什么特殊技术吗?