文章目录

  • 一、定位内存中的修改点
    • 1、基址寻址法
    • 2、搜索定位法

一、定位内存中的修改点


使用 " 基址寻址法 " 或 " 搜索定位法 " 搜索 指定文件中的代码 在内存中的位置 ;

上述 222 个内存定位方法 结合 IDA 工具 , 一起使用 ;

1、基址寻址法

基址寻址法 :

目标是找到 内存中的映射文件对应的修改点 ; 如 : 在 so 动态库中 , 找到了函数 void fun() , 修改该函数的 参数 / 局部变量 / 返回值 等值 ;

首先 , 找到要修改的 代码 相对于 so 动态库文件头 的 偏移量 Offset ;

然后 , 找到 so 动态库文件 , 在内存中基址 Base ;

最后 , 计算出 应该修改的 内存偏移 Offset + Base 地址 ;

该方法使用时不是很方便 , 需要对内存计算有深厚的功底 ;

2、搜索定位法

搜索定位法 :

首先 , 在 指定的 内存范围内 , 搜索 " 特定代码串 " , 找到该 特征代码串 的 " 位置基址 " Base ;

然后 , 计算出 该 特征代码串 的 位置基址 Base , 与 目标代码 地址 之间的偏移 Offset ;

最后 , 计算出 应该修改的 内存偏移 Offset + Base 地址 ;

【Android 逆向】Android 逆向基本概念 ( 定位内存中的修改点 | 基址寻址法 | 搜索定位法 )相关推荐

  1. android java 打开snd,使用SndPlaySound从内存中播放WAV

    有些时候,我们写的程序需要播放音乐,一般大家会采用以下几种方式:1.把音乐文件放置在某个特定的目录,例如Sound,WAV,Music供程序读取播放:2.使用资源来存放音乐.有些人估计也是使用这个方法 ...

  2. 从配置文件(*.config)读到内存中,手动修改配置文件后,内存中数据改变问题.

    某些情况,我们把数据信息存储在*.xml或*.config文件中,存储在*.config中会比较安全,发布的程序,浏览器不会打开*.config文件,但是*.xml会在浏览器中呈现. 使用.confi ...

  3. android app性能优化大汇总(内存性能优化)

    内存简介: RAM(random access memory)随机存取存储器.说白了就是内存. 一般Java在内存分配时会涉及到以下区域: 寄存器(Registers):速度最快的存储场所,因为寄存器 ...

  4. 整数中内存中的保存方式:大端、小端

    一个数在计算机内存中的保存方式是大端法表示还是小端法表示? 首先C++当中并没有规定我们这个内存中,整数在内存中是采用大端法还是小端法表示.所以在编写程序的时候这一点并不是很重要. 但是如果编写一个程 ...

  5. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

    文章目录 前言 一.DexPrepare.cpp 中 rewriteDex() 方法分析 二.DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 ) 三.D ...

  6. 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 )

    文章目录 一.应用结构分析 二.定位动态库位置 三.定位动态库中的修改点 四.修改动态库 五.重打包 一.应用结构分析 分析上一篇博客 [Android 逆向]逆向修改游戏应用 ( APK 解析工具 ...

  7. [安卓逆向]android adb常用命令及使用案例

    [安卓逆向]android adb常用命令 一.调试相关 1.开启adb服务 adb start-server 2.关闭adb服务 adb stop-server 3.列出所有连接的设备 adb de ...

  8. Android App解决卡顿慢之内存抖动及内存泄漏(发现和定位)

    内存抖动是指在短时间内有大量的对象被创建或者被回收的现象,内存抖动出现原因主要是频繁(很重要)在循环里创建对象(导致大量对象在短时间内被创建,由于新对象是要占用内存空间的而且是频繁,如果一次或者两次在 ...

  9. 逆向Android软件的步骤

    2019独角兽企业重金招聘Python工程师标准>>> 逆向Android软件的步骤: 首先使用反编译的工具对反编译,然后阅读反汇编代码,如果有必要还会对其进行动态调试,找到突破口后 ...

最新文章

  1. 2017 年已读书单总结
  2. 纽约州金融服务局(NYDFS)为比特币现金(BCH)打开绿灯
  3. Codeforces 798C:Mike and gcd problem
  4. 1028. 人口普查(20)
  5. 第4章 Python 数字图像处理(DIP) - 频率域滤波5 - 二变量函数的傅里叶变换、图像中的混叠、二维离散傅里叶变换及其反变换
  6. 拆分工作簿为多个文件_如何批将Excel的多个Sheet工作表拆分为独立的工作簿?...
  7. javaScript 解析 xml
  8. (OK) 国内常用NTP服务器地址及IP
  9. 20172301 2017-2018-2 《程序设计与数据结构》第七周学习总结
  10. ThingJS之动态天气效果
  11. FIFO IP核的使用
  12. 磁盘区号 linux,区号
  13. “_CRT_SECURE_NO_DEPRECATE”: 未定义宏或在预编译头使用后定义发生改变
  14. saas系统服务器搭建,SaaS平台部署.doc
  15. Java并发编程73道面试题及答案 —— 面试稳了 侵立删
  16. 20、中断和动态时钟显示
  17. #今日论文推荐# 文字秒变3D?苹果发布最新AI生成模型GAUDI,根据文字提示创建3D场景
  18. 2023年新自采集壁纸网页源码+简约大气
  19. 核雕图案的寓意(下)
  20. 常用交联剂-丙烯酰胺AM交联剂/N,N-亚甲基丙烯酰胺MBA交联剂/环氧氯丙烷/ECH交联剂

热门文章

  1. 编写更好的CSS代码
  2. ibm服务器imm管理方式简介
  3. Ubuntu 12.04 MySQL改utf-8 启动不了
  4. iphone-common-codes-ccteam源代码 CCUIAlertView.m
  5. Linux-SFTP/SSH免密码,钥匙登录
  6. c语言笔试题(带答案)
  7. WCF分发简述-ChannelDispatcher,EndpointDispatcher,MessageFilter
  8. 在批处理中运行.sql文件
  9. 【NOI2016】优秀的拆分(后缀数组)
  10. zabbix监控超详细搭建过程