8000 GitHub - 0xba1100n/vxfile_extractor: 一键提取vxwork固件内部文件,并依据binwalk分析结果和uboot镜像内文件名偏移表,正确恢复vxwork文件名;以及实现主要bin文件寻找和函数符号表搜索提取功能
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

一键提取vxwork固件内部文件,并依据binwalk分析结果和uboot镜像内文件名偏移表,正确恢复vxwork文件名;以及实现主要bin文件寻找和函数符号表搜索提取功能

Notifications You must be signed in to change notification settings

0xba1100n/vxfile_extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 

Repository files navigation

vxfile_extractor

EN_readme

当前版本

V2.1版本兼容了另外一种形态的符号表,感谢winmt师傅的建议,原理详见 https://arxiv.org/html/2407.05064v1 晚些时候会在看雪上补充相关细节,欢迎提改进建议和issue

此外,V2.1版本还有主要bin文件寻找和函数符号表提取功能,这也许是需求最大的功能,现在也可一键自动化了

image.png

TODO

只可惜仍有部分固件(vxfile_wr842nv7和v9、wdr7660gv1)的文件偏移表仍然以各种方式,即使采用更aggressive的lzma策略,似乎都寻不到,如果有相关方法的话请师傅务必issue,这块我目前也很想搞懂

具体而言,这类无法解析出文件偏移表的,一般在binwalk解压后,grep -r "Decryption for config.bin"能够匹配到结果

目前看来,这种固件有些没有文件偏移反倒会有符号表,所以我还实现了符号表提取、主要bin文件识别,希望能弥补这一缺点以帮助师傅们日常的分析

简介

一键提取vxwork固件内部文件,并依据binwalk分析结果和uboot镜像内文件名偏移表,正确恢复vxwork文件名

在V2.1版本更新下,还引入了主要bin文件(分析web服务cgi后端之类的都找这个就对了)寻找和函数符号表提取功能,这也许是需求最大的功能,现在也可一键自动化了

在日常分析固件的过程中,遇到不少设备是RTOS,其中目前见得最多的就是vxworks系统

binwalk尚未支持对vxworks系统固件的正确解包,而且已经停止更新很久了。直接用binwalk一把梭会遇到这种情况:全是莫名其妙的文件名 1 这对于日常的分析而言,带来了麻烦。本来符号表缺失就有些麻烦了,现在连文件名都是"乱码",分析下图类似于这类cgi路由自然是徒增几分困难 2

这个工具的功能是,在uImage中寻找偏移表,正确恢复文件名,并将恢复后的文件放入独立的结果文件夹;如果固件内部记录了路径,还会将文件放入正确的路径(否则将其放入一个默认文件夹,需要进一步分析)。 附上博客文章作为补充说明:https://ba1100n.tech/iot_security/%e6%8e%a2%e7%a9%b6vxworks%e6%96%87%e4%bb%b6%e5%90%8d%e6%81%a2%e5%a4%8d/

使用方法

用法: python3 vxfile_extracter.py <bin 文件路径> [--fuzzymode]

选项: -h, --help 显示帮助信息 --fuzzymode 使用模糊匹配模式处理文件

说明: 该工具用于处理 bin 文件。默认情况下,优先使用精确匹配。如果指定 --fuzzymode 参数,将强制使用模糊匹配。

效果展示

该工具会一键解包、自动寻找偏移表位置、自动提取每个文件的偏移,并根据偏移表中记录的名称恢复文件名 3 如果固件内部记录了路径,还会放入正确的路径 4 其中一个路径的文件如下 5 可以看到图片名称的恢复,也是能对上名字的 image 主要bin文件寻找和函数符号表提取(如果有的话)功能 image.png

通过的测试用例

  • Mercury水星mw313rV4固件
  • tplink wr-855n固件
  • tplink wr842nv3固件
  • tplink Archer系列 C80v1 C80v2固件

注意事项

使用前请确保您的镜像能够通过binwalk正确解包,类似以下结果,这意味着固件没有加密,是正常的vxworks镜像 384422042-7ef8cedf-0028-4f56-915f-35ddc8708229

目前测试主要集中在vxworks 5.5及以下版本,这是最常见的版本,高版本暂时未遇到过。 某些固件的偏移表未记录路径,导致文件结构显得"扁平化",需要进一步分析内部html文件引用以确定静态资源文件的正确位置。目前尚未找到合适的解决办法。 image

程序设计细节和恢复原理详见:https://bbs.kanxue.com/thread-284324.htm

如有问题欢迎提出issue,如果觉得好用请不吝⭐star,谢谢~

About

一键提取vxwork固件内部文件,并依据binwalk分析结果和uboot镜像内文件名偏移表,正确恢复vxwork文件名;以及实现主要bin文件寻找和函数符号表搜索提取功能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0