theubusu/unixtract

GitHub: theubusu/unixtract

一款支持三十多种电视及 AV 设备固件格式的跨平台提取工具,帮助安全研究人员快速解包各类厂商私有封装的固件镜像。

Stars: 9 | Forks: 1

# unixtract 多种文件格式的提取工具。 这是一款能够提取多种固件包格式内容的工具,主要针对电视和 AV 设备。 使用 Rust 构建,不依赖任何外部依赖项,仅使用 Rust crates。因此它可以在 Windows、Linux 和 MacOS 甚至 Android 上运行。 请注意,该项目仍在积极开发中,可能会出现错误。如果遇到这种情况,或者有任何功能请求,欢迎提交 issue。 **请注意** - 本程序不是,也绝不会设计用于重新打包提取出的文件! # 安装说明 您可以从[此处](https://nightly.link/theubusu/unixtract/workflows/rust/main)下载适用于 Windows 和 Linux x86-64 的最新自动构建版本。 或者,通过下载代码或克隆仓库并运行 `cargo build --release` 从源代码构建。二进制文件将保存在 `target/release` 中。 # 用法 `unixtract [选项] [OUTPUT_FOLDER]` 参数: `` - 要分析/提取的目标。 `[OUTPUT_FOLDER]` - 用于保存提取文件的文件夹。 如果未提供输出文件夹,提取的文件将保存在 `_` 文件夹中。 选项: `-o, --options ` - 特定格式或全局(适用于所有实现该选项的格式)选项,请参阅下方特定格式选项列表。您可以多次使用此选项以激活多个选项。 ## 全局选项 `dump_dec_hdrs` - 对于带有加密头部的格式 - 转储解密后的头部。 # 支持的格式 ## Amlogic 烧录镜像 **应用于:** Android 电视和电视盒子 **注意:** 由于缺乏样本文件,不支持 V1 格式。 **致谢:** https://github.com/7Ji/ampack ## Android OTA payload.bin **应用于:** Android 设备、智能手机、电视 **注意:** 可能不支持某些压缩方法。 **致谢:** https://android.googlesource.com/platform/system/update_engine/+/HEAD/update_metadata.proto ## BDL **应用于:** 企业级 HP 打印机 **注意:** 无,应支持所有文件 ## CD5 **应用于:** 部分三星电视调谐器,可能还有其他基于 Irdeto(?) 的调谐器 **注意:** 不支持解密。 ## EPK v1 **应用于:** 约 2010 年之前的 LG 电视 **注意:** 无,应支持所有文件 **致谢:** https://github.com/openlgtv/epk2extract ## EPK v2 **应用于:** 约 2010 年之后的 LG 电视 **注意:** **依赖密钥** - 参见 keys.rs(应包含最常用的密钥) **致谢:** https://github.com/openlgtv/epk2extract **选项:** ※ 支持 `dump_dec_hdrs` 选项 ## EPK v3 **应用于:** 基于 LG webOS 的电视 **注意:** **依赖密钥** - 参见 keys.rs **致谢:** https://github.com/openlgtv/epk2extract **选项:** ※ 支持 `dump_dec_hdrs` 选项 ## Funai BDP **应用于:** Funai 及 Funai 制造的飞利浦蓝光播放器/家庭影院系统(美国市场) **注意:** 不适用 ## Funai UPG **应用于:** 部分 Funai 电视 **注意:** **依赖密钥** - 参见 keys.rs。 ## Funai UPG PHL **应用于:** Funai 及 Funai 制造的飞利浦电视(美国市场) **注意:** **依赖密钥** - 参见 keys.rs(应包含最常用的密钥)。 ## GX DVB **应用于:** 廉价的 NationalChip GX 系列 DVB 调谐器 **注意:** 无,应支持所有文件 ## INVINCIBLE_IMAGE **应用于:** 基于 LG Broadcom 的蓝光播放器 **注意:** 仅支持版本 3(2011+) ## MSD 1.0 **应用于:** 三星电视 2013-2015 **注意:** **依赖密钥** - 参见 keys.rs **致谢:** https://github.com/bugficks/msddecrypt **选项:** `msd10:save_cmac` - 为默认跳过的文件保存 CMAC 数据。 `msd:print_ouith` - 打印完整解析的 OUITH 头部。 ※ 支持 `dump_dec_hdrs` 选项 ## MSD 1.1 **应用于:** 三星电视 2016+ **注意:** **依赖密钥** - 参见 keys.rs(包含 2015-2018、2020 年密钥) **致谢:** https://github.com/bugficks/msddecrypt **选项:** `msd:print_ouith` - 打印完整解析的 OUITH 头部。 ※ 支持 `dump_dec_hdrs` 选项 ## MStar 升级 bin **应用于:** 许多基于 MStar 的电视(海信、东芝...) **注意:** 应支持所有文件,包括 lzop、lz4、lzma、sparse_write 支持 **选项:** ※ 支持 `dump_dec_hdrs` 选项(将保存脚本) ## MediaTek BDP **应用于:** 许多基于 MediaTek 的蓝光播放器(LG、三星、飞利浦、松下...) **注意:** 部分较旧的文件可能提取失败 ## MediaTek PKG (新版) **应用于:** 较新的基于 MediaTek 的电视(TCL、海信、索尼、飞利浦、CVT...) **注意:** **依赖密钥** - 参见 keys.rs(包含飞利浦和索尼的密钥) **选项:** `mtk_pkg:no_del_comp` - 解压后不要删除 LZHS 压缩的分区文件。 ※ 支持 `dump_dec_hdrs` 选项 ## MediaTek PKG (旧版) **应用于:** 较旧的基于 MediaTek 的电视(飞利浦、索尼、海信...) **注意:** 应支持所有文件,解密 + 解压 **选项:** `mtk_pkg:no_del_comp` - 解压后不要删除 LZHS 压缩的分区文件。 ※ 支持 `dump_dec_hdrs` 选项 ## MediaTek PKG **应用于:** 基于 MediaTek 的电视(索尼、飞利浦、松下、夏普...) **注意:** 应支持所有文件,解密 + 解压,但部分飞利浦文件使用自定义密钥 - 大部分已包含,少数可能缺失 **致谢:** https://github.com/openlgtv/epk2extract **选项:** `mtk_pkg:no_del_comp` - 解压后不要删除 LZHS 压缩的分区文件。 ※ 支持 `dump_dec_hdrs` 选项 ## Novatek PKG (NFWB) **应用于:** 部分较旧的基于 Novatek 的电视(LG、飞利浦) **注意:** 无,应支持所有文件。 ## Novatek TIMG **应用于:** 较新的基于 Novatek 的电视(飞利浦(TPVision)、海信、TCL...) **注意:** 无,应支持所有文件。 ## Panasonic Blu-Ray (PANA_DVD.FRM, PANA_ESD.FRM, PANAEUSB.FRM) **应用于:** 松下蓝光播放器和录像机 **注意:** **依赖密钥** - 参见 keys.rs(包含的密钥应适用于 99% 在 2014 年及之前发布的播放器,以及部分 2018 年发布的播放器),请注意,目前在一些非常古老的文件中,MAIN 模块存在无法正确提取的问题。 **选项:** `pana_dvd:split_main` - 自动将 MAIN 模块拆分为单独的分区。 ※ 支持 `dump_dec_hdrs` 选项 ## Philips UPG (Autorun.upg, 2SWU3TXV) **应用于:** 飞利浦 pre-TPVision 电视 200?-2013 **注意:** **依赖密钥** - 参见 keys.rs **致谢:** https://github.com/frederic/pflupg-tool ## PUP **应用于:** 索尼 PlayStation 4/5 **注意:** 文件必须经过解密。 **致谢:** https://github.com/Zer0xFF/ps4-pup-unpacker ## Roku **应用于:** Roku 电视/播放器 **注意:** 可以提取更新文件的内容,但其中包含的某些固件镜像进行了额外加密,目前无法对其进行解密。 ## RUF **应用于:** 基于 Samsung Broadcom 的蓝光播放器 **注意:** **依赖密钥** - 参见 keys.rs ## RVP/MVP **应用于:** 夏普蓝光播放器/录像机 **注意:** 仅支持较旧类型的文件(XOR 加密) ## Samsung (带有 ***.img.sec 的文件夹) **应用于:** 2013 年之前的三星电视 **注意:** **依赖密钥** - 参见 keys.rs **致谢:** https://github.com/george-hopkins/samygo-patcher ## SDBoot **应用于:** 松下电视 SD 启动 **注意:** 目前仅知一个样本,因此支持情况可能会有所不同。 **基础代码:** https://github.com/theubusu/sddl_dec ## SDDL.SEC **应用于:** 松下电视 **注意:** 无,应支持所有文件。 **选项:** `sddl_sec:save_extra` - 保存默认未提取的 SDIT.FDI 和 .TXT 文件。 `sddl_sec:split_peaks` - 将 PEAKS 模块拆分为多个分区(仅适用于旧文件)。这也会自动解压已压缩的分区。 `sddl_sec:no_decomp_peaks` - 使用上述选项拆分 PEAKS 时,不要自动解压分区。 **基础代码:** https://github.com/theubusu/sddl_dec ## SDImage (SDImage.bin) **应用于:** 部分 2010 年美国松下电视 **注意:** 尚不支持解密。 ## SLP **应用于:** 基于 Samsung Tizen 的 NX 系列相机 **注意:** 无,应支持所有文件。 ## Sony BDP **应用于:** 索尼蓝光播放器 **注意:** 仅支持最高至 MSB18 平台。 **致谢:** http://malcolmstagg.com/bdp/s390-firmware.html # 许可证 基于 GNU GPL v3 授权。
标签:Amlogic, Android OTA, AV设备, IOT安全, Rust, 二进制分析, 云安全运维, 云资产清单, 可视化界面, 固件提取, 固件解包, 安卓电视, 嵌入式安全, 文件格式解析, 无外部依赖, 物联网安全, 网络流量审计, 解密, 逆向工程, 通知系统, 配置审计