文章总结: 本文详细记录了对一款Cocos2d-x与Lua编写的棋牌手游进行多层脱壳与协议签名逆向的实战过程。面对Java壳套SO、SO解密DEX以及运行时解密映射子SO的四层复杂加固,作者通过静态分析密钥生成逻辑编写离线脚本脱取业务DEX,并利用FridaHook自定义linker的重定位分发函数精准Dump出未落地的内存子SO。针对业务逻辑所在的魔改opcode的LuaJIT字节码,文章介绍了通过Hook底层装载函数获取明文脚本,并在IDA中通过识别arm64取指与间接跳转特征定位VM分发循环,成功发现魔改仅改变了opcode查表映射而未改变指令编码结构,为后续反编译奠定基础。 综合评分: 93 文章分类: 逆向分析,移动安全,二进制安全,实战经验
拆,得到 appid ‖ HMAC_KEY ‖ RC4_KEY ‖ version 四元组。换 build / 换 appid 的时候,只要把这四元组换掉就行,这个 HMAC_KEY 在同一个 build 里跨会话是稳定的,不是热更下发的。
拿一个完整解密包(POST /api/customerService/live800/,包里 sign 是 fe1445de…)代进去验:
computed: fe1445dec709a415a2fd9db36ea2ba582aa562da
expected: fe1445dec709a415a2fd9db36ea2ba582aa562da
MATCH:True
顺带提一句密钥的兜底逻辑:反编译里 signHttpUrl(chunk 00017)有个分支,内网测试服走的是硬编码 appid=0000、HMAC_KEY="US$47Zzl$zVwkXB4h%HEOyJecqrpIx6X"、version=2024326;正式包才走 png 隐写拆出来的那套。
九、小结
整条链路串下来:
- 四层壳脱掉(前两层离线算法脱,第三层 hook linker dump 子 so 重建 ELF)
- 在 IDA 里逆出魔改 LuaJIT 的 opcode → handler 映射(交叉验证)
- 把映射注入 ljd,批量反编译 845/850 个 Lua(关键是别覆盖 stock opcode)
- RC4 流量解密验证(24/24 字节级)
- sign 静态分析定位到
sign4Url,但纯静态猜素材失败 - hook
lj_str_new抓到真实 HMAC 素材,还原 6 段公式 - 对真实包字节级复现,
MATCH: True
本文仅用于安全研究与学习交流,相关样本来自授权分析,请勿用于任何非法用途。
#
看雪ID:Aar0n
https://bbs.kanxue.com/user-home-985255.htm
*本文为看雪论坛精华文章,由 Aar0n 原创,转载请注明来自看雪社区
第十届安全开发者峰会【议题征集】-欢迎投稿
往期推荐
ret2dlresolve分析
ELF GOT Hook 实战
面向复现的逆向工程实践:Hermes 在设备刷写、提权与 Frida 魔改中的自动化能力验证
把 .o 变成 .ko:GKI 安全特性的铁幕
实战APP全流程分析(检测绕过/登录分析/视频解锁/native加密/广告绕过)
球分享
球点赞
球在看
点击阅读原文查看更多
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:看雪学苑 Aar0n Aar0n《Cocos2d-x Lua 手游多层加固与协议签名逆向实战记录》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论