<meta name="keywords" content="欢乐炸金花,MPQ加密简介" />
迎接您,请 登录 或 注册会员

欢乐炸金花-极速炸金花-炸金花技巧

搜索

MPQ加密简介

2017-5-22 15:38| 检查: 7878 |原作者: 邪恶叔

前言:着实一年前研究mpq加密的时间就有这个想法主意主意,厥后对加密掉落去兴趣,没有应用而已。

先从mpq读取(和写入)提及。市情上的软件年夜致有以下几种措施:

0.listfile式。0这个数字说清晰了了它的原始。假定mpq没有用listfile明确叙述自己的文件组成,它就没法读取其中的文件。怎样说呢,这就似乎只需罪人不招供,自己也以为罪人无罪的笨蛋侦探一样,严谨到无聊。典型例子不是他人,正是年夜名鼎鼎的WorldEditor舆图编辑器。关于这类软件,删掉落落listfile就一切安好。

1.小白式。这类软件基本上用昂贵甜头的dll(由于暴雪只供应了读mpq的storm.dll,没有写入),凭证mpq文件名堂异常墨守陋习地一步步读出内容。效果在于mpq数据稍有纰谬就会招致瓦解。例如header中mpq文件年夜小这项数据,war3读舆图的时间基本岂论,以是怎样写都不影响舆图使命,但这类工具却会照着此数据读图,然后掉落落进番茄海的无底深渊。
典型例子是winmpq和mpqmaster。

2.storm式。以火龙hke为代表。这类mpq软件用暴雪供应的storm.dll读取mpq,读取要领和暴雪不合。由于mpq文件被设计成“知道文件名(含蹊径)可以很容易读取,但扫描一切文件蹊径却简直弗成能”的名堂,war3在读舆图时只用在须要的时间读指定文件就ok,以是这类编辑器也模拟war3读舆图的要领,徐徐推算出“须要的文件”从而读出舆图中近乎一切文件,只需在物编中触及到或jass中提及的蹊径,都邑检测对应的文件并列在表中。这是一种近乎无敌的措施,不会报错(否则war3也玩不了这图),且war3map.j等结实文件一定被扫描出来(否则war3自己也找不到)。

然后是重点:
但这里有个致命效果——岂论是火龙照样war3,弗成能预知到游戏历程当中一切的文件读取,更确切说,一切的字符串。假定字符串是明文写在剧本中,如“sound\\aaa.mp3”,那么火龙会以为这能够是个文件,然后顺藤摸瓜找到它。但假定写成“sound\\” + “aaa.mp” + I2S(3)等以致加上存取哈希表行动,火龙或任何软件也没法完全预知。这类弗成意料是现实级的,即“图灵机没法意料此外一台图灵机的一切能够状态”,等价于著名的“停机效果”,而停机效果是“现实弗成盘算”的。以是在游戏中虽然能正常听到音乐(或看到特效等),但火龙却没法延迟知道这个文件的存在。
样例的图中正是这样,隐藏了一个2m+的mp3文件,但火龙却只能读出一年夜打war3map.xxx。
然后这类措施也能隐藏其它文件,但没法隐藏在物编中应用到的文件(如被某单元应用的导入模子)、舆图必备文件(如j)和笼罩原蹊径文件(如替换的载入图片)。

3.hash扫描式。然则还没完,尚有一种要领,某些软件绕过mpq前面的哈希索引表,直接扫描前面的文件,这样虽然不克不及知道文件名,但能取得完全的文件列表(再怎样说文件也是封在mpq里的吧,把mpq一切扫一遍总能发现)。例子是新版mpqeditor,样例图和某人供应的火影图都能掀开,能看到一堆没有文件名的文件,其中就有隐藏的mp3,改成mp3扩台甫便可以正常播放。这类要领应当没甚么弊病(除得不到准确文件名),假定和火龙联络,用上述措施隐藏的文件也能以“未著名文件”的形式显示出来,其他文件则完善显示。

以是mpq这类文件名堂现实逃不外被拆的厄运,想完善隐藏文件果真是弗成能的使命。全文完。

搜索