【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )

简介: 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )

文章目录

一、运行环境搭建 Android 模拟器安装

二、拷贝 Android 平台可执行文件和动态库到 /data/system 目录下





一、运行环境搭建 Android 模拟器安装


使用低版本的雷电模拟器调试应用 , 下载地址 https://www.ldmnq.com/other/version-history-and-release-notes.html?log=3

image.png



下载能下载的最老的版本 , 这个版本是 5.0 的 Android 系统 ;


雷电模拟器 3.75 版本下载地址 : https://d6a051ab2d3dbdc5cb99b5b1cd147de7.dlied1.cdntips.net/dl.softmgr.qq.com/original/game/ldinst_3.75.exe


该模拟器进入后 , 直接有 root 权限 , 方便调试 ;


image.png






二、拷贝 Android 平台可执行文件和动态库到 /data/system 目录下


将上一篇博客 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 编译的进程调试相关工具 , 拷贝到 Android 模拟器中 ;



在 雷电模拟器 中 , 创建 /data/system/debug 目录 , 用于存放进程调试相关目录 ;


2|root@aosp:/data/system # mkdir debug
root@aosp:/data/system #
root@aosp:/data/system # cd debug/
root@aosp:/data/system/debug #
root@aosp:/data/system/debug # pwd
/data/system/debug
root@aosp:/data/system/debug #
root@aosp:/data/system/debug #


image.png

image.png



在命令行中 , 进入 Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86 目录 , 将该目录中的 tool 和 libbridge.so 文件传入到 雷电模拟器 的 /data/system/debug 目录中 ;


image.png



执行


adb push tool /data/system/debug/tool


命令 , 将电脑中的 Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86\tool 文件传输到 模拟器中的 /data/system/debug/tool 路径 ;



执行


adb push libbridge.so /data/system/debug/libbridge.so


命令 , 将电脑中的 Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86\libbridge.so 文件传输到 模拟器中的 /data/system/debug/libbridge.so 路径 ;



执行


adb push cmd /data/system/debug/cmd


命令 , 将电脑中的 Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86\cmd 文件传输到 模拟器中的 /data/system/debug/cmd 路径 ;



注意 , 拷贝完成后 , 在 Android 模拟器中 , 使用


chmod 777 /data/system/debug/cmd
chmod 777 /data/system/debug/tool
chmod 777 /data/system/debug/libbridge.so


为这些文件赋予权限 , 否则无法执行 ;



命令行输出 :


Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>
Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>adb push tool /data/system/debug/tool
tool: 1 file pushed, 0 skipped. 0.2 MB/s (9684 bytes in 0.046s)
Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>adb push libbridge.so /data/system/debug/libbridge.so
libbridge.so: 1 file pushed, 0 skipped. 0.2 MB/s (5476 bytes in 0.026s)
Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>
Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>

image.png



传输完毕后 , 查看 /data/system/debug 目录中的文件 :


root@aosp:/data/system/debug # ls -l
-rw-rw-rw- root     root         5476 2021-10-31 18:37 libbridge.so
-rw-rw-rw- root     root         9684 2021-10-31 18:37 tool
root@aosp:/data/system/debug #


目录
相关文章
|
20天前
|
存储 编译器 数据处理
C 语言结构体与位域:高效数据组织与内存优化
C语言中的结构体与位域是实现高效数据组织和内存优化的重要工具。结构体允许将不同类型的数据组合成一个整体,而位域则进一步允许对结构体成员的位进行精细控制,以节省内存空间。两者结合使用,可在嵌入式系统等资源受限环境中发挥巨大作用。
45 11
|
16天前
|
算法 调度 开发者
深入理解操作系统:从进程管理到内存分配
本文旨在为读者提供一个深入浅出的操作系统知识之旅,从进程管理的基础概念出发,探索内存分配的策略与技巧。我们将通过实际代码示例,揭示操作系统背后的逻辑与奥秘,帮助读者构建起对操作系统工作原理的直观理解。文章不仅涵盖理论知识,还提供实践操作的指导,使读者能够将抽象的概念转化为具体的技能。无论你是初学者还是有一定基础的开发者,都能在这篇文章中找到有价值的信息和启发。
|
2月前
|
监控 算法 应用服务中间件
“四两拨千斤” —— 1.2MB 数据如何吃掉 10GB 内存
一个特殊请求引发服务器内存用量暴涨进而导致进程 OOM 的惨案。
|
2月前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
81 1
|
2月前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
2月前
|
监控 Java easyexcel
面试官:POI大量数据读取内存溢出?如何解决?
【10月更文挑战第14天】 在处理大量数据时,使用Apache POI库读取Excel文件可能会导致内存溢出的问题。这是因为POI在读取Excel文件时,会将整个文档加载到内存中,如果文件过大,就会消耗大量内存。以下是一些解决这一问题的策略:
186 1
|
4月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
403 0
|
2月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
2月前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
42 4
|
2月前
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
58 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配