动态库是 注入工具 使用 ptrace 函数强行向远程进程 注入的 动态库 , 这种方法侵入性极大 , 会破坏远程进程的运行环境 , 因此该动态库越简洁越好 ;
注入动态库 就执行一个操作 , 就是加载...包含真正的逆向业务逻辑的 libnattive.so 动态库 , 然后启动该动态库即可 , 执行完毕后 , 马上在远程进程中销毁注入的 libbridge.so 动态库 ;
一、加载 libnattive.so...动态库
----
通过 注入工具 , 将 libbridge.so 注入到远程进程 后 , 远程进程中 , 会 为 libbridge.so 动态库分配一块内存 , 并将其运行起来 ;
libbridge.so...动态库的主要操作是 加载 libnattive.so 动态库 , 并执行该动态库的 invoke 方法 ;
libbridge.so 动态库对应的 bridge.c 源码如下 :
#include <...----
在 libnattive.so 动态库中 , 不能长时间维持 , 因为 注入工具 还要 获取到远程进程的控制权 , 退出 ptrace 函数调试状态 , detach 解除注入工具对远程进行的附着操作