SO 注入的前提必须有 root 权限 , 有了 root 权限后 , 才能调用 ptrace 相关函数 ;
文章目录一、远程调用总结二、远程调用注意事项一、远程调用总结----在之前的博客【Android 逆向】Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序运行 | EIP 寄存器的存档与恢复 )【...
代码段中 , 一般都有 dlopen 函数 , 该函数属于 system/lib/linker 模块 , 这是一个 so 库 ;
内存是一个线性结构 , 将动态库加载到内存中后 , 每个动态库文件都是一块连续的内存空间 , 因此可以通过内存地址精准的调用到指定的函数 , 这是远程调用的基础 ;...
进程注入本质 是 监控 或 分析 目标进程 ( 被调试进程 ) 的运行状态 , 运行状态包括 :
在前的博客 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 ) 中 , 已经分析过该动态库 ;...
文章目录一、读寄存器二、写寄存器一、读寄存器----调用ptrace(PTRACE_GETREGS, m_nPid, NULL, regs)读取进程运行时的寄存器 ;读取寄存器时 , 进程必须处于 WUNTRACED 状态 , 否则就会出错 ;参数一设置为 PTRACE_GET...
向进程内存写出数据时 , 每次最多只能写出 4 字节数据 , 先根据读取的大小 , 计算出读取次数 ,
传入的第一个参数可以是 PTRACE_PEEKTEXT / PTRACE_PEEKDATA / PTRACE_PEEKUSER , 这三个参数效果相同 ;
上一篇博客 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 ) 中 , 介绍了 attach 被调试进程 ;...