文章目录
一、通过修改 GOT 全局偏移表拦截函数
二、通过在实际被调用的函数中添加跳转代码实现函数拦截
一、通过修改 GOT 全局偏移表拦截函数
----
使用 GOT 全局偏移表 拦截函数 , 只需要将...通过 远程调用 执行该函数 ), 使用 dlopen 函数直接加载 libbridge.so 动态库 , 然后调用 dlsym 函数 , 获取 libbridge.so 动态库中的 load 函数地址..., 根据该函数地址 , 可以直接调用函数 , 这样就完美的避开了 GOT 全局偏移表 , 而执行函数 ;
因此 , 使用 GOT 表拦截函数并不能保证 100% 成功 ;
二、通过在实际被调用的函数中添加跳转代码实现函数拦截...直接覆盖 实际函数的 代码 , 不能改变 函数代码 的总体大小 , 否则会导致整体的函数库调用出现问题 ; 如 : 跳转代码 5 字节 , 直接将 实际函数的 前 5 字节 修改为 跳转代码 ;
这里注意..., 处理函数 调用 被拦截的 实际函数时 , 这个实际函数中 开始的代码 是我们插入的 跳转代码 , 真实调用时 , 一定要将 跳转代码 恢复成原来的状态 然后才能继续调用 ;
该方法 100% 可以执行成功