【Android 逆向】函数拦截 ( GOT 表数据结构分析 | 函数根据 GOT 表进行跳转的流程 )

简介: 【Android 逆向】函数拦截 ( GOT 表数据结构分析 | 函数根据 GOT 表进行跳转的流程 )

文章目录

一、GOT 表数据结构分析

二、函数根据 GOT 表进行跳转的流程





一、GOT 表数据结构分析


GOT 表分为 2 22 部分 ,


一部分在 调用者部分 ( 可执行文件 ) 中 ,

一部分在 被调用者部分 ( 静态 / 动态 函数库 ) 中 ;

在 函数库 中的部分是真正的 GOT 表 , 在调用者的部分是 PLT 表 ;


PLT 表示一个 跳转指令列表 , 执行该跳转指令 , 可以直接跳转到对应的 GOT 表中 , GOT 表记录 函数真实的位置 , 此时可以 跳转到 函数真实位置 ;


GOT 表在动态库中是以数组形式存在的 , 其中的数据结构很负责 , 不只是有 函数地址 , 还有其它额外数据信息 ;



image.png





二、函数根据 GOT 表进行跳转的流程


函数跳转流程 :


PLT 表中 保存的是 jmp 指令 , 该指令跳转的目的地址是 动态库 中的 GOT 表 , GOT 表中记录了真实的被调用函数的地址 , 之后直接跳转到该 真实函数地址 中 ;


以访问 scanf 函数为例 : 在 PLT 表中 , 保存的是 jmp GOT表地址 指令 , GOT 表地址 指向 GOT 表的一个数组元素 , 该数组元素存储这 scanf 函数的实际地址 , 因此该 GOT 表地址 本质 是 保存 scanf 函数的地址 的 数据 的 地址 ; GOT 表 是 libc.so 中的 ;

image.png


目录
相关文章
|
24天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
70 6
|
22天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
|
25天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
24 3
|
26天前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
Android面试高频知识点(3) 详解Android View的绘制流程
23 2
|
1月前
|
XML 前端开发 Android开发
Android View的绘制流程和原理详细解说
Android View的绘制流程和原理详细解说
35 3
|
25天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
17 0
|
2月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
49 4
|
2月前
|
Android开发 开发者
Android面试之Activity启动流程简述
每个Android开发者都熟悉的Activity,但你是否了解它的启动流程呢?本文将带你深入了解。启动流程涉及四个关键角色:Launcher进程、SystemServer的AMS、应用程序的ActivityThread及Zygote进程。核心在于AMS与ActivityThread间的通信。文章详细解析了从Launcher启动Activity的过程,包括通过AIDL获取AMS、Zygote进程启动以及ActivityThread与AMS的通信机制。接着介绍了如何创建Application及Activity的具体步骤。整体流程清晰明了,帮助你更深入理解Activity的工作原理。
50 0
|
3月前
|
Android开发
我的Android进阶修炼:安卓启动流程之init(1)
本文深入分析了Android系统中的init进程,包括其源码结构、主要功能以及启动流程的详细注解,旨在帮助读者理解init作为用户空间的1号进程在Android启动过程中的关键作用。
63 1
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0