a451902 发表于 2017-12-24 20:05:56

wz文件字符加密的加密匙文件或加密匙数据

本帖最后由 a451902 于 2017-12-24 20:06 编辑

最近接触单机版, 找到了原版的odinms代码,在频道服务器运行时原版对资源文件的字符串解密步骤有差异,正常来说是
char ^ (0xAA + offset) ^ key // ASCII
char ^ (0xAAAA + offset) ^ ((key << 8) + key) // Unicode

原版并没有异或key数组, 之后找了几个国内其他改版源码, 发现它是一个“Cms.hex”密匙文件static {
        File keyFile = new File("Cms.hex");
        try {
                FileInputStream fis = new FileInputStream(keyFile);
                encKey = new byte;
                fis.read(encKey);
                fis.close();
        } catch (Exception ex) {
                log.error("文件所需要的加密匙丢失.");
                ex.printStackTrace();
        }
}

我下的这几个改版源码里都没找到Cms.hex

我翻了翻WzComparerR2的源码, 里面的Wz_Crypto类有密匙(keys_bms,keys_kms,keys_gms)但却是运算出来的, 未直接给出,又因本机未安装VS和本人对CSharp不熟,无法直接跑出密匙,希望有人能把密匙运算出来发给我,或有Cms.hex文件也可以, 先行谢过。

页: [1]
查看完整版本: wz文件字符加密的加密匙文件或加密匙数据