news 2026/10/13 2:42:33

UniExtract2 全面解析:Universal Extractor 2 的万能文件提取能力、模式与构建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UniExtract2 全面解析:Universal Extractor 2 的万能文件提取能力、模式与构建指南
  • 桌面应用

【免费下载链接】UniExtract2

Universal Extractor 2 is a tool to extract files from any type of archive or installer.

项目地址:https://gitcode.com/gh_mirrors/un/UniExtract2
点击查看免费下载

Universal Extractor 2(简称 UniExtract2)是一款以"从任何可提取文件中提取文件"为核心目标的解包工具,其独特之处在于它不止处理.zip、.rar等标准压缩包,还覆盖应用安装程序、磁盘镜像、游戏资源包乃至多媒体文件。本文以仓库 README.md 为主线,结合 UniExtract.au3 源码与 docs/FORMATS.md 格式清单,系统讲解其核心特性、命令行用法、批处理/扫描/静默模式、密码列表、更新与卸载机制,并给出基于 AutoIt 的从源码构建方法,帮助你把它真正用起来、看懂它的底层实现。

项目定位:不止是压缩包解压器

Universal Extractor 2 是原始 UniExtract(由 Jared Breland 开发)的非官方更新与扩展版本。原始版本的开发早已停止且多年未发布更新,社区涌现出众多 fork(由志愿者维护的修改版本),而 UniExtract2 是其中功能最丰富的一个,拥有一长串增强特性。

从源码角度看,其核心工作流程清晰记录在 UniExtract.au3 的文件头注释中:

  • 使用 Unixfile工具和 TrID 判断文件类型;
  • 使用 Exeinfo PE 和 PEiD 识别可执行文件类型;
  • 解包已知的归档类型。

它与其他解压软件最大的区别在于:标准归档之外,它还支持应用安装器、磁盘镜像、游戏资源文件(game archives)和多媒体文件。完整的支持类型清单见 docs/FORMATS.md。

v2 版本的核心新特性

相较于原版,UniExtract2 引入了一系列重要增强(见 README.md):

新特性说明
500+ 新增文件类型相对原版最新官方版本大幅扩展支持面(FORMATS 中加粗项均为 v2 新增)
批处理模式(Batch mode)可把多个文件加入队列批量解包
仅扫描模式(Scan only mode)不解包,只检测任意给定文件的类型
内置更新器(Built-in updater)自动检测并下载新版本及辅助工具
密码列表支持对常见压缩包自动尝试passwords.txt中的密码
改进的上下文菜单与状态框更完善的右键集成与状态展示
更快更好的文件分析多引擎联合识别
静默模式不显示任何提示,适合脚本调用
大量界面改进与对话框重设计—
资源占用/速度优化与大量 bug 修复完整变更记录见 docs/changelog.txt

文件分析的多引擎机制

所谓"更好的文件分析",在源码中体现为多个检测器协同工作。在 UniExtract.au3 中,文件识别依次调用:

  • FileScan_Trid():基于 TrIDLib 的签名识别;
  • FileScan_ExeInfo()/FileScan_Peid():针对 PE 可执行文件的加壳/打包识别(如 UPX、Aspack);
  • FileScan_UnixFile():调用 Unixfile工具;
  • FileScan_MediaInfo():对多媒体文件调用 MediaInfo。

多个引擎的结果汇总后,由_FiletypeGet()(UniExtract.au3)统一输出格式化的类型判定文本。正是这套多引擎机制,让它能识别出"扩展名不可靠、需要看内容特征"的众多格式。

支持的文件类型全景

docs/FORMATS.md 完整列出了 UniExtract2 支持的类型,加粗项为 v2 新增(即原版官方最新版本不支持的)。按大类划分:

压缩归档(Compressed archives)

覆盖从常见的 7-Zip(.7z、.exe、.001)、RAR(.rar、.exe、.001、.r00、.part1.rar)、ZIP(.zip、.jar、.xpi、.wz、.exe、.imz)、gzip/bzip2/xz/tar 家族,到 ALZip(.alz)、Asar(Electron 的.asar)、Chromium package(.pak)、FreeArc、KGB、LZH/LHA、LZMA/LZO/LZW/LZX、PEA、StuffIt(.sit/.sitx)、UHARC、UPX 壳(.exe/.dll)、Zoo、ZPAQ 等冷门格式,还包含 Linux 软件包.deb、.rpm和 CPIO。

