魔兽秘籍-魔兽争霸秘籍 >> 如何在修改地图上添加暴雪的标志

如何在修改地图上添加暴雪的标志

发布:yucde 日期:2008-1-22 16:32:0

如果在一个修改过的作弊地图上添加暴雪的标志,那样被别人怀疑的可能性就很小了。甚至别人还认为这张地图更可信,前提是你作弊也不要太过分,始终保持那么一点点优势即可。

下面就来说说方式方法:
MPQ的数字签名有两个签名,一个是比较弱的数字签名,还有一个强壮的数字签名
弱数字签名:
使用微软的CryptoAPI,它通过RSASSA-PKCS1-v1_5来实现。
数字签名协议,使用MD5散列算法和一个512位(弱在这里)的RSA密钥(有关此方面的信息参见RSA Labs PKCS1 specification),公钥和它的解释被放在Strom的资源中。数字签名不被压缩地使用 "(signature)"作为文件名放到MPQ包,它对MPQ包的从MPQ包开始位置到结束位置的所有数据进行签名。最后签名文件放到MPQ的header前面。所以它在文件中占据的存储空间会被过滤掉。
签名数据的组织结构:
00h: int32 Unknown : Must be 0.
04h: int32 Unknown : must be 0.
08h: int512 Signature : little-endian逆字节序的存放格式.
强数字签名:
强数字签名使用RSA算法来做简单的加密。它使用SHA-1散列算法和1个2048位(强在这里)的RSA密钥。默认的公钥和它的解释被放在Strom的资源中,但是其他的公钥似乎也能很好的被使用(译者注:说明作者很可能亲自试验过)。
强数字签名被附加到MPQ文件的末尾,使用'NGIS'作为标志。因为是使用逆字节序所以它们原本是'SIGN',整个MPQ包(从MPQheader开头)使用一个确定的block密钥来散列。
签名数据的组织结构:
00h: byte   Padding : Must be 0Bh.
01h: byte(235) Padding : Must be BBh.
ECh: byte(20) SHA-1 : 标准的SHA-1格式.
RSA的复杂性,现阶段还没有破解RSA密钥的方法
但是,我们可以修改storm.dll中的公钥,使之对应我们自己的密钥
这样当我们用自己的密钥签名地图时就能被storm.dll识别料...

呃...之所以说是变相素因为需要修改storm.dll...
这个可以通过打补丁的方式实现...破解storm.dll
经研究,对war3 map进行签名滴rsa公钥不在storm.dll中(storm.dll中滴素默认公钥)
公钥保存在game.dll中,并且偏移地址已经找到...
貌似需要openssl 网址www.openssl.org 素一些加密之类的东西
转载请注明来自:【魔兽秘籍网