【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )
文章目录
- 一、编译注入工具
- 二、编译结果文件说明
- 三、注入过程说明
一、编译注入工具
在 Visual Studio 2019 中打开了一个 " 生成文件项目 " , 该项目就是注入项目 ; 参考 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 博客 ;
编译该项目 ,
生成结果如下 :
已启动生成…
1>------ 已启动生成: 项目: magic, 配置: Debug Win32 ------
1>[x86] Compile : bridge <= bridge.c
1>[x86] SharedLibrary : libbridge.so
1>[x86] Install : libbridge.so => ../Debug/x86/libbridge.so
1>[x86] Compile++ : cmd <= command.cpp
1>[x86] Compile++ : cmd <= json_reader.cpp
1>[x86] Compile++ : cmd <= json_value.cpp
1>[x86] Compile++ : cmd <= json_writer.cpp
1>[x86] Executable : cmd
1>[x86] Install : cmd => ../Debug/x86/cmd
1>[x86] Compile : tool <= main.c
1>[x86] Executable : tool
1>[x86] Install : tool => ../Debug/x86/tool
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
二、编译结果文件说明
编译完成后的编译结果有
- tool 可执行文件
- cmd 可执行文件
- libbridge.so 动态库
上述文件都是在 PC 电脑上的 x86 架构的 Android 模拟器上运行的相关文件 , 具体就是 雷电模拟器 3.75 版本 ;
使用上述工具调试 Android 进程参考如下博客 :
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
三、注入过程说明
将所有文件拷贝到 Android 模拟器的 /data/system/debug/
目录下 , 然后赋予 777 权限 ;
执行
tool 2222
命令 , 即可 attach 调试 进程号 PID 为 2222 的 进程 ;
根据 PID , 一定能在 /proc/2222/mmaps 文件中找到该进程 每个 so 动态库的运行地址 , 尤其是 libc.so 动态库的地址 ;
先远程注入 libbridge.so 动态库 , 然后远程调用 libbridge.so 中的 load 函数 , 将真正的 libnative.so 加载到目标进程中 ;
使用修改寄存器的方法 强行加载 libbridge.so 动态库 , 会影响目标进程的布局 , 因此这个动态库越小越好 , 并且 使用完毕后 , 马上关闭该动态库 , libbridge.so 动态库只起一个敲门的作用 , libnative.so 加载完成后 , 直接将 libbridge.so 动态库干掉 , 过河拆桥 ;
上述操作同时 , 恢复 寄存器 和 栈内存 的值 ;
【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )相关推荐
- 【Android 逆向】代码调试器开发 ( 等待进程状态改变 | detach 脱离进程调试 PTRACE_DETACH | 调试中继续运行程序 PTRACE_CONT )
文章目录 一.等待进程状态改变 二.detach 脱离进程调试 PTRACE_DETACH 三.调试中继续运行程序 PTRACE_CONT 一.等待进程状态改变 上一篇博客 [Android 逆向]代 ...
- 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
文章目录 一.Android 进程注入工具开发系列博客 二.Android 进程注入工具 源码下载编译 三.逆向环境搭建 四.使用注入工具进行逆向操作 1.获取远程进程号 2.注入工具准备 3.注入动 ...
- 【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )
文章目录 一.Android 平台代码调试器代码 二.Android.mk 构建脚本内容 三.Application.mk 构建脚本内容 四.正式编译 五.博客资源 一.Android 平台代码调试器 ...
- 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )
文章目录 一.代码调试器功能简介 二.Attach 进程 一.代码调试器功能简介 代码调试器功能 : 设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程 ...
- android 测试工具,Android开源项目第四篇:开发及测试工具篇
本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...
- 【Android 逆向】使用 Python 编写 APK 批处理分析工具
文章目录 一.涉及到的工具和脚本 二.使用 Python 编写 APK重打包工具 三.博客源码 一.涉及到的工具和脚本 apktool.jar : 反编译 APK 文件使用到的工具 ; 参考 [And ...
- 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( DEX 文件准备 | 拷贝资源目录下的文件到内置存储区 | 配置清单文件 | 启动 DEX 文件中的组件 | 执行结果 )
文章目录 一.DEX 字节码文件准备 二.拷贝 Assets 目录下的 classes2.dex 字节码文件到内置存储区 三.在 AndroidManifest.xml 清单文件中配置组件 四.启动 ...
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 向进程内存写出数据 )
文章目录 一.向进程内存写出数据 二.写出流程 三.完整代码 一.向进程内存写出数据 向内存写出数据 : 每次最多能写出 4 字节 ; ptrace(PTRACE_POKETEXT, m_nPid, ...
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )
文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...
- 5、frida进阶-Android逆向之旅---Hook神器家族的Frida工具使用详解
本文转载自:https://www.cnblogs.com/qwangxiao/p/9255328.html 一.前言 在逆向过程中有一个Hook神器是必不可少的工具,之前已经介绍了Xposed和Su ...
最新文章
- Geth 控制台使用及 Web3.js 使用实战
- object-c全局变量
- C/C++ 框架,类库,资源集合
- spring 之 property-placeholder 分析
- redis linux服务,linux服务之redis
- TensorFlow2.0 —— 模型保存与加载
- html 修改按回退键的url,location.hash保存页面状态的技巧
- matlab 聚类 源程序,聚类——KFCM的matlab程序
- 痛苦如此持久,像蜗牛充满耐心地移动;快乐如此短暂,像兔子的尾巴掠过秋天的草原...
- shell 练习题02 一个文件里将内容三行显示为一行
- poj 1459-Power Network解题报告
- git 安装及常用命令
- Android5开机自动执行sh,自动脚本执行器
- RS485接口的EMC设计方案
- 全拼到缩写月份单词python_月份的英文缩写及全名
- GBase 8s 编写使用UDR(C/Java) 转发liaosnet
- 针对s3c2440芯片制作交叉编译工具链
- 辽宁大连IPv6高校
- 关于Virtual的英语含义
- 第五章:用Python分析商品退单数据并找出异常商品