记一次electron反编译之JavaScript简单混淆记录


前言

摸鱼的时候想边打游戏边看看小说,小说又是txt,于是找了个阅读器,可惜要会员,一搜,有破解版

【EPUB阅读器】Neat Reader v6.0.8 例行更新 去广告&去各种限制&可珍藏

在此感谢@夜泉的无私奉献!

破解补丁看了下,是app.asar,突然想到以前汉化clash的时候,也是弄的这个,于是乎这次也来试试,把他改成我想要的形状。

反编译

#先安装
npm install asar -g
#解包
asar extract app.asar app
#打包
asar pack app app.asar

搜了下相关字符串,改了几个位置,

然后问题来了

这地方的字符串,一直没搜到,折腾了很久,翻了半天代码。unicode,十六进制,各个样式都搜了一遍,简直怀疑人生。

之后没办法,只能使出大杀器,文件比较,翻找了一下,终于找到了位置,叹为观止

混淆

原来,修改者加了个混淆函数,将中文转化为[ascii码10进制异或0x12的数字],这样就减少了字符串搜索的风险。

提取出来改改运行下

D = (str) => {
    var V1,
        I_NMI2,
        PcigmAelG3 = "";
    I_NMI2 = str["split"](".");
    for (V1 = 0; V1 < I_NMI2["length"]; V1++) {
        PcigmAelG3 += String["fromCharCode"](I_NMI2[V1] ^ 0x12);
    }
    console.log(PcigmAelG3);
};
D("50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.8220.50.39.32.98.125.120.123.119.60.113.124.82.22798.27867.50.63.50.22928.26510.35291.24453.35831.36733.20196.22895.30010.35813.25917.25363.27505.29274.65310.35831.34935.19987.20183.38466.30010.20124.23412.20082.21662.30726.31332.30460.30358.65289.19999.24453.23572.35831.34935.19987.30010.20124.21844.19976.25092.32791.38732.27847.30010.36870.65310.21556.21003.65310.19986.21013.21532.26510.35813.30010.25125.33272.36109.51");

而且我也是刚刚才知道,str.split也可以str["split"]

算是开辟了新思路,收获很大。


文章作者: 巡璃
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 巡璃 !
评论
  目录