【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )

文章目录

一、dlclose 函数简介

二、关闭注入的 libbridge.so 动态库

三、恢复寄存器

四、脱离远程调试附着





一、dlclose 函数简介


dlclose 函数的作用是 卸载一个 指定句柄 的动态库 ;



包含头文件 :


#include<dlfcn.h>


函数原型 :


int dlclose (void *handle);



参数说明 : void *handle : dlopen 函数返回的句柄 ;



int 返回值 : 返回 0 说明成功 , 其它失败 ;






二、关闭注入的 libbridge.so 动态库


参考 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 ) 博客 , 调用 dlclose 函数 ;


首先 , 获取 目标进程 linker 中的 dlclose 函数地址 ;

然后 , 远程调用 目标进程 linker 中的 dlclose 函数 ;





三、恢复寄存器


调用 ptrace_setregs 方法 , 直接设置远程进程的寄存器值 ;


/* restore 恢复寄存器  */
    ptrace_setregs(target_pid, &original_regs);





四、脱离远程调试附着


注入工具最后一步操作是 脱离远程调试附着 , 之后就可以使用 调试工具 与 远程进程的 libnative.so 进行通信 ;


/* 脱离远程调试附着 */
    ptrace_detach(target_pid);



上一篇:区块链技术开发之以太坊开发入门教程——一个去中心化DApp应用投票系统。


下一篇:secrets of the javascript Ninja( with(){} 的用法)(javascript忍者的秘密)