上一主题 下一主题
返回列表 发新帖

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

[复制链接]

82

主题

556

帖子

771

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
771
发表于 2021-1-30 00:30:19 | 显示全部楼层 | 阅读模式

简介

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

图片.png

观察代码发现所有的函数都在赋值 a0_0x1b2f

说明 a0_0x1b2f可能是解密函数

图片.png

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

图片.png

目前可以猜测是对上方的 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....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表回复

本版积分规则

快速回复 返回顶部 返回列表