首页
社区
课程
招聘
[求助]如何导出 luajit lua_load 时,@开头的文件
发表于: 2024-6-24 22:53 2726

[求助]如何导出 luajit lua_load 时,@开头的文件

2024-6-24 22:53
2726

新人,刚入门。

通过 hook lua_load 发现 load 了上千个 @ 开头的 lua 脚本,理论上在 lua_load 之前,应该使用 luaL_loadbuffer 导入这些脚本了。

但是截图里的几个 load 都 hook 了,都只能导出十几个 lua 文件,没办法找到全部文件。
图片描述

hook 的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Java.perform(function () {
    var addr = null;
    while (true) {
        addr = Module.findBaseAddress('libtolua.so');
        if (addr) {
            break;
        }
    }
 
    console.log("found", addr)
    # 这个地址是 lua_load
    var func_addr = addr.add(0x190C7C);
    Interceptor.attach(ptr(func_addr), {
        onEnter: function (args) {
            var data = args[3].readCString();
            console.log(Process.getCurrentDir(), data);
            // WriteFile(GenerateFileName(data), data);
        },
    });
});

看得到输出导入了其他文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ @script/ui/generate/bathroom_rubdown_Generate.lua
/ @script/ui/ship_detail.lua
/ @script/ui/generate/ship_detail_Generate.lua
/ @script/ui/show_room.lua
/ @script/ui/generate/show_room_Generate.lua
/ @script/ui/climb_tower.lua
/ @script/ui/generate/climb_tower_Generate.lua
/ @script/ui/captainroom_fleet.lua
/ @script/ui/generate/captainroom_fleet_Generate.lua
/ @script/ui/dormitory.lua
/ @script/ui/generate/dormitory_Generate.lua
/ @script/ui/dormitory_design_detail.lua
/ @script/ui/generate/dormitory_design_detail_Generate.lua
/ @script/ui/six_year_main_interface.lua

想问问这些文件可能在哪一个阶段导入了?可能通过 hook 哪个方法获取?


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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 105
活跃值: (4593)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
阅读源码 找寻真理
2024-6-25 09:55
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
这个应该是没办法做到的,因为lua_load只是加载运行时所需要用到的脚本,不需要的并不会主动加载,你可以自己注入脚本手动进行加载试试
2024-6-25 10:12
0
雪    币: 224
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
龙乎 这个应该是没办法做到的,因为lua_load只是加载运行时所需要用到的脚本,不需要的并不会主动加载,你可以自己注入脚本手动进行加载试试
可能我表述不是很准确,我的意思是:lua_load 显示加载脚本了,但是 hook loadbuffer 并没有加载过相关的脚本,所以郁闷他是在哪里提前加载的脚本
2024-6-25 22:47
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
Gratuity2315 可能我表述不是很准确,我的意思是:lua_load 显示加载脚本了,但是 hook loadbuffer 并没有加载过相关的脚本,所以郁闷他是在哪里提前加载的脚本
这个你打个断点看下堆栈不就知道了吗,不一定是loadbuffer的啊,loadfile也会最终调用到lua_load,建议你看下对应版本的lua源码吧
2024-6-26 18:47
0
雪    币: 224
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
龙乎 这个你打个断点看下堆栈不就知道了吗,不一定是loadbuffer的啊,loadfile也会最终调用到lua_load,建议你看下对应版本的lua源码吧

感谢,找到其他方法了

最后于 2024-6-29 22:35 被Gratuity2315编辑 ,原因:
2024-6-29 17:49
0
雪    币: 175
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
大佬 我最近也在搞一个类似的,但是我导出经过py保存的时候会出问题,frida丢出来的是字符串类的数据,保存的时候不能以二进制数据保存,但是如果带编码就会有很多编码冗余,想请教一下怎么解决的
2024-6-30 22:45
0
游客
登录 | 注册 方可回帖
返回
//