导语:样本xlua,简单涉及到解密、hook等部分基础逆向。补足个人学习路上该路线的教程贴

简单介绍lua与untiy结合的背景,方便代码进行热更新从服务端拉取下发,unity做好相关承接即可也就是热更新
大部分逻辑将在lua中写明,unity基本为一个空壳
国内常见的是,我的老乡小腾腾公司的xlua,近年版本多为5.3的lua版本


关键函数拿下,直接手搓Frida的jshook脚本,核心代码逻辑为,hook该函数读写出buff的参数值,根据name作为文件名写入文件存储到我们的路径上

在无进行op重写,以及魔改lua的情况下。我们针对lua框架只需进行字节码的一定修复,原为1B 4C 75 61 53 01 19 93
0D 0A 1A 0A 04 04,需将其改为1B 4C 75 61 53 00 19 93
0D 0A 1A 0A 04 04 04,然后再拖入jar进行反编译即可完成。
结合以上思路,编写Python、js两个Frida脚本将整个流程自动化,js复制hook字节流发送给Python端,Python端完成字节码验证、字节码修复、文件写入、拉起jar修复的完整流程即可获得下面的lua文件
获取完成后仅就只需进行正常的逆向改代码,以及hook替换字节流(配合c方向)
本次教程结束,逆向小白啥也不懂。部分名词有误的地方还请见谅。欢迎更多对uniy+lua、游戏引擎、游戏安全方面的有识之士加入初夏团队 到技术军团中找我交流[滑稽]
#【学习交友】点进来,直达技术与交友现场!
#本篇文章,全篇只交代核心逻辑思路,不提供其他脚本代码。希望还未了解此方向的朋友带来一点微不足道的光芒[呵呵]


