文章目录
前言
一、函数拦截需要的几个参数
二、插桩前先保存实际函数入口 6 字节数据
三、在插桩的函数入口写入跳转指令 | 构造拼接桩函数
前言
【Android 逆向】函数拦截实例 ( 函数拦截流程...6 字节数据
----
插桩前先 保存函数的入口 6 字节数据 , 因为之后插桩 , 会使用跳转代码 0xE9,0,0,0,0 覆盖函数入口内存 , 被破坏的实际函数 最终还是要执行 , 需要拷贝一下..., 供之后实际函数调用使用 ;
unsigned char code[64] = { 0 };
/* 插桩前先保存函数的入口 6 字节数据 , 因为之后插桩 ,
* 会使用跳转代码 0xE9,0,0,0,0..., 跳转到 dn_clock_gettime 函数位置 ;
第二次是构造桩函数 ( 构造拼接桩函数 ) : 在自定义的 dn_clock_gettime 函数中 , 需要调用实际的 clock_gettime...函数 , 这里将 do_clock_gettime 函数构造成 clock_gettime 函数 ;
构造拼接桩函数 : 前 6 字节是保存下来的 clock_gettime 函数的前 6 字节指令