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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )相关的知识,希望对你有一定的参考价值。





一、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);

以上是关于Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )

Android 逆向Android 进程注入工具开发 ( 远程调用总结 | 远程调用注意事项 )

Android 逆向Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )

Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器值并存档 )

Android 逆向Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )

Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )(代