jsc加密文件动态调试获取解密key

2025-04-06 0 4,770

无意看到吾爱破解有个关于解密jsc文件的文章不错,借来给大家参考一下,或许用得到!

lib目录下只有一个so文件libcocos2djs.so,在assets/src下看到3个jsc文件:cocos2d-jsb.jsc、project.jsc、setting.jsc,搜索一下就知道了这是cocos2d-js框架搭建的游戏,游戏内代码都是用js编写,可加密为jsc文件。

准备工具:(下面的2个工具本站都有免费提供下载,请复制搜索)

反编译工具IDA Freeware 8.3免费版;

新版jsc解密工具1.44绿色版及使用教程(免费下载);

解密过程:

一、分析so文件

游戏逻辑开始之前必定是要从jsc中解密出js脚本的,这个解密的程序一定在本地,于是将目标锁定到唯一的so:libcocos2djs.so。
大致确定是xxtea算法加解密,所以ida加载完毕后,导出表中找到xxtea_decrypt函数,交叉引用找到两处,跟入第一处sub_4A9320,关键代码如下:

jsc加密文件动态调试获取解密key

其中,std::string结构体(类)参考文章:libc++’s implementation of std::string,再在代码中比较可构造出来,剩下的简单结构体可根据代码含义恢复出来,虚函数表也有对应的符号信息,很容易恢复。
这就是jsc的解密过程了,只是确定是xxtea解密,而xxtea_key仍是未知的。

二、获取key

xxtea_key是一个全局变量,那么可以在游戏启动后在内存中查看它的值,这涉及到ida动态调试,网上有很多教程,但是那些教程大多都是连接调试器后才运行,这里需要运行后再附加调试器,而且不需要暂停。大部分过程是相同的,简单介绍如下:
1.开启夜神安卓模拟器,安装软件,将android_server放到/data/local/tmp/目录下,赋予可执行权限;

jsc加密文件动态调试获取解密key

2.运行android_server,新开一个控制台转发端口;

jsc加密文件动态调试获取解密key

3.模拟器上打开游戏,新开ida窗口,Debugger->Attach->Remote Arm Linux/Android debugger,Hostname为127.0.0.1,端口为23946,其它不用管,直接OK,然后选择此应用;

jsc加密文件动态调试获取解密key

4.在窗口IDA View中按ctrl+s弹出段窗口,找到libcocos2djs.so段,记录起始地址0xC000000;

jsc加密文件动态调试获取解密key

5.xxtea_key在libcocos2djs.so中偏移为0xDB5698,那么这里按g,跳转到CDB5698。

第一个_DWORD为33表示这是长字符串,cap为33;

第二个_DWORD值为16表示字符串长度为16;

第三个_DWORD为一个指针,指向保存的字符串,所以可以看到key为:a64fe959-4a0e-4e;

jsc加密文件动态调试获取解密key

至此,成功获得xxtea_key。

三、解密jsc

有了key后应该可以直接用网上的方法解密,把KEY填进jsc1.44解密工具里即可解密。

jsc加密文件动态调试获取解密key

至于判断xxtea解密后判断是否是Gzip压缩,很简单,直接解压看能不能解压,不能解压就把扩展改成.js,然后打开修改即可,如果能解压就把解压后的文件扩展改成.js

jsc加密文件动态调试获取解密key

打开JS文件:

jsc加密文件动态调试获取解密key

总结

上面的步骤是几个月前做的,这次重复一遍,分析so时查看xxtea_key交叉引用,找到jsb_set_xxtea_key函数,继续交叉引用,找到AppDelegate::applicationDidFinishLaunching函数,这里直接可以看到key,原来这么简单,大意了。也是因为这里用snprintf将key的各个部分重新组合,所以当时并没有找到key。
project.jsc是源代码整合到一个文件里加密的,有可能没有整合,就有很多个jsc文件,这些都可能是加密的源代码。当然文件后缀不一定是jsc,这些都是开发时可以自己修改的。反正只要是cocos2d-js,源代码(可能加密)一定是在assets目录下的,找一找就行了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

注:在使用本系统时,使用方必须在国家相关法律法规范围内并经过国家相关部门的授权许可,禁止用于一切非法行为。使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责。

83源码 技术教程 jsc加密文件动态调试获取解密key https://www.83ym.com/2868.html

认准唯一TG:@ym830

常见问题
  • 站内所有资源,针对不同等级VIP会员可直接下载,特殊资源商品会注明是否免费,指会员所享有根据选择购买的会员选项所享有的特殊服务,具体以本站公布的服务内容为准。
查看详情
  • 按照我国的法律规定,运营网络棋牌首先需要成立一个注册正规备案的公司,然后申请网站备案、文网文、ICP等等,这些证件缺一不可。 一.注册公司 在当地工商进行注册,公司名称以“XX科技有限公司”为名,如:富裕棋牌经营范围填写“计算机软硬件、网络设备的设计开发与购销”。 二.域名及网站备案 在国内从事网站经营活动就必须经过相关部门的备案,因此棋牌运营商在购买了域名后,就要到当地网监局办理网站备案,或者请服务器提供商代为备案。 三.申请文网文 文网文全称为网络文化经营许可证,是从事经营性互联网文化活动所必需的资质。一般是需要到当地省一级(省、直辖市、自治区)的文化行政部门提出申请,并经由当地的文化行政部门合法批准。次资质要求申请公司注册资金必需达到1000万,并提供游戏版权证明文件。 四.申请ICP ICP又称为增值电信业务许可证,所有网络游戏运营商均需要办理ICP许可证,此证件要求公司注册资金1000万,需到当地市级通讯管理局办理。 五.申请文网游——游戏备案 根据《网络游戏管理暂行办法》(文化部第49号)的规定,国产网络游戏在上网运营之日起30日内应当按规定向国务院文化行政部门履行备案手续。 以上就是网络棋牌游戏正规运营所必需的资质证明。一般作为正规有实力的棋牌游戏开发公司,不光要具备所有的正规资质,而且会对投资者、代理商等合作伙伴给予相关指导和协助,与合作伙伴携手共赢!
查看详情

相关文章

猜你喜欢
官方客服团队

为您解决烦忧 - 24小时在线 专业服务