Android 逆向Android 逆向基本概念 ( 定位内存中的修改点 | 基址寻址法 | 搜索定位法 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向Android 逆向基本概念 ( 定位内存中的修改点 | 基址寻址法 | 搜索定位法 )相关的知识,希望对你有一定的参考价值。
一、定位内存中的修改点
使用 " 基址寻址法 " 或 " 搜索定位法 " 搜索 指定文件中的代码 在内存中的位置 ;
上述 2 2 2 个内存定位方法 结合 IDA 工具 , 一起使用 ;
1、基址寻址法
基址寻址法 :
目标是找到 内存中的映射文件对应的修改点 ; 如 : 在 so 动态库中 , 找到了函数 void fun()
, 修改该函数的 参数 / 局部变量 / 返回值 等值 ;
首先 , 找到要修改的 代码 相对于 so 动态库文件头 的 偏移量 Offset ;
然后 , 找到 so 动态库文件 , 在内存中基址 Base ;
最后 , 计算出 应该修改的 内存偏移 Offset + Base 地址 ;
该方法使用时不是很方便 , 需要对内存计算有深厚的功底 ;
2、搜索定位法
搜索定位法 :
首先 , 在 指定的 内存范围内 , 搜索 " 特定代码串 " , 找到该 特征代码串 的 " 位置基址 " Base ;
然后 , 计算出 该 特征代码串 的 位置基址 Base , 与 目标代码 地址 之间的偏移 Offset ;
最后 , 计算出 应该修改的 内存偏移 Offset + Base 地址 ;
以上是关于Android 逆向Android 逆向基本概念 ( 定位内存中的修改点 | 基址寻址法 | 搜索定位法 )的主要内容,如果未能解决你的问题,请参考以下文章
什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战
Android 逆向APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程