clock_gettime 函数 执行 , 这样执行拼接的函数 等同于执行 clock_gettime 函数 ;
将 do_clock_gettime 函数构造成 clock_gettime 函数流程..., (uint8_t*)dn_clock_gettime, (uint8_t*)do_clock_gettime, 6);
函数拦截代码 :
/* hook 函数的完整流程 , 跳转指令 size 是...t* pApi, uint8_t* pUser, uint8_t* pStub, size_t size)
{
unsigned char code[64] = { 0 };
/* 插桩前先保存函数的入口...write_code(size + pStub, size + pApi);
/* 将复制的 6 字节 代码存放到 pStub 函数中的 0 ~ 6 字节位置 */
memcpy(pStub,...偏移量 , 不是绝对地址值
*/
*(unsigned*)(code + 1) = pStub - pFunc - 5;
/* 将跳转代码拷贝到 pFunc 地址处 , 这是 pFunc 函数的入口地址