- 积分
- 101
- 最后登录
- 2021-1-25
- 阅读权限
- 10
- 积分
- 101
- 回帖
- 5
- 精华
- 0
TA的每日心情 | 擦汗 2017-12-23 00:57 |
---|
签到天数: 2 天 [LV.1]初来乍到 新人上路

- 枫币
- 88
- 威望
- 0
- 贡献
- 6
- 在线时间
- 9 小时
- 注册时间
- 2017-11-30
|
本帖最后由 a451902 于 2017-12-24 20:06 编辑
最近接触单机版, 找到了原版的odinms代码,在频道服务器运行时原版对资源文件的字符串解密步骤有差异,正常来说是
- char ^ (0xAA + offset) ^ key[offset] // ASCII
- char ^ (0xAAAA + offset) ^ ((key[offset * 2 + 1] << 8) + key[offset * 2]) // Unicode
复制代码
原版并没有异或key数组, 之后找了几个国内其他改版源码, 发现它是一个“Cms.hex”密匙文件- static {
- File keyFile = new File("Cms.hex");
- try {
- FileInputStream fis = new FileInputStream(keyFile);
- encKey = new byte[65535];
- 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文件也可以, 先行谢过。
|
|