首页
社区
课程
招聘
[原创]jsc反编译以及二进制修改
发表于: 2019-8-7 09:42 5808

[原创]jsc反编译以及二进制修改

2019-8-7 09:42
5808

       最近碰到jsc的游戏,游戏中有跳过功能但有限制,想着对游戏进行修改达到无条件跳过。
       首先,反编译jsc文件,使用这个工具https://github.com/irelance/jsc-decompile-mozjs-34(大致就是安装一个php环境,然后用composer导入项目所需)注意这里只能反编译SpiderMonkey 34 这个版本,反编译后的文件能看大部分的代码。
       在文件中搜索skip,观察可知如下的代码就是跳过按钮的判断

        接下来,根据字节码对照表寻找这段代码在jsc中对应的位置,字节码 对照表 https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals/Bytecode
        在反编译的js搜索canSkip,上面代码的canSkip是最后一个

        这块字符串对应的代码在它前面,如图中所标3B 00 00 00 00是取下标为0的字符串cc,而我们要找的canSkip小标是0x11,可以从头往下跟着代码找,熟悉的话就知道35 00 00 00 11这个就是获取canSkip字符串,后面跟着的20是取反,再后面07就是IFEQ的判断语句,后面的52是else执行的地方,而我们的跳过功能执行的地方刚好是else之后,我们就可以将07改成06(GOTO),直接goto执行跳过代码了。改完之后替换原来的jsc文件,这样就可以无条件跳过了。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//