关于mac平台的代码注入和函数hook,github上有个开源工程mach_start是做这个事的。本人由于工作的需要也以这个工程为基础做些修改和完善。从我个人的使用经历来看,我觉得mach_star这个工程还远没有达到稳定通用的程度,需要做一些改进。

    mach_star的主要问题在于函数调用的修正,虽然有专门的函数来做修正,但实际效果并不理想。第一个问题是它只修正导入表的地址,对本模块的函数调用没有处理。另外一个问题就是对导入表的修正不够彻底,没有考虑系统api在不同进程中地址不一样的情况。

    第一个问题比较好解决,使用原来的修正函数来修正导入表之外的跳转即可。对于第二个问题,需要获取被注入进程的导入表,手动修正注入模块的导入表,这个比较麻烦,需要使用vm_read函数读取,手动分析mach-o格式。

    相对于windows的代码注入,mac平台的注入实在不是一个简单的工作。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