往期推荐

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调试修改内存数据相关推荐

  1. [cocos2dx]防止八门神器修改内存数据

    网上的cocos2d-x教程多为知识点的讲解,但我们学习cocos2d-x的目的是为了什么?为了做出游戏来!这篇文章的前提是单机游戏,网络游戏有自己的加密方法,与单机游戏不尽相同! 游戏辛辛苦苦的做完 ...

  2. gdb调试查看内存数据

    gdb查看内存数据 格式 x /nfu f 显示方式 x 按十六进制格式显示变量. d 按十进制格式显示变量. u 按十进制格式显示无符号整型. o 按八进制格式显示变量. t 按二进制格式显示变量. ...

  3. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )

    文章目录 一.使用 IDA 分析要修改的内存特征 二.根据内存特征搜索修改点 三.修改进程内存 一.使用 IDA 分析要修改的内存特征 在前的博客 [Android 逆向]逆向修改游戏应用 ( 分析应 ...

  4. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  5. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  6. Android逆向之旅---应用的反调试方案解析(附加修改IDA调试端口和修改内核信息)

    一.前言 在前一篇文章中详细介绍了 Android现阶段可以采用的几种反调试方案策略,我们在破解逆向应用的时候,一般现在第一步都回去解决反调试,不然后续步骤无法进行,当然如果你是静态分析的话获取就没必 ...

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

    文章目录 一.运行环境搭建 Android 模拟器安装 二.拷贝 Android 平台可执行文件和动态库到 /data/system 目录下 一.运行环境搭建 Android 模拟器安装 使用低版本的 ...

  8. 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )

    文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...

  9. ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...

    在 Web 编程中,经常需要处理用户请求数据,而用户请求数据的处理往往又涉及到数据存储与获取,支持存储数据的媒介很多,包括内存.文件系统.数据库等,接下来,学院君将花几个篇幅的教程来系统介绍 Go W ...

最新文章

  1. 站在你身边的每个人都有可能改变世界,阿里云异构计算加速人工智能
  2. android128 zhihuibeijing 科大讯飞 语音识别
  3. 让你的spring-boot应用日志随心所欲--spring boot日志深入分析
  4. java代码没错却运行不了_Java代码没错误,tomcat能正常运行,但是我的项目主页却一直显示不了,显示404错误...
  5. 全球及中国消费电子环境光传感器 (ALS)行业运行现状与十四五应用建设报告2022版
  6. 超级简单:在你的ASP.NET页面自定义列表和分页
  7. 获取手机信息(UIDevice、NSBundle、NSLocale)
  8. 评测征集 | 2021全国知识图谱与语义计算大会
  9. Ubuntu 20.04部署minikube配置不上阿里云的minikube镜像
  10. NSObject的hash方法
  11. python开发酷q插件gui_酷Q的SDK模块机器人个人开发插件
  12. 关于STM32的编码器计数及溢出处理调试总结
  13. 微服务架构师的道、法、术
  14. keil5怎么添加stc芯片库
  15. 计算机专业人士研究生论文,计算机专业研究生论文致谢
  16. Android JTT808协议通讯
  17. python文件查重_使用Python查找目录中的重复文件
  18. Linux 下固态硬盘恢复误删除文件
  19. 植物大战僵尸java版视频_Java小项目之:植物大战僵尸,这个僵尸不太冷!
  20. unity 编辑器窗口 批量修改文件名字

热门文章

  1. C语言排列组合(函数
  2. Windows Azure Linux虚拟机获取root权限的办法
  3. 爱快 Open v服务端 全局推送路由器命令
  4. 5G+AI+大数据+IoT如何改变一切?
  5. python内置函数入门_Python入门-内置函数一
  6. lopa分析_AQ/T 3054-2015保护层分析(LOPA)方法应用导则
  7. 豪能转债上市价格预测
  8. 框架设计之菜鸟漫漫江湖路系列 三:初入江湖
  9. 【Internet Explorer】IE11卸载不干净导致无法安装IE10
  10. 硬件电路设计之如何设计一个STM32最小系统?