git clone https://github.com/asLody/VirtualApp.git
下载好后我们还得对源码进行修改才能达到注入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(很早就泄露的商业版本代码是上面的旧版)
如果想兼容到12就用下面的对着上面抄就可以,每次Android版本更新VirutalApp是围绕着四大组件对着Android源码更新
致谢VirtualApp开源