【教程】破解一个混淆的MIX

这个教程将展示给读者怎么样解密一个被MIX Protetor或者XRMLLeechkiller等方法混淆的MIX。请注意由于大家都能看得到这个教程,以上提到的混淆工具可能改变混淆的方法,那么这个教程便无效了。

原理

TS/RA2的MIX文件包含一个标头,一个索引和主体文件。
-标头包含MIX的基础信息。(是否有校验和,是不是混淆的,有多少文件在里面,文件有多少大小)
-索引包含MIX中文件的大小,路径和校验和。
-主体文件就是真正压缩在MIX里的文件。
这里所提的混淆工具将会损坏MIX文件的标头(尤其是内部文件的大小)导致红警能够读出MIX里的文件而XCC不能。
首先,必须知道标头是怎么损坏的。一开始四个字节是编密码和校验和。如果MIX文件有个加密标头那么帧是00020000。
如果MIX文件有个校验和,那么帧是00010000。目前流行的混淆工具是没有加密标头的。(虽然他们完全可以这么做)我现在不对此做详细解释。

接下来开始详细的讲解解密的方法:

标头摘要

MIX的开始几个字节为:
byte00:一直是00。
byte01:01-校验和,02-加密。其他的情况下,混淆的文件都为00。
byte02:一直是00。
byte03:一直是00。
byte04-05: 大端法记位的内部文件数。
byte06-09: 大端法记位内部文件大小。

操作步骤

简而言之:
1.选择你最喜欢的16进制编辑器,然后打开保密的MIX。
2.确保前四字节为0x00000000。
3.读出后两个字节然后颠倒顺序(比如讲b8 01变为01 b8),这个是文件数量。然后将这个数字换算成十进制。
4. 将这个数字乘以12,然后加10。我们称为数字H。
5.查看MIX文件大小(就是MIX文件属性中的大小,以字节计算)。称这个数字为F。
6.F-H=B
7.将B换算成十六进制,凑成8位数,如果数字不够的话,在前面填零(也就是在前面0加到8个数字)然后颠倒。(例:AB CD EF GH变为GH EF CDAB)
8.将将这八个数字填在后面四个字节上。
9.保存一下。
最后注意:
解密后的MIX文件的文件名就被永久破坏了。

原作者:Renegadge 译者:火星鼠winer

版本更变

2019-07-19 初版译文。
2023-10-12 根据火汉新定义对专有名词进行更变。以【混淆】代替原名词加锁重新描述文本。

注释

本文译自Renegadge的《Unprotecting a protected MIX》
原文引用自modenc,原作者为Renegadge,出处为https://modenc.renegadeprojects.com/Unprotecting_a_protected_MIX
译文遵循CC-BY-SA许可协议(署名-相同方式共享)。
您可以转载和引用本译文,但需注明译者为火星鼠winer,译文出处为火星鼠汉化组https://www.marsm.group/unprotect_mix2.html,并且遵循相同的许可协议共享。


返回上一页