【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 #


目录
相关文章
|
消息中间件 存储 网络协议
从零开始掌握进程间通信:管道、信号、消息队列、共享内存大揭秘
本文详细介绍了进程间通信(IPC)的六种主要方式:管道、信号、消息队列、共享内存、信号量和套接字。每种方式都有其特点和适用场景,如管道适用于父子进程间的通信,消息队列能传递结构化数据,共享内存提供高速数据交换,信号量用于同步控制,套接字支持跨网络通信。通过对比和分析,帮助读者理解并选择合适的IPC机制,以提高系统性能和可靠性。
1984 14
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
970 20
|
消息中间件 存储 缓存
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。
|
运维 监控 Ubuntu
【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出
通过设置内存守护进程,可以有效监控和管理系统内存使用情况,防止内存溢出带来的系统崩溃和服务中断。本文介绍了如何在Ubuntu中编写和配置内存守护脚本,并将其设置为systemd服务。通过这种方式,可以在内存使用超过设定阈值时自动采取措施,确保系统稳定运行。
595 4
|
C语言 开发者 内存技术
探索操作系统核心:从进程管理到内存分配
本文将深入探讨操作系统的两大核心功能——进程管理和内存分配。通过直观的代码示例,我们将了解如何在操作系统中实现这些基本功能,以及它们如何影响系统性能和稳定性。文章旨在为读者提供一个清晰的操作系统内部工作机制视角,同时强调理解和掌握这些概念对于任何软件开发人员的重要性。
|
Linux 调度 C语言
深入理解操作系统:从进程管理到内存优化
本文旨在为读者提供一次深入浅出的操作系统之旅,从进程管理的基本概念出发,逐步探索到内存管理的高级技巧。我们将通过实际代码示例,揭示操作系统如何高效地调度和优化资源,确保系统稳定运行。无论你是初学者还是有一定基础的开发者,这篇文章都将为你打开一扇了解操作系统深层工作原理的大门。
210 4
|
算法 调度 开发者
深入理解操作系统:从进程管理到内存分配
本文旨在为读者提供一个深入浅出的操作系统知识之旅,从进程管理的基础概念出发,探索内存分配的策略与技巧。我们将通过实际代码示例,揭示操作系统背后的逻辑与奥秘,帮助读者构建起对操作系统工作原理的直观理解。文章不仅涵盖理论知识,还提供实践操作的指导,使读者能够将抽象的概念转化为具体的技能。无论你是初学者还是有一定基础的开发者,都能在这篇文章中找到有价值的信息和启发。
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
1232 5

热门文章

最新文章