IDA调试修改内存数据
往期推荐
IDA调试界面介绍及快捷键
IDA调试环境搭建
IDA静态分析
IDA工具介绍
一:修改寄存器的值
以下图所示的BLX R3这个函数为例,执行完毕后,他的返回值在右面的R0寄存器,对它进行修改。
1.将鼠标移到R0寄存器,右键,选择“Modify value”选项,可以修改为任意值,如下图所示。
2.除了选择“Modify value”选项外,还可以选择“Zero value”选项,直接置零,如下图所示。
二:篡改内存数据
在函数头打断点,点击F9,程序成功在函数头断下,紧接着F8往下走,当走到“ADD R2, PC, R2”这条指令时,该指令使用的是相对寻址方式,PC寄存器的值加上R2寄存器的值得到的是一个地址,该地址存放的是一个字符串,即Activity,如下图所示。
1.点开十六进制窗口,同步R2寄存器,如下图所示。
2.同步后的值,如下图所示。
3.直接F2进行修改,如下图所示。
4.“31”代表的是“1”,如下图所示。
5.完成上述流程,提交后的效果,如下图所示。
三: NOP函数或代码
以BL zhengchu函数为例。
当程序执行到这里,如果继续往下单步,会执行下面这个函数,如下图所示。
若不想执行此函数,则进行下面的操作流程:
1.进入十六进制窗口,点击鼠标右键,选择Synchronize with再选择IDA View PC同步PC寄存器,如下图所示。
2.同步后的效果如下图所示。
3.PC寄存器的值永远指向当前指令,所以此刻同步当前PC寄存器的值就是即将要执行的函数BL的值。直接右键选择edit或者直接快捷键F2,如下图所示。
4.将其全部修改为零,如下图所示。
5.修改后,继续右键,F2提交,如下图所示。
6.完成上述流程,查看原函数,已变成一条无效的指令,如下图所示。
7.直接单步往下走,不会再进入该函数,而是执行下一条指令,如下图所示。
执行到这里,已将函数成功NOP掉,变为一条无效的空指令。
小结
通过今天的分享,我们知道如何修改对应寄存器的值:鼠标右键,选择“Modify value”选项,可以改为任意值,或者选择“Zero value”选项,直接置零,同时修改寄存器的值可以实现篡改内存数据,这里需要注意的是NOP函数或代码实现不跳转或者不执行。
如果你也对安卓逆向感兴趣。可以加入下方的群,大家一起讨论问题,或者扫描下方二维码关注公众号,关注回复 “安卓逆向” 获取免费教程
安卓逆向交流学习:1139349849
vx:Yjxiaox
IDA调试修改内存数据相关推荐
- [cocos2dx]防止八门神器修改内存数据
网上的cocos2d-x教程多为知识点的讲解,但我们学习cocos2d-x的目的是为了什么?为了做出游戏来!这篇文章的前提是单机游戏,网络游戏有自己的加密方法,与单机游戏不尽相同! 游戏辛辛苦苦的做完 ...
- gdb调试查看内存数据
gdb查看内存数据 格式 x /nfu f 显示方式 x 按十六进制格式显示变量. d 按十进制格式显示变量. u 按十进制格式显示无符号整型. o 按八进制格式显示变量. t 按二进制格式显示变量. ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
文章目录 一.使用 IDA 分析要修改的内存特征 二.根据内存特征搜索修改点 三.修改进程内存 一.使用 IDA 分析要修改的内存特征 在前的博客 [Android 逆向]逆向修改游戏应用 ( 分析应 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- Android逆向之旅---应用的反调试方案解析(附加修改IDA调试端口和修改内核信息)
一.前言 在前一篇文章中详细介绍了 Android现阶段可以采用的几种反调试方案策略,我们在破解逆向应用的时候,一般现在第一步都回去解决反调试,不然后续步骤无法进行,当然如果你是静态分析的话获取就没必 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )
文章目录 一.运行环境搭建 Android 模拟器安装 二.拷贝 Android 平台可执行文件和动态库到 /data/system 目录下 一.运行环境搭建 Android 模拟器安装 使用低版本的 ...
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )
文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...
- ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...
在 Web 编程中,经常需要处理用户请求数据,而用户请求数据的处理往往又涉及到数据存储与获取,支持存储数据的媒介很多,包括内存.文件系统.数据库等,接下来,学院君将花几个篇幅的教程来系统介绍 Go W ...
最新文章
- 站在你身边的每个人都有可能改变世界,阿里云异构计算加速人工智能
- android128 zhihuibeijing 科大讯飞 语音识别
- 让你的spring-boot应用日志随心所欲--spring boot日志深入分析
- java代码没错却运行不了_Java代码没错误,tomcat能正常运行,但是我的项目主页却一直显示不了,显示404错误...
- 全球及中国消费电子环境光传感器 (ALS)行业运行现状与十四五应用建设报告2022版
- 超级简单:在你的ASP.NET页面自定义列表和分页
- 获取手机信息(UIDevice、NSBundle、NSLocale)
- 评测征集 | 2021全国知识图谱与语义计算大会
- Ubuntu 20.04部署minikube配置不上阿里云的minikube镜像
- NSObject的hash方法
- python开发酷q插件gui_酷Q的SDK模块机器人个人开发插件
- 关于STM32的编码器计数及溢出处理调试总结
- 微服务架构师的道、法、术
- keil5怎么添加stc芯片库
- 计算机专业人士研究生论文,计算机专业研究生论文致谢
- Android JTT808协议通讯
- python文件查重_使用Python查找目录中的重复文件
- Linux 下固态硬盘恢复误删除文件
- 植物大战僵尸java版视频_Java小项目之:植物大战僵尸,这个僵尸不太冷!
- unity 编辑器窗口 批量修改文件名字