kirovgrad/ShrinkThatFirm

GitHub: kirovgrad/ShrinkThatFirm

一款基于 Python 的固件文件系统分析工具,通过检测重复文件、冗余库及未使用函数来帮助缩减固件体积。

Stars: 1 | Forks: 0

# ShrinkThatFirm ## 功能 一款用于分析固件文件系统以对其进行精简的 Python 工具: - 查找重复文件; - 查找文件系统内各二进制文件中的重复函数; - 查找未使用的共享库(不保证 100% 未被使用); - 查找未使用的可执行服务二进制文件(不保证 100% 未被使用); - 查找文件系统内各二进制文件中未使用的函数(存在一些隐患); 前 4 类冗余可以通过运行 **main.py** 文件来发现。 要查找未使用的函数,您必须运行 **unused_funcs_finder.py**,该脚本使用了 idalib,而 idalib 仅在 **IDA Pro 9** 及更高版本中提供。 您也可以直接在 IDA Pro 内部以 idapython 脚本的形式运行 **ida_unused_funcs_script.py**,但在运行之前,需要在 **ida_unused_funcs_script.py** 中进行以下操作: 1. 注释掉第 330 和 331 行; 2. 注释掉第 358 到 364 行,并打印 **unneeded_funcs** 列表的结果。 用于搜索未使用函数的脚本主要适用于使用 C 语言编写的二进制文件。如果源代码中的某个函数使用了 PRIVATE 标志调用,它可能会被错误地识别为未使用,并且其内部的所有函数也会受此影响。 此外,大多数编译器会对小函数进行内联,因此它们也可能被错误地视为未使用。您可以取消对过滤函数的注释,并根据需要随意更改最小函数大小的阈值。默认值为 140 字节。 ## 用法 ``` python ShrinkThatFirm/main.py ``` ### 参数 * `fsdir`:已解压固件文件系统的路径。 * `numOfThreads`:脚本在文件系统中进行搜索时使用的线程数。 ## 环境要求 - Python 3.6+ - `r2pipe` - IDA Pro 9+
标签:Python, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 体积优化, 固件分析, 无后门, 逆向工具, 逆向工程, 静态分析