应用安装器(Installers)

安装包往往是提取的难点,UniExtract2 支持包括 Inno Setup 与 GOG 安装器、InstallShield(.cab/.exe)、NSIS、Windows Installer(.cab/.exe/.msm/.msi/.msp/.msu)、Wise、WiX 在内的 20 余种安装体系,以及 PyInstaller、Spoon Installer、SymbianOS/EPOC 安装器(.sis/.sisx)等。

磁盘镜像(Disk images)

支持 ISO 9660、BIN/CUE、Nero(.nrg)、IMG、DMG,以及 v2 新增的 Android boot image、CloneCD(.ccd)、压缩 ISO(.cso)、PowerISO(.daa)、VirtualBox(.vdi)、VMware(.vmdk)、Windows Imaging Format(.wim)等。

多媒体(Multimedia)

  • 动画图片(.gif/.png):可提取动画的独立帧;
  • 音频文件(.mp3/.ogg/.flac/.wma/.m4a等):可将压缩音频转换为.wav;
  • Flash 文件(.swf/.exe):提取图片、音频与 Flash 组件;
  • 视频文件(.avi/.mp4/.mkv/.webm/.flv/.smk等):提取所有音轨与(可选)视频轨。

游戏资源包(Game archives)

这是 v2 扩展最猛烈的领域,包括 Bethesda 的.bsa/.ba2、Godot 引擎(.exe/.pck)、KiriKiri(.xp3)、Ren'Py(.rpa)、RPG Maker(.rgssad/.rgss2a/.rgss3a/.rpgmvp等)、Unity(.assets/.unity3d)、Unreal(.pak)、Wolf RPG Editor(.wolf)等,外加 500 多种其他游戏资源格式。

文本类与其他

支持 E-Mail(.eml)、编码文件(.b64/.hqx/.uu/.uue/.xx/.xxe/.ync)、Gettext 消息目录(.mo)、CHM/HLP 帮助文件、MHT、PHAR、PDF(部分支持)、Qt Message(.qm)、SQLite 数据库(.sqlite/.sqlite3/.db)、WARC 网页归档,以及 Enigma Virtual Box、MoleBox、分卷文件(.001/.002…)和 Windows 缩略图缓存(Thumbs.ds/thumbcache_*.db)。

注:FORMATS.md 中标注¹的格式(如 FreeArc、Bitrock Install Builder、Unity、Unreal、PDF 等)为部分支持,部分文件无法被正确解包。

仓库的 def/ 目录还保存着一批格式专属的.ini定义文件(如alz.ini、godot.ini、rpgmvp.ini、sgb.ini、sim.ini、spoon.ini、utage.ini等),配合 UniExtract.au3 中枚举的$TYPE_*常量与$aExtractionTypes数组,构成了格式路由的核心表。

命令行用法

UniExtract2 支持完整命令行操作,参数解析位于 UniExtract.au3 的_CommandLine()逻辑中。基础语法为:

