0x001 什么是so注入

so是linux上的动态链接库文件,作用是在程序运行的时候提供给他必须的外部引用的部分,类似于windows上的dll文件,那么so注入就是通过给目标程序插入特定的so文件以达到修改/保护/劫持/篡改目标程序内部数据的目的。

0x002 so注入原理

linux上给提供了一个很好的so注入方式—“ptrace”, ptrace的目的是提供给父进程监测目标进程的子进程状态的一个方式,那么我们如果拿到一个所有进程的父进程,就可以达到注入所有正在运行进程内部的目的。这里我们使用root用户运行,这样其所有运行的进程都可以被ptrace注入。我们通过nmap首先在对应进程空间放置我们的注入so文件,然后使用ptrace终端目标教程并获取对应寄存器,保存状态后依次使用dlsym,dlopen来获取我们的函数所在的地址,然后调用之达到进程注入。如果我们使用对应进程的JniEnv对象,就可以获取到

0x003 对应资料
注入java
 

分类: java/android

发表评论

电子邮件地址不会被公开。