VirtualApp修改手游
VirtualApp相信大家都不陌生,在手游上被用来做外挂,做mod也是非常常见的了,VirtualApp原本的功能就是免安装对应用进行动态加载,而我们需要用到的其实只是VirtualApp的部分,因为VirtualApp已经商业化,开源部分已不再更新,但是有更优秀的(当前开源的双开引擎Blackbox支持到Android 12.0)。当前我用的还是VirtualApp开源版本所以兼容性存在问题。
下载VirtualApp
git clone https://github.com/asLody/VirtualApp.git
下载好后我们还得对源码进行修改才能达到注入so的效果
将so注入进游戏进程
在VirtualApp的MyComponentDelegate类下面 有一个beforeApplicationCreate方法
@Override
public void beforeApplicationCreate(Application application) {
System.load(HostApplication.getApplicationInfo().nativeLibraryDir+"/libinject.so");
}
这里的HostApplication是VirutalApp自身的application,也可以通过context来获取路径
这样之后我们就可以将so注入进游戏内了
修改手游
我们将so注入进游戏进程后,我们的so文件就可以对通进程下运行的so进行操作了
通过获取模块地址来对so函数进行Hook操作(通过proc/self/maps获取)代码就不放了
毕竟大家了解一下都会写,VirtualApp对beforeApplicationCreate这个方法传入了进程名和包名
可以通过包名和进程名来判断是否注入
学习VirtualApp
VirtualApp源码下载(去年开源的商业版本,忘记是哪个公司了)
VirtualApp(很早就泄露的商业版本代码是上面的旧版)
如果想兼容到12就用下面的对着上面抄就可以,每次Android版本更新VirutalApp是围绕着四大组件对着Android源码更新
致谢VirtualApp开源