Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
来源:互联网 发布:mac电脑重装系统 编辑:程序博客网 时间:2024/05/29 03:55
我们继续分析自毁程序密码这个app,我们发现该程序会用fopen ()打开/proc/[pid]/status这个文件,随后会用fgets()和strstr()来获取,于是我们在strstr()处下个断点,然后让hex view的数据与R0同步。每次点击继续,我们都会看到strstr传入的参数。当传入的参数变为TracerPid:XXXX的时候我们停一下。因为在正常情况下,TracerPid的值应该是0。但是当被调试的时候就会变成调试器的pid。
为了防止程序发现我们在调试,在这里我们需要把值改回0。我们在hex view的2那里点击右键,然后选择edit。随后我们输入30和00,再点击”apply changes”。就可以把TracerPid改为0了。然后就可以bypass这一次的反调试的检测。
但这个程序检测TracerPid的次数非常频繁,我们要不断的修改TracerPid的值才行,这种方法实在有点治标不治本,所以我们会在下一节介绍patch so文件的方法来解决这个问题。
另外在ida动态调试过程中,除了内存中的数据可以修改,寄存器的数据也是可以动态修改的。比如说程序执行到CMP R6, #0。本来R6的值是0,经过比较后,程序会跳转到4082A3FC这个地址。
但是如果我们在PC执行到4082A1F8这条语句的时候,将R6的值动态修改为0。程序就不会进行跳转了。
你甚至可以修改PC寄存器的值来控制程序跳转到任何想要跳转到的位置,简直和ROP的原理一样。但记得要注意栈平衡等问题。
0 0
- Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
- IDA动态调试Android的SO文件
- 使用IDA逆向Android的.so动态库文件
- 使用IDA逆向Android的.so动态库文件
- Android IDA So的动态调试大法
- IDA Pro动态调试Android so文件
- Android中某视频的数据请求加密协议(IDA动态调试SO)
- 使用IDA动态调试android so文件时的几个坑
- 使用Ida动态调试Android 中的so文件的方式以及技巧
- 使用IDA动态调试android so文件时的几个坑
- IDA动态调试Android进程的so模块
- Android IDA So的动态调试大法 标签: Androidso动态调试IDA
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- Android逆向之旅---Android中分析抖音和火山小视频的数据请求加密协议(IDA动态调试SO)
- IDA调试 android so文件的10个技巧
- Android逆向之旅---Android中某视频的数据请求加密协议(IDA动态调试SO)第一篇
- 网络请求图片
- 使用Navicat工具进行数据传输备份到本地数据库
- Android进阶之如何实现国际化和各国Values文件夹命名
- 点名
- ios xib和代码的frame布局 iOSXib布局后代码修改约束的值
- Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
- Node.js模块与npm item2—NPM使用
- AS 配置与使用SVN
- SharedPreferences 简单应用
- Linux_终端命令大全
- Android下USB Accessory的实现分析
- Linux中常用的监控CPU整体性能的工具
- 高精度(快速幂)
- 深度学习 基于DCNN的人脸特征点定位