【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
文章目录
- 一、使用 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 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )相关推荐
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )
文章目录 一.运行环境搭建 Android 模拟器安装 二.拷贝 Android 平台可执行文件和动态库到 /data/system 目录下 一.运行环境搭建 Android 模拟器安装 使用低版本的 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android
背景 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android 应用程序? 运行调式一个Android项目,写下必要的代码后,接下来的任务是在模拟器或手机上运 ...
- Android那些事儿 成长中的Android(1)
Android 是近年来在移动设备行业相当火热的词汇,在此我从交互设计的角度整理了此文章,文章分为三个部分,跟大家讨论Android的那些事儿. 第一部分:成长中的Android; ◆什么是Andro ...
- 《教我兄弟学Android逆向01 编写第一个Android程序》
前言 之所以准备写这一系列逆向的教程是因为有一些同学私信我说自己想学习Android逆向但是不知道怎么去学习 包括自己身边的一些计算机专业的同学 在大学里面老师讲的那些东西要么是自己不感兴趣 要么是自 ...
- 《教我兄弟学Android逆向03 破解第一个Android游戏 》
上一篇 <教我兄弟学Android逆向02 破解第一个Android程序 >我带着你破解了我们自己编的一个小程序 里面我分析并讲解的一些smali语法你都记住了 给你布置的课后作业你发 ...
- Android逆向文档阅读笔记-Android Application Fundamentals
Fundamentals Review Android应用程序是在APK格式的文件中的,APK是基于ZIP文件的(可以将APK后缀改成ZIP后缀,然后可以使用unzip去解压). APK文件内容: A ...
- LeadTools Android 入门教学——运行第一个Android Demo
LeadTools 有很多Windows平台下的Demo,非常全面,但是目前开发手机应用的趋势也越来越明显,LeadTools也给大家提供了10个Android的Demo,这篇文章将会教你如何运行第一 ...
最新文章
- Vue 踩坑之旅(1)
- 开放平台_OAuth2.0
- JavaScript 温故知新 00
- 特征工程(part2)--数值型数据
- python12个基本语法_12-25python基本语法
- linux无法设置变量,linux – crontab在作业之前无法设置变量
- ajax原生为什么else会执行2次,关于Ajax,明明传过去的值是1,可不知道为什么就是else起作用?...
- createsolidcaret 后 很快就不闪烁了_【文献推送】Adv. Mater. | 单分散硅基闪烁体实现X射线介导的深层肿瘤光动力治疗...
- 华为中级编程题目python_华为研发工程师编程题2019(python3)
- 【人话版】WEB3黑暗森林中的隐私博弈
- 软件工程(敏捷过程和极限编程)
- ROS二维码识别以及OKR使用
- OSX: Mac不睡眠的排查
- 程序员年纪大了干什么
- 年终奖没领到惨遭开除,Fabio机器人的苦逼之旅
- CDay09 联合和枚举
- 直播平台接入美颜SDK已成刚需,它将带来哪些影响?
- Springboot2.x使用feign自定义Decoder,Advice
- 央行:加强金融业网络安全和信息化统筹指导,筑牢金融网络安全屏障
- 把自己的控制台变得干干净净!
热门文章
- ***S 2012 交互式报表 -- 钻取式报表
- 基于高德地图Windows Phone API 快速开发地图相关APP(二)
- SVN 文件的解锁方法
- 侠客X开发工作已经持续了2个月左右了。
- [Linux]lnmp一键安装包,访问yii/tp5/laravel的时候,报错500或者空白页面
- 如何正确选择开源数据库?你需要这的5个技巧
- mysql 表查询注意
- POJ 3660 Cow Contest [Floyd]
- 【BZOJ2625】[Neerc2009]Inspection 最小流
- 移动网站用backbone还是angular?