[大兴土木]CFW的asar文件逆向工程(一)

简介

由于最近比较无聊,发现了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….

留下评论