AOP的本质

AOP的本质是HOOK;

HOOK的本质是:新函数包含原函数或新函数替换原函数;

需要解决的问题:

1、新函数的生成;

2、新函数的调用机制;

3、原函数的调用机制;

 

新函数的生成:

1、将已有的动态派发机制函数直接替换;

2、伪造签名后生成新函数,新函数的核心处理逻辑使用通用函数;

 

总之:重定位到通用函数进行处理;

 

新函数的调用机制:

1、修改动态派发的结构(动态代理);

2、修改类结构中的函数(函数hook);

3、修改二进制代码;

 

原函数的调用机制:

1、将函数参量打包封装调用;

[invocation invoke];

2、函数指针直接调用;

ffi_call(cif, (void (*)(void))hookedClassInfoPool->_originalIMP, ret, args);。

 

转载于:https://www.cnblogs.com/feng9exe/p/10401397.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值