首页
社区
课程
招聘
[原创]利用Frida实现lua热重载
发表于: 2022-3-21 15:54 18478

[原创]利用Frida实现lua热重载

2022-3-21 15:54
18478

利用Frida实现lua热重载

对游戏进行修改时,尤其是代码逻辑在lua中,经常重启是一件很低效的事。所以考虑能不能有一款工具,不需要重启游戏就能让lua文件改动后立刻生效

非游戏开发,所以只有apk作为目标,无游戏工程代码。

主要分为两个模块:

LuaFileWatcher,检测lua文件发生变化,当发生变化时调用Hotfix.lua进行重载模块的操作。

Hotfix,重载lua模块

此处分享两种方法,一种使用Android的FileObserver(虽然本质上还是用的inotify),另一种直接使用 linux inotify。

关于该类的介绍,可以优先阅读:https://developer.android.com/reference/android/os/FileObserver

主要是通过frida js 实现 创建一个继承FileObserver的类,用于监控LUA_PATH下有哪些文件被打开了。

优点:简单

缺点:不稳定,很多机型会提示ClassNotFound。

需要先了解inotify是什么,有什么用,怎么使用:https://man7.org/linux/man-pages/man7/inotify.7.html

该功能主要是创建一个线程,不停的监控LUA_PATH下文件打开的情况。如果有文件被打开,则加载一段lua代码。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (1)
雪    币: 8466
活跃值: (5066)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2022-4-20 11:18
0
游客
登录 | 注册 方可回帖
返回
//