您当前的位置: 首页 >  android

韩曙亮

暂无认证

  • 1浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

韩曙亮 发布时间:2021-11-04 11:23:38 ,浏览量:1

文章目录
  • 一、调试进程 ATTACH 附着目标进程
  • 二、读取目标函数寄存器值并存档
    • 1、主要操作流程
    • 2、ptrace 函数 PTRACE_GETREGS 读取寄存器值

一、调试进程 ATTACH 附着目标进程

在 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具的 main 函数分析 ) 博客中 , 在 main 函数中获取了 进程号 PID , 下面开始将 SO 动态库注入该 PID 进程号对应的目标进程 ;

ptrace 函数调用的前提是 , 当前应用必须有 root 权限 , 否则调用会失败 ;

首先 , 调用

ptrace(PTRACE_ATTACH, pid, NULL, 0)

函数附着目标进程 , 获取目标进程的控制权 , 传入 PTRACE_ATTACH 参数 ;

具体的 ptrace 函数族的参数 , 参考 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换 ) 博客 ;

之后 , 需要 阻塞等待 被调试 的 目标进程返回 , 如果目标进程状态变为 WUNTRACED 被调试状态 , 就可以执行下一步的操作 ;

	int status = 0;
	/* 等待关联进程结果返回 , 目标进程状态变为 WUNTRACED */
	waitpid(pid, &status, WUNTRACED);

附着目标进程完整代码 :

/* 附着目标进程 */
int ptrace_attach(pid_t pid)
{
	/* attach 关联 要调试的 目标进程 */
	if (ptrace(PTRACE_ATTACH, pid, NULL, 0)             
关注
打赏
1663594092
查看更多评论
0.1948s