• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Cocos2d-x的lua官方加密的解密方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

0x01 加密方式分析
Cocos2d-x对于lua脚本加密提供了一种轻量级解决方案,加密算法是xxtea,下面是这个打包脚本cocos2d.py加密参数的说明
 
主要就是两个部分,sign和key,sign是加密标记,用于判断脚本是否加密,key是xxtea解密时候的秘钥,下面是Cocos2d-x部分源码
这里设置了sign和key
 
这里就是通过对比文件开头的字符串是否为所设置的sign判断是否加密,如果加密的话就解密,解密后才加载脚本
 




0x02 寻找sign和key
将apk解压之后就找到src这个目录,这里放着lua脚本
 
这里的lua脚本是加密的,用记事本打开,可以看到开头的字符串"CreatByDartou",这就是上面所说的sign ,知道sign之后下面就要找key
 
找key很简单,用IDA载入libcocos2dlua.so这个库,打开string窗口,直接搜索sign,key就在附近,"thirteenPokerCOCOS"就是key,知道了这些就可以解密了。
 


解密算法和加密算法可以在https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/tree/v3/xxtea找到

0x03 编写解密程序
解密思路很简单,无非就是读取文件,调用xxtea_decrypt来解密,然后写入文件,写好代码编译运行即可
 
解密成功
 
为了实现批量解密,可以编写个脚本去实现(为啥不直接在解密程序中实现批量?本人比较懒,脚本代码少些)

[Shell] 纯文本查看 复制代码

?

   


解密脚本可以批量的解密
 

0x04 更安全的加密方案
1.应该使用luajit去编译自己的脚本,就算攻击者解密出来也无法获得源码
2.不应该采用官方的加密方案,应该自己实现加密解密算法。
3.隐藏自己的加密秘钥,不应该过分明显。
4.保护好自己的so库,加壳或者做混淆。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap