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

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

文章目录

一、SO 进程注入环境及 root 权限获取

二、进程注入时序分析





一、SO 进程注入环境及 root 权限获取


SO 注入的前提必须有 root 权限 , 有了 root 权限后 , 才能调用 ptrace 相关函数 ;



SO 注入环境有两种情况 , Android 模拟器 或 真实手机 ;


这里特别推荐使用 雷电模拟器 进行逆向操作 , 在真机上会出现各种问题 ;



使用 Android 模拟器 , 如 雷电模拟器 , 使用 ld 工具查看日志 , 查看日志命令为 :


ld.exe logcat


上述命令需要进入雷电模拟器安装目录执行 , ld.exe 在雷电模拟器安装目录的根目录中 ;


image.png


如果使用 Android 真机 , 则直接使用 adb logcat 命令查看日志即可 ;






二、进程注入时序分析


调试程序 调试 目标进程 ;


在有 root 权限的前提下 , 调试程序 首先 调用 ptrace 函数 attach 目标进程 , ptrace 函数调用必须有 root 权限 , 否则会崩溃 ;


调试程序 读取 目标进程 寄存器信息 , 将寄存器值保存下来 ;


远程调用 , 加载 libbridge.so , 在 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 博客中 , 编译过该动态库 , 调试目标进程时 , 需要将该动态库注入 目标进程 ;


然后调用 libbridge.so 动态库中的 load 方法加载真正的工作 so 动态库 libnative.so ;


调用 libnative.so 的 invoke 方法 , 将返回值返回给 libbridge.so , 然后通过 libbridge.so 返回给 调试程序 ;


libbridge.so 的作用仅用于 调试程序 和 目标进程 之间的通信 ;


调试完毕后 , 远程调用卸载 libbridge.so ;


最后恢复 目标进程 执行 ;

image.png




远程调用流程 :


计算函数地址 : 通过计算 , 获取远程调用函数的内存地址 ;

设置 EIP 寄存器 : 将 EIP 寄存器指向远程调用函数 ;

申请栈内存地址 : 使用 mmap 申请内存 , 并将远程调用函数参数设置到该内存中 ;

设置 ESP 栈内存地址 : 将 ESP 寄存器指向申请的内存中 ;

收回控制权 : 执行完毕后 , 返回到 0 地址 , 令目标进程崩溃 , 调试进程收回控制权 ;


参考之前涉及到 SO 注入的流程 :


【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 )

【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

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


目录
相关文章
|
3月前
|
存储 Android开发
如何查看Flutter应用在Android设备上已被撤销的权限?
如何查看Flutter应用在Android设备上已被撤销的权限?
205 64
|
3月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
804 61
|
16天前
|
Android开发
安卓虚拟摄像头替换摄像头, 微信虚拟相机替换拍照,安卓免root虚拟摄像头
虚拟摄像头系统包含多个组件:主摄像头类、预览面板、驱动接口、DirectShow实现和管理类
|
10天前
|
Android开发 数据安全/隐私保护
手机微信虚拟视频聊天,安卓免root虚拟摄像头,免root虚拟hook相机
以上代码实现了一个完整的免root虚拟摄像头方案,通过Hook系统摄像头服务和微信视频通话接口
|
10天前
|
编解码 Java Android开发
安卓虚拟摄像头免root版,虚拟摄像头替换真实摄像头,jar代码开源分享
通过动态替换摄像头输入流的方式实现虚拟摄像头功能,代码经过简化展示核心逻辑。实际开发中还需要考虑视频编解码优化
|
16天前
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
2天前
|
网络协议 Android开发 数据安全/隐私保护
三色过人脸虚拟摄像头,安卓免root虚拟摄像头, 安卓虚拟摄像头过人脸
这个实现包含三个主要部分:虚拟摄像头核心服务、安卓环境配置脚本和客户端测试程序
|
26天前
|
安全 Shell 测试技术
安卓硬改一键新机,一键新机改串软件,免ROOT网卡串号Imei/sn码
本内容提供移动安全研究相关资料与方法,包括通过Android Studio官方工具和模拟器进行设备测试、ADB调试命令学习
|
3月前
|
存储 Android开发 数据安全/隐私保护
如何在Android设备上撤销Flutter应用程序的所有权限?
如何在Android设备上撤销Flutter应用程序的所有权限?
198 64
|
1月前
|
编解码 自然语言处理 Java
安卓改机工具免root,一键过设备检测,串号SN码【jar即可实现】
本项目通过Hook系统API实现设备信息的拦截与修改,主要功能包括动态更改IMEI/SN等设备标识。核心技术基于Xposed框架(免Root可用VirtualXposed)

相关实验场景

更多