cocos creator jsc 逆向解码为js
cocos creator 下的jsc
cocos creator 编译之后的所生成的jsc文件,虽然后缀是jsc,但其实和js虚拟机所执行的字节码(jsc)是二个不同的东西,只是使用xxtea对js文件进行加密而已。xxtea是可逆的,所以cocos creator下的jsc是完全可逆的,因为本质上是一个加解密过程。
当然creator在构建之后形成的js文件本身已经有过一些混淆&压缩,所以jsc还原成js看到的也不是开发时候的源文件了。
一、如何解码文件
涉及到解码文件,我比较常用的方法分为静态分析、动态调试。
1.1、静态分析
静态分析就是利用一些工具(我一般用IDA、nodepad++、Hworks、ILspy),查看被编译之后的加密算法/解码算法。如果是一些三方的加密算法,网上应该能找到很多现成的逆向实现;如果是项目自有实现的加密,就得自己写一个逆向实现了。
1.2、动态调试
动态调试我一般用IDA(具体的动态调试过程以后再单独写一篇),直接在解码之后的位置输出明文即可。当然也先进行静态分析,查找到解码的位置。
动态调试的好处就是不需要关心算法。有些时候自有实现的算法代码量大或看不懂别人算法的时候,用动态调试就很省力。
二、准备工作
了解了cocos creator 的jsc的本质之后,逆向就变得很简单,就是xxtea的解码。那么xxtea如何解码呢,对xxtea算法有所了解的或使用xxtea算法加密过文件的(cocos2d的lua加密也是用的这算法)应该都知道,在加密时候会设置一个key值,解码就是利用这个key值去反着运行一次加密过程。所以逆向之前我们需要准备2样东西,一是加密时所设置的key值;二是xxtea算法的实现:
- 加密时所设置的key值;
- xxtea加密算法的逆向实现;
2.1、如何查询xxtea的key
基于前文1.1、1.2中提到2种分析方式都可以进行key的查找。
不过creator的jsc文件中的key我一般直接用HWorks直接打开查看。
利用HWorks打开libcocos2djs.so文件,查询jsb-adapter/jsb-builtin.js字符串即可,在jsb-adapter/jsb-builtin.js之前的16字节长度的字符串就是key了。
2.2、xxtea的解码实现
这一块网上已经各种语言版本的实现了,用的较多的应该是python版本的。不过我用的是c++,好处就是我是直接编译的引擎自带的xxtea文件,所以保证算法实现一定没问题,也省去了算法理解和编程过程。将引擎自带的xxtea编译成dll文件,可以给其他程序直接调用。
使用vstudio的,可以基于cocos工程直接去调用xxtea解码。不过现在cocos creator 用vscode的较多,所以这里在编译cpp文件的时候,会有一个vscode下配置cpp环境和编译成dll,这一点单独会在写一篇vscode下的c++开发环境配置&dll动态库生成。
最后
这里主要是分析一个crator的jsc文件的本质以及逆向的思路。具体的实现其实也不难,加上网上已经很多的现成案例,这里就不展开了(主要难得打字和组织语言)。有什么问题欢迎交流,整个逆向的工程,放在github上了,工程是基于c++的,运行源码的话需要编译环境,可查看另一篇关于vscode配置c++开发环境的笔记。
cocos creator jsc 逆向解码为js相关推荐
- cocos creator开发微信小游戏(五)贪吃蛇大作战
目录 小游戏介绍 小游戏cocos creator场景图 小游戏部分JS代码 开发中碰到的问题 工程及说明 小游戏介绍 贪吃蛇小游戏:贪吃蛇试玩(首次加载比较慢),类似贪吃蛇大作战的小游戏.当玩家的蛇 ...
- cocos creator学习(七)音乐
目录 背景音乐 使用AudioSource组件 ①添加组件 ②脚本控制 直接脚本控制 ①声明 ②播放背景音乐(playMusic) 音效 直接脚本控制 ①声明 ②播放 ③停止 注意 背景音乐 使用Au ...
- 如何反编译 cocos creator 生成 的jsc文件/反编译jsc文件(一)
jsc文件 是 Mozilla 将 javascript/js 文件编译成的一种二进制格式 cocos creator 目前最大的优势就是可以使用 javascript/js 语言, 调试可以使用成熟 ...
- 如何反编译 cocos creator 生成 的jsc文件/反编译jsc文件(三) , 还原cocos creator 工程
在实际运用中, 发现只是简单的将jsc反编译为js代码后, 并不能好好的进行二次开发, 最好能反编译成工程项目, 可以直接用IDE编译, 目前市面上使用最多的开发框架是cocos creator 和白 ...
- asp.net js函数弹出登录窗口_JS基础 | Cocos Creator 开发环境搭建
编程并不只是简单地写代码,而是要将编写的代码运行在指定平台环境上,在此之前我们还需要搭建生产代码的环境. 一. 软件准备 Chrome:浏览器,用于预览.调试我们的游戏 VSCode:代码编辑器,用于 ...
- 【vscode】调试cocos creator (Js 无法命中断点问题解决)
先看看 官方教程–使用 VS Code 调试网页版游戏 一.安装插件 Debugger for Chrome已弃用 安装 JavaScript Debugger (Nightly) 插件替代,其他步骤 ...
- Cocos Creator TypeScript 中使用ProtoBuf(利用工具把proto文件生成对应的js文件以及ts文件)
我是一枚刚入坑cocos的小白o(╯□╰)o 开发环境:Cocos Creator 1.9 (需要安装Node.js,使用npm命令) 在网上找了很久都是讲的protobuf.js的用法,但是没有 ...
- vscode函数跳转插件_人生苦短,我们为 Cocos Creator 开发的插件和工具
在使用 Cocos Creator 开发项目的过程中,为了提高开发效率我们开发了很多扩展插件,本文介绍常用的几款,抛砖引玉,希望给大家带来帮助. 腾讯开心鼠英语 网页扩展:运行时查看场景节点树 Coc ...
- 精品教程|Cocos Creator如何集成 AnySDK?
今天由技术大牛Eddy为大家介绍怎么在 Cocos Creator 项目中集成 AnySDK . 开发环境 CocosCreator 1.1.1, AnySDK 2.1.2, AnySDK_Frame ...
最新文章
- boost::hana::none_of用法的测试程序
- 【Linux系统编程】特殊进程之孤儿进程
- 序列变换(Lis变形)
- 最高调恋爱方式,简直“公开处刑”......
- 放弃Venn-Upset-花瓣图,在线拥抱二分网络
- Memcached内存管理机制浅析
- Lubuntu 18.10仍有可能支持32位PC
- 130242014051 《商品详情模块》需求分析与设计实验课小结
- View Controller Programming Guide for iOS---(三)---Using View Controllers in Your App
- Python 算法交易实验30 退而结网7-交易策略思考
- 常用的特征选择算法介绍
- java 阴阳历,Java基础-有意思的阴阳历互换的算法
- PTA:特立独行的幸福
- 智牛股_第6章_Mybatis Generator代码生成器
- “沉迷单车的追风少年”的2021年年末总结
- python列表输出学生姓名学号链表_c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添加,删除,查询,排序,平均)...
- uniapp调用地图并导航
- 时间轮盘app(抖音数字时钟罗盘)v1.4 安卓版
- 第九天 (集合 ArrayList)
- 5.2 网络数据Excel存储
热门文章
- Vue li始终前面有黑点
- 大众点评景点美食楼盘点评(Android,AndroidStudio,IDEA,SpringBoot,Mysql)
- 切比雪夫不等式例题讲解_排序不等式,切比雪夫不等式及伯努利不等式
- 快速应用计算机制作pop,9计算机练习题
- 100以内的三连加减法JAVA_100以内加减法三连算练习题.doc
- 龙珠激斗获取服务器信息中,龙珠激斗战力220000贝吉塔快速获得途径攻略汇总详解...
- twitter账号被冻结如何申诉,已成功解冻(我是第一次被冻结,听闻二次冻结会永久冻结)
- Django连接Mysql报错:ModuleNotFoundError: No module named 'MySQLdb'
- 世界上第一台计算机采用哪位科学家,计算机基础知识试题及答案解析
- 当上CEO,迎娶白富美,走向人生巅峰,只有这背水一战!