查看: 257|回复: 1

Compressed2TXT v6.5 使用指南:将文件编码为 BAT 脚本的原理与选项详解

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
Compressed2TXT 是一款将文件或文件夹编码为批处理脚本(BAT)的实用工具,版本 v6.5。它利用 MakeCab LZX 压缩、BAT85/BAT91 编码以及 PowerShell/C# 混合技术,能够将 exe 等二进制文件嵌入到单个 BAT 脚本中,方便分发、调用或隐藏。本文基于官方文档和更新日志,梳理其核心机制、选项含义及适用场景,帮助开发者正确选择参数。

一、工具背景与原理

Compressed2TXT 本质上是一个 cmd/PowerShell 混合脚本,通过“发送到”菜单集成在 Windows 资源管理器中。它把选中的源文件先使用 MakeCab 的 LZX 算法压缩(生成 CAB 档案),再将压缩后的二进制数据编码为纯文本字符(BAT85 或 BAT91 字符集),最终嵌入到一个经过特殊编排的 .bat 文件中。运行该 BAT 时,脚本会通过内置的解码和解压函数还原原始文件。

支持的操作系统为 Windows 7 及以上,要求 PowerShell 2.0 和 C# 2.0 运行时环境。编码后的脚本会尽量避免触发 Windows 记事本的折行限制(将编码文本拆分为 ≤128 字符或 <1024 字符的行),并在脚本首行加入前缀(如 :: )以禁用高级文本查看器的语法高亮。

二、核心编码类:BAT85 与 BAT91

工具内置两种编码方式,由 GUI 选项 3 控制:


  • BAT85(默认):使用 85 个可见字符的字典,解码密钥必须严格由 85 个不重复的基本字典字符组成(不含 MSCAB.:D 这 6 个保留字符),且密钥内不能出现重复字符。安全性基于 85-6=79 字符的排列组合,强度极高。
  • BAT91:使用 91 个字符的字典,生成文件体积比 BAT85 小约 1.7%,但可能包含对 Web 不友好的字符(如 <*、[color=#c00>`、%\>),若最终 BAT 需要嵌入 HTML 或传输到某些论坛,建议谨慎使用。


三、GUI 选项与参数详解

运行时弹出的图形界面提供 6 个选项(可多选),每个选项对应不同的编码行为:

选项 1:输入解码密钥作为密码
允许用户手动指定一个 85 位(BAT85)或 91 位(BAT91)的密钥,该密钥必须由基本字典中的非重复字符组成,且不能包含 MSCAB.:D 这 6 个字符串中的字符。密钥将被保存在外部文件 ~key.ini 中,方便重复使用。注意:同一脚本内若捆绑多个文件,所有文件必须使用相同的密钥。

选项 2:随机化解码密钥
与选项 1 配合使用。勾选后,工具会生成一个随机密钥,并在编码前提示用户接受或更改。若不勾选选项 1 而仅勾选选项 2,则密钥由程序自动生成。

选项 3:BAT91 编码器(替代 BAT85)
启用后改用 BAT91 字符集,文件体积更小,但需注意上文的字符兼容性问题。

选项 4:没有长队
在编码时避免使用过长的队列(即控制批处理脚本中的行数),减少运行时的开销。适用于希望对最终 BAT 脚本行数严格控制的场景。

选项 5:无 LZX 压缩
关闭 MakeCab 的 LZX 压缩,直接存储 CAB 档案。对于单个巨大且不可压缩的文件(如已压缩的 zip、jpg 或多媒体文件),开启压缩反而浪费时间。官方举例:一个 259.45 MB 的源文件压缩后仅减少 1.06%,却花费 4 分钟处理,这时应勾选此选项。

选项 6:无 txt 编码(仅限 CAB 存档)
不将 CAB 档案编码为文本字符,而是直接生成一个 .cab 文件(并非 BAT 脚本)。此模式适合需要保留压缩包的场景,但生成的不是可执行 BAT。

四、使用流程与注意事项

1. 将 Compressed2TXT 安装至“发送到”菜单后,右键选中一个或多个文件/文件夹,选择“发送到 → Compressed2TXT”。
2. 在弹出窗口中勾选需要的选项(若什么都不选,默认使用 BAT85 + LZX 压缩)。
3. 若勾选了选项 1,需手动输入符合长度和字符集的密钥(工具会自动校验并提示错误)。
4. 点击“编码”后,工具会先分析源文件是否可访问,跳过无法读取的文件;然后进行两次 MakeCab 处理(第二次主要减少文件名树的大小),最后生成 .bat 文件。
5. 生成的 BAT 脚本可在任何 Windows 7+ 系统上运行,解码并还原原始文件。

注意事项

  • 运行生成的 BAT 脚本是危险动作,请确保来源可靠;若对脚本内容不熟悉,请勿执行。
  • 默认使用 LZX 压缩对深度目录结构和大量小文件效果最佳;对于大体积且已压缩的文件,务必勾选选项 5 以节省时间。
  • 当捆绑多个文件时,密钥必须一致,否则解码失败。
  • 工具在编码时会尝试写入默认用户文件夹,若不可写,将自动回退到桌面目录。


五、更新日志摘要(v6.5)


  • 改进 MakeCab DDF 生成器,更好处理本地化和特殊字符文件名。
  • 两次扫描 MakeCab 以压缩文件名树体积。
  • 改进 BAT85 解码器,新增 BAT91 备选方案。
  • 增强对多个选定文件和文件夹作为源的处理能力。
  • 提示接受或更改随机化解码密钥。
  • 原始 cmd/PowerShell 混合,使用 $选项 变量提升脚本友好度。
  • 跳过不可访问文件,使用桌面回退测试不可写目录。
  • 简化展开函数,修复未选择任何选项时的默认行为。
  • 打印总处理时间。


通过以上选项的合理搭配,开发者可以针对不同文件类型生成体积可控、安全性较高的自解压 BAT 脚本。在实际项目中,建议先对小型测试文件进行编码,验证密钥和压缩策略的可行性后再批量处理。
回复

使用道具 举报

发表于 5 天前 | 显示全部楼层

Re: Compressed2TXT v6.5 使用指南:将文件编码为 BAT 脚本的原理与选项详解

感谢分享这么详细的指南!之前用过旧版本,一直对BAT85和BAT91的区别有点模糊,今天总算搞清楚了。选项5关闭LZX压缩的那个例子很实用,确实大型媒体文件再压缩纯属浪费时间。 想请教一下,选项4“没有长队”具体是怎么控制脚本行数的?是固定每行不超过某个长度,还是通过其他方式减少队列深度?另外,如果编码多个小文件,默认的BAT85+LZX压缩,最终生成的bat脚本体积大概会比原始文件大多少?谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-14 05:27 , Processed in 0.026828 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部