简介
由于最近比较无聊,发现了cfw小猫咪,因为不放心别人汉化的文件因为asar里存在bat文件然而百度了一下,0.39.2版本之后的asar文件是加密的,所以我决定以0.42.1版本开始试图反推js并拿到正确的翻译内容,最后还原部分解密部分的代码,目前能做到哪里尚未可知。总体来说重在参与吧
至于为什么叫大兴土木系列呢,因为这种事情吃力不讨好,并且没钱没意义
首先参考https://bbs.tampermonkey.net.cn/thread-241-1-1.html
我们创建一个bat执行asar extract app.asar ./
自动解压
再创建一个bat执行asar pack app apptest.asar
逆向工程
根据互联网资料找到了renderer.js

观察代码发现所有的函数都在赋值 a0_0x1b2f
说明 a0_0x1b2f
可能是解密函数

我们对其进行一个大致的整理

目前可以猜测是对上方的 a0_0x5a56
进行某种操作
获取字符串组后判断解密程序是否进行初始化
如果解密初始化后就进行处理
然后返回内容
我们测试的方法很简单
在a0的返回处
return (
_0x216b60 === undefined
? (a0_0x1b2f["JbUzuS"] === undefined && (a0_0x1b2f["JbUzuS"] = !![]),
(_0x5a567b = a0_0x1b2f["wovbXq"](_0x5a567b, _0x332a52)),
(a0_0x1b2f["MchjJm"][_0x35e82c] = _0x5a567b))
: (_0x5a567b = _0x216b60),
_0x5a567b
);
把这段代码改为
let rettext= (
_0x216b60 === undefined
? (a0_0x1b2f["JbUzuS"] === undefined && (a0_0x1b2f["JbUzuS"] = !![]),
(_0x5a567b = a0_0x1b2f["wovbXq"](_0x5a567b, _0x332a52)),
(a0_0x1b2f["MchjJm"][_0x35e82c] = _0x5a567b))
: (_0x5a567b = _0x216b60),
_0x5a567b
);
console.log('rettext',rettext,_0x231e56,_0x332a52)
return rettext
然后打包回asar放进cfw进行测试
//Continue....