UniExtract.exe "待解包文件" [目标目录|/scan] [/type=类型] [/batch] [/silent] [/close] ...
参数作用
"文件路径"第一个参数为要处理的文件,可多个文件(多个文件会加入批处理队列)
目标目录第二个参数指定输出目录;特殊值/sub(输出到当前目录下的子目录)与/last(输出到上次使用的目录)
/scan仅扫描:只检测文件类型,不执行解包(对应 GUI 的"Scan only"模式)
/type=arctype强制指定归档类型,绕过自动检测;类型名来自def/*.ini与内置类型表
/batch把文件加入批处理队列后立即退出
/batchclear清空批处理队列
/silent静默模式,不弹出任何提示
/nolog关闭日志生成
/nostats关闭使用统计上报
/update立即检查更新
/updatehelper//updatehelpers静默检查并更新辅助工具
/plugins打开插件管理对话框
/uninstall卸载(结合/removeuserdata可同时删除用户数据)
/close处理完成后关闭程序
/help、/?、-h、--help显示命令行帮助

需要注意:当通过上下文菜单调用时,程序会默认抑制"解包后打开输出目录"的行为(UniExtract.au3)。

四种工作模式:提取、扫描、批处理、静默

提取模式(默认)

这是默认行为:自动识别类型并在目标目录解包。若启用"提取后打开输出目录"选项,解包完成后会自动打开输出文件夹。

仅扫描模式(Scan Only)

对应 GUI 中Extract/Scan单选切换(UniExtract.au3 的GUI_ScanOnly()),扫描模式下目标目录输入框会被禁用。扫描结果由_GUI_FileScan()(UniExtract.au3)以只读文本框展示多引擎识别的类型结论,可一键复制。命令行中则用/scan参数触发,同时会关闭日志(UniExtract.au3)。

批处理模式

批处理队列保存在%APPDATA%\Bioruebe\UniExtract\batch.queue(UniExtract.au3)。相关核心函数:

  • AddToBatch()(UniExtract.au3):把文件追加写入队列文件;
  • _BatchRead()/_BatchSave():读写队列;
  • _BatchEnable()(UniExtract.au3):启用批处理模式并持久化batchenabled偏好。

使用方式:通过命令行传多个文件、用/batch加入队列,或在主界面中拖放文件到队列(UniExtract.au3 注释 "Drag and drop - a total of N files were added to batch queue")。批处理模式下,每个文件处理结束后若输出目录为空会进行清理,全部完成后可自动关闭主 GUI(UniExtract.au3)。

静默模式

在 GUI 的Edit菜单勾选Silent Mode,或命令行加/silent,可抑制全部提示框(对应 UniExtract.au3 的GUI_Silent())。静默模式与批处理组合使用,即可实现无人值守的脚本化批量解包。

密码列表支持

对于受密码保护的常见压缩包(7z、RAR、DGCA 等),UniExtract2 支持密码列表自动尝试。机制位于_FindArchivePassword()(UniExtract.au3):

  1. 先用探测命令判断归档是否加密(如 7z 的l -p -slt输出含Encrypted = +);
  2. 若已加密,从密码文件逐行读取密码并逐个测试(如7z t -p"%PASSWORD%");
  3. 找到正确密码后,用它完成解包。

密码文件默认路径为%APPDATA%\Bioruebe\UniExtract\passwords.txt(UniExtract.au3);若读取失败则回退到程序目录下的passwords.txt。每行一个密码,可通过 GUI 的Edit菜单中的Password项直接打开编辑(UniExtract.au3)。

上下文菜单集成

安装上下文菜单后,可在资源管理器中右键直接解包。相关配置界面由GUI_ContextMenu()(UniExtract.au3)构建,支持:

  • 简单模式(Simple)与级联模式(Cascading,Windows 7 及以上可用)两种菜单样式,切换时预览图由 support/Icons/ContextMenu_Simple.png 与 support/Icons/ContextMenu_Cascading.png 提供;
  • 针对不同文件类型(归档、可执行文件、媒体文件等)的菜单条目勾选;
  • 可选"添加额外文件关联"并支持对所有用户生效(需管理员权限)。

注册表写入是上下文菜单启用时留下的唯一系统痕迹,这也是其"并非完全便携"的原因之一。

更新机制与 Nightly Builds

UniExtract2 内置更新器。核心逻辑为CheckUpdate()(UniExtract.au3):

  1. 从服务器拉取文件索引(_UpdateGetIndex());
  2. 主程序(UniExtract.exe)通过 MD5 与文件大小比对判断是否有新版——因为可执行文件无法在运行时自我覆盖,主程序更新会调用独立的 UniExtractUpdater.au3(含提权版本 UniExtractUpdater_Elevated.au3);
  3. 辅助工具(bin目录下的 50+ 个外部提取器)与 FFmpeg 则可直接覆盖更新。

更新触发方式:新版本发布时自动通知,或从Help菜单手动Check for Updates。更新检查间隔可在Edit菜单的 Preferences 中配置(每日/每周/每月/每年/从不/自定义)。

Nightly(开发版)更新:在 Preferences 对话框中勾选Install beta updates(对应偏好项nightlyupdates,见 UniExtract.au3),下次检查更新时将接收开发构建而不是发布版。取消勾选后,只需再更新一次即可回到最新稳定版。当前项目仍处于 beta 阶段(源码版本号为2.0.0 RC 4,见 UniExtract.au3),因此更新频率较低。

重要警告(README 特别强调):不要自行替换 UniExtract 程序目录中的任何文件,否则会破坏程序!

系统要求与兼容性

  • 最低要求:Windows XP 或更新版本;
  • Windows 7:发送反馈需要先启用 TLS 1.1/1.2(遵循微软的相关指南),否则反馈功能会失败;
  • Windows XP:出于安全考虑,所有在线功能(更新器、反馈对话框)被禁用,且部分提取器可能无法工作;
  • 从 docs/changelog.txt 可见 v2 还专门针对 Windows 11 与高 DPI 屏幕做了兼容改进。

安装、卸载与便携性

安装

从官方源下载 ZIP 后解压即用,无需安装过程。首次运行如果提示程序文件不完整,是因为源码包/精简包不包含外部提取器(见下文"从源码构建")。

卸载

README 给出了三步卸载指引:

  1. 若启用了上下文菜单:打开程序,选择Edit>Context Menu Entries,取消两个enabled复选框并点击OK(对应源码GUI_ContextMenu_remove()与GUI_ContextMenu_fileassoc(0),见 UniExtract.au3);
  2. 若程序位于无写权限目录(如C:\Program Files)且需要清掉全部设置,在资源管理器地址栏输入%APPDATA%\Bioruebe并删除其中的UniExtract目录;
  3. 最后删除程序目录。

命令行方式为/uninstall,结合/removeuserdata可在卸载时删除用户数据(UniExtract.au3、UniExtract.au3)。

便携性与多用户模式

UniExtract 本身完全便携,但有几个例外:

  • 启用上下文菜单会写入注册表项;
  • 为支持大量格式,程序捆绑了 50 多个外部提取器,其中部分可能在系统上留下痕迹——常见压缩包与安装器的提取可视为便携,其他格式则未必;
  • 若把程序放在无写权限目录(如C:\Program Files),会触发多用户模式:配置文件存储到%APPDATA%(C:\Users\用户名\AppData\Roaming\Bioruebe\UniExtract)。

配置加载逻辑ReadPrefs()(UniExtract.au3)会依次判断:优先读取当前用户的UniExtract.ini;否则测试程序目录是否可写,可写则用全局配置,不可写则复制到%APPDATA%。配置项覆盖语言、历史记录、批处理开关、日志、静默模式、夜间更新、GUI 位置记忆等数十项偏好(UniExtract.au3)。

常见问题(FAQ)

为什么市面上有很多不同的 UniExtract 版本/修改版/repack?

原作者停止开发后,世界各地许多人继续更新与改进。有的只更新内部工具,有的添加了新功能,因此各版本在支持格式和特性上差异很大。UniExtract2 是唯一"真正开源"的版本,拥有中心化仓库供所有人贡献;但它也可能无法解包其他版本能处理的文件——如果确实需要某个归档的内容而本版本失败,可以尝试其他 UniExtract 版本,或在项目内寻求支持。

UniExtract 能(重新)压缩文件吗?

不能。该工具定位就是纯提取工具,对应的压缩功能(设想中的 "UniArchive")不在开发范围内。

误报问题:为什么杀毒软件会报毒?

README.md 与 docs/ANTI-MALWARE.md 详细解释了这个问题。UniExtract 不含任何恶意代码——它是 GPLv2 开源软件,任何人可审计源码。误报主要源于以下事实:

  1. 捆绑 50+ 外部提取器:只要其中一个被识别为恶意,整个包就被标记;且每次更新加入新提取器都会提高误报概率;
  2. 内置更新器:恶意软件常做"下载文件",更新器也下载文件,行为特征相似;
  3. AutoIt 编写:AutoIt 历史上曾被用于编写恶意软件,不少杀软厂商图省事直接"AutoIt = 可疑";
  4. 白名单流程繁琐:误报申诉需针对每个厂商分别处理,且每发一个新版本都要重来。

如果你的杀毒软件报毒怎么办:向厂商提交误报报告(false positive report);把 UniExtract 程序目录加入扫描排除名单;或更换杀毒软件。下载时请务必只从官方源获取。

病毒与 SmartScreen 提示的说明

  • VirusTotal 之类服务:通常会有 1~10 个引擎标记,属于上述误报现象;
  • Windows SmartScreen 'Windows protected your PC':这是对"无大公司背书/用户基数小"的软件的常规提醒,尤其在新版本刚发布后常见。可放心点击More info→Run anyway;当安装用户足够多、软件积累信誉后,该提示通常会自行消失。

从源码构建

UniExtract2 使用 AutoIt 编写,核心源文件是 UniExtract.au3(约 8000 行,编译指令见文件头部#AutoIt3Wrapper_*注释)。构建步骤:

  1. 下载并安装 AutoIt;
  2. (可选)安装 SciTE 编辑器——通过 SciTE 运行 UniExtract 还能在内置控制台获得实时日志,便于调试;
  3. 克隆本仓库,或下载快照解压到任意目录;
  4. 在 SciTE 中打开 UniExtract.au3,按F5以调试模式运行;按F7编译可执行文件;也可用 Aut2Exe 直接编译;
  5. 下载源码包中未包含的外部程序文件:先运行程序,当提示"程序文件不完整"时选择No;然后进入Edit/Preferences勾选Install beta updates,等待更新通知出现(若无,用Help/Check for Updates),选择Yes完成辅助文件下载;
  6. 若主可执行文件在更新中被覆盖,按第 4 步重新构建。

参与贡献与许可证

  • 贡献:任何形式的想法、bug 报告、代码提交、文档改进都欢迎。当前特别需要多语言翻译更新——打开 lang/ 下的语言文件并补齐空字符串即可(英文与德文始终是最新版本,可作参考)。todo.txt是原版遗留的个人开发笔记,仅供参考。
  • 许可证:主程序为GPLv2(全文见 LICENSE);作者原创(非 copyleft)的代码部分可在 BSD 3-clause 条款下用于你的项目。
  • 第三方组件:程序使用 TrIDLib、多个 7zip 插件及大量其他工具与库(详见 docs/helper_binaries_info.txt)。部分提取器不允许商业使用——若打算商用,务必先检查docs目录下各第三方许可证文件与辅助二进制信息文件,可自由删除 bin 目录中许可证不符合你使用场景的文件。

结语

UniExtract2 的价值在于"广度":以 50+ 外部提取器为引擎、多签名库联合识别为大脑,把标准压缩包、安装器、镜像、游戏资源与多媒体文件统一收敛到一个提取流程中。配合批处理、仅扫描、静默、密码列表等模式,它既能当图形化右键工具,也能充当脚本化批量提取的底层组件。如果你想深入了解每种格式的具体解包调用链,可直接研读 UniExtract.au3 中$aExtractionTypes路由到的各格式分支,以及 docs/changelog.txt 中每轮迭代对具体格式的改进记录。

  • 桌面应用

【免费下载链接】UniExtract2

Universal Extractor 2 is a tool to extract files from any type of archive or installer.

项目地址:https://gitcode.com/gh_mirrors/un/UniExtract2
点击查看免费下载
上一篇:Display Driver Uninstaller终极指南:彻底清理显卡驱动残留的完全攻略
下一篇:Neon N-API 迁移实战指南:从旧后端到 JsBox 与 Channel API 的完整升级路径

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 2:40:10

Windows下部署Copaw:飞书AI机器人接入全流程指南

部署 AI 机器人到办公 IM 这件事,我前后折腾过不少次,Copaw 算是其中让我觉得"安装到飞书集成"这条链路走得比较顺的一个。Copaw 本质上是一个把大模型能力接进飞书的机器人网关服务,你把它部署在 Windows 机器上,配置好…

作者头像 李华
网站建设 2026/10/13 2:36:11

线段树模拟费用流:高效解决产品销售利润最大化问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/13 2:35:19

Zynq7020 Linux开发实战:环境搭建、SD卡启动与设备树配置

1. 为什么一块Zynq7020开发板值得折腾Linux实验手里这块Zynq7020开发板已经放了小半年,最近终于抽出时间把Linux相关的实验从头到尾跑了一遍。说实话,如果你之前只玩过单片机裸机开发,第一次接触Zynq系列的芯片,大概率会有点懵——…

作者头像 李华
网站建设 2026/10/13 2:34:40

Linux内核加固:从__user指针校验到LKRG运行时防护

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华