【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
文章目录
一、使用 IDA 分析要修改的内存特征
在前的博客 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 ) 中 , 已经分析过该动态库 ;
修改的动态库的位置是 如下 , 将 0x354A8 地址处的 0x59 字节数据 修改为 0x58 ;
在程序运行时 , 会将上述动态库加载到内存中 , 0x354A8 是在静态文件中 该字节的地址 , 如果加载到内存中 , 该字节的地址就需要进行查找 ;
上图中 , 0x59 之后的 9 个字节为 59 28 B3 07 00 06 02 7B 41 08
, 可以在进程内存中搜索上述 10 个字节 , 然后将第一个字节修改成 59 即可 ;
这 10 个字节为 :
0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08
二、根据内存特征搜索修改点
这里需要使用到 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 博客中 , 编译的 Android 平台的 cmd 可执行程序 ;
先将编译好的 cmd 可执行程序传输到 Android 模拟器的 /data/system/debug/cmd
路径中 ;
Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>adb push cmd /data/system/debug/cmd
cmd: 1 file pushed, 0 skipped. 13.4 MB/s (444196 bytes in 0.032s)
Y:\002_WorkSpace\001_AS\magic3.1.3\Debug\x86>
在 Android 模拟器中为其赋予 777 权限 , 主要是可执行权限 ;
=root@aosp:/data/system/debug # chmod 777 cmd
root@aosp:/data/system/debug # ls -l
-rwxrwxrwx root root 444196 2021-10-31 18:37 cmd
-rwxrwxrwx root root 5476 2021-10-31 18:37 libbridge.so
-rwxrwxrwx root root 9684 2021-10-31 18:37 tool
root@aosp:/data/system/debug #
执行
./cmd 2328 searchcode 0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08 10
命令 , 查询 2328 进程中 , 0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08
10 个字节的内存特征 , 主要是查询首字节 0x59 在该进程内存中的地址 ;
三、修改进程内存
查询到要修改的字节在内存中的地址为 0x96A2C355 , 修改该地址的数据 ;
执行
./cmd 2328 modify 96A2C355 0x58 0x28 0xB3 0x07 4
命令 , 修改 0x96A2C355 处的进程内存值 , 将从上述地址开始的 4 字节数据修改为 0x58 0x28 0xB3 0x07
数据 ;
相关文章
- android scaleanimation动画,【Android动画九章】-RotateAnimation(旋转动画)和ScaleAnimation(尺寸动画)…[通俗易懂]
- Android如何通过Gradle发布java依赖库(jar)到 jitpack 公共仓库(—)
- strictmode android,Android 应用性能优化-StrictMode(严格模式)
- 关于Android导航页开发的体会
- android deeplink流程,Android Deeplink探究[通俗易懂]
- android sdk manager安装,Android SDK Manager安装过程
- [图文教程] 手把手教你安装Android SDK
- 【Android布局】在程序中设置android gravity 和 android layout Gravity属性
- android telephony 原理解析与开发指南_Android逆向pdf
- android 搜索自动匹配关键字并且标红
- 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )
- 【Flutter】Flutter 全面屏适配 ( 需要适配的情况 | Android 设置最大宽高比 | 使用 SafeArea 进行全面屏适配 | 使用 MediaQuery 进行全面屏适配 )
- 【错误记录】Android Studio 编译报错 ( Could not find com.android.tools.build:gradle:4.2.1. )
- 【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
- 经典随机Crash之二:Android消息机制
- Android工具类DES加密时代的终结者——AES加密算法详解手机开发
- [android] 加载大图片到内存详解手机开发
- Android系统基于Linux内核,实现移动设备突破极限。(android linux内核)
- 浅析Android模拟键盘鼠标事件
- Android学习笔记之SharedPreference
- Android应用内调用第三方应用的方法
- 使用SignalR推送服务在Android的实现SignalA