首页
社区
课程
招聘
[求助]逆向APK中的lua代码,求助后续解决思路
发表于: 2021-10-7 15:15 11983

[求助]逆向APK中的lua代码,求助后续解决思路

2021-10-7 15:15
11983

最近在逆向一款APK的LUA代码时遇到一些问题,我先把自己的处理过程说一下,请教高手后续的解决思路。

一、尝试直接逆向

拿到apk后直接解压,查看了一下里面的文件,包含了大量的lua脚本文件,lib下的so库文件如下:

可以确定这玩意是用cocos2d-lua引擎开发的,接下来随便找了个main.lua文件看看是什么样子,如下:

可以看出,他没有用cocos2dlua自带的XXTea加密方式,用的是lua5.1版本进行编译的,想着用5.1版的luadec就能很快搞定,结果。。。

直接报bad code in precompiled chunk,还是太年轻啊,哈哈
好吧,看到这个错误不要慌,根据经验应该是opcode顺序被改过,看来得分析一下so中的代码了。

二、尝试分析OS代码

把libcocos2dlua.so扔IDA里,打开字符串窗口,再确认一下lua版本:

查一下opcode的字符串顺序,如下:

拿上图的顺序和lua虚拟机源码的对照了一下,这个顺序没有问题,为什么会看字符串顺序呢,主要是因为之前逆向时遇到过一次这种情况,对着字符串的顺序修改opcode就搞定了。不过,显然这次没有这么简单。
于是,打算先定位luaV_execute函数分析一下,搜索“initial value must be a number”字符串,交叉引用跳转到代码处,


按F5查看伪代码,直接报错:

什么鬼,换个姿势试试,这次我们通过调用关系来找luaV_execute函数,通过搜索lua源码,找到了一处调用点在resume函数内,而resume又在lua_resume被用到,如下:


在IDA里搜索一下lua_resume函数,查看伪代码如下:


再定位到sub_606EFC处,sub_606EFC应该就是luaV_execute,但里面的代码却不是应有的内容,而且IDA还出现了红色的错误提示“local variable allocation has failed, the output may be wrong!”,如下:


后续应该怎么弄呢,请教各位大佬?有兴趣的可以发我私信。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 12
活跃值: (340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
luadec项目里面作者有提供很多思路
2021-10-8 11:19
0
雪    币: 6
活跃值: (866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
动态HOOK load_buffer 导出。
2021-10-8 14:59
0
雪    币: 220
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
已经试过动态HOOK load_buffer导出了,导出的lua还是一样,因为他这个是改了LUA虚拟机层,并不是直接对LUA文件加密,所以HOOK出来的没有用。
2021-10-8 18:13
0
雪    币: 220
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个so应该被改过,读不到luaV_execute的代码,只要的难点就在这里,就是想了解一下还原luaV_execute代码的思路
2021-10-8 18:15
0
雪    币: 1534
活跃值: (495)
能力值: ( LV4,RANK:52 )
在线值:
发帖
回帖
粉丝
6

求教load_buffer在so里都加密了怎么办  下图是载入libluajava.so文件的结果

 

2022-4-9 13:46
0
雪    币:
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
如果你确定是cocos2d-x 的那就解析 lua 就行了,iosre点com/t/topic/21769 字节替换一下链接看看都是通用的 先找密码->然后解密lua->创建调试环境->调试lua
2022-4-14 16:50
0
雪    币: 73
活跃值: (319)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
楼主解决了吗?我也是遇到这个情况,现在在luadec工程里跟,后也是出现"bad code in precompiled chunk",也不知道怎么办了,lua也是通过hook导出的,但是没法反编译出来
2024-9-5 15:21
0
游客
登录 | 注册 方可回帖
返回
//