void printAllReg(int Reg_R0,int Reg_R1,int Reg_R2,int Reg_R3,int Stack_SP,int Stack_SP2)
{
int *pSP2 = &Stack_SP2;
int Reg_R12 = *(pSP2+1);
int Reg_R11 = *(pSP2+2);
int Reg_R10 = *(pSP2+3);
int Reg_R9 = *(pSP2+4);
int Reg_R8 = *(pSP2+5);
int Reg_R7 = *(pSP2+13);
int Reg_R6 = *(pSP2+12);
int Reg_R5 = *(pSP2+11);
int Reg_R4 = *(pSP2+10);
char *pFormat="Hookaddr:0x%08x tid=%x R0:0x%08x R1:0x%08x R2:0x%08x R3:0x%08x \nR4:0x%08xR5:0x%08x R6:0x%08x R7:0x%08x R8:0x%08x R9:0x%08x R10:0x%08x R11:0x%08xR12:0x%08x ";
LOGD(pFormat,(Stack_SP2-1-(int)pSSELibBase),gettid(),Reg_R0,Reg_R1,Reg_R2,Reg_R3,Reg_R4,Reg_R5,Reg_R6,Reg_R7,Reg_R8,Reg_R9,Reg_R10,Reg_R11,Reg_R12);
}
改造 Cydia Substrate 框架用于函数内代码的HOOK
最新推荐文章于 2024-10-18 23:52:03 发布
本文介绍了如何改造Cydia Substrate框架以满足在函数内部特定代码地址进行HOOK的需求,旨在捕获执行时的寄存器环境、HOOK地址和线程ID。通过编写满足特定条件的汇编中转函数,并使用patch技术,实现了对目标地址的监控。文章还探讨了如何将这种方法应用到HOOK函数的过滤函数中,以实现更便捷的函数调用信息打印。

最低0.47元/天 解锁文章
2542

被折叠的 条评论
为什么被折叠?



