首页
社区
课程
招聘
[原创]某游戏LUA分析
2022-8-17 15:37 19054

[原创]某游戏LUA分析

2022-8-17 15:37
19054

游戏引擎是 libcocos2dlua.so



 

拖到IDA去看看 发现加固了

我们去内存中DUMP出来 这里就不写DUMP过程了 DUMP脚本很多 


DUMP出来之后进行修复  修复工具下载地址:https://github.com/F8LEFT/SoFixer


DUMP出来的文件头被魔改了 自己用原来的SO文件头复制粘贴进去 在进行修复就可以了


说到LUA的游戏我们基本上都是通过luaLoadBuffer 进行HOOKdump 的


我们打开修复好的SO 竟然找不到luaLoadBuffer 

遇见这种的 只能去看他的开源框架了 先看下他是多少版本的


发现是cocos2d-x-3.13.1 我们去下载这个版本的源码 下载地址:https://github.com/cocos2d/cocos2d-x


下载好我们解压 这里我为了图方便直接用notepad++的搜索功能 搜luaLoadBuffer



可以看到他是有luaLoadBuffer的 只是被他隐藏了 那我们改怎么定位到它呢  我们看到上面有个?.lua的字符串 我们去ida搜下看看


可以看到也是有的 那么我们就鼠标点击过去 选中alua_2按下键盘下的X 


点OK跳过去

我们可以看到这里和我们刚才看的源码哪里基本上是一样的 那么我们按F5看伪代码

通过分析sub_18A080就是luaLoadBuffer我们点进去看看

伪代码太长了 我就不全部截图了


通过HOOK打印 sub_18A080(v41, a1, v42, v43, v71);

V42=内容 V43=长度 V71=文件名

进到sub_18A080内部发这个sub_4595C0 正好对应luaLoadBuffer参数

sub_4595C0(a2, v21, v64, a5); = luaLoadBuffer(l, (const char*)data.getBytes(), (int)data.getSize(), fullPathOfScript.c_str());

到这里就不需要多说什么了直接HOOKdump脚本就好了 


发现脚本DUMP出来竟然是LUAq的

直接用unluac反编译发现报错了 那应该是修改了opcode 

继续IDA 定位opcode


搜索字符串 “ 'for' limit must be a number ”


和刚才一样点击过去按X键 点OK跳过去 


然后F5



case就是opcode 把他拿出来修改下unluac的就可以解密了 这里就不写那么详细了 



[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞10
打赏
分享
最新回复 (9)
雪    币: 224
活跃值: (1773)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
wx_嗨 2022-8-19 09:40
2
0

请问下大佬 luac解密完需要怎么打包回应用里

最后于 2022-8-19 09:40 被wx_嗨编辑 ,原因:
雪    币: 1578
活跃值: (1280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
网络枭红 2022-8-19 09:48
3
0
为什么这里就不写那么详细了。哼~
雪    币: 184
活跃值: (2071)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
lihaiyanz 2022-8-19 19:28
4
0
网络枭红 为什么这里就不写那么详细了。哼~[em_22]
因为已经很详细了剩下的就是手动下
雪    币: 184
活跃值: (2071)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
lihaiyanz 2022-8-19 19:31
5
0
wx_嗨 请问下大佬 luac解密完需要怎么打包回应用里
两种方法 一种直接hook luaLoadBuffer 进行替换  还有一种就是修改完LUA文件重新打包成LUAC的放到应用里 这种方法基本上遇见热更新的就没啥用建议还是第一种方法
雪    币: 498
活跃值: (3776)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
哆啦噩梦 2022-8-20 15:07
6
0
裤子都脱完了,说让手动
雪    币: 514
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
aqingadmin 2022-9-23 17:53
7
0
这是某易加固吧
雪    币: 223
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
锁芯a 2022-9-24 17:44
8
0
裤子都脱完了,说让手动
雪    币: 2598
活跃值: (1054)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
挥一挥衣袖 2022-9-24 19:56
9
0
厉害了,mark
雪    币: 223
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
锁芯a 2022-11-21 07:39
10
0
大佬可否给个联系方式 有事相求
游客
登录 | 注册 方可回帖
返回