hook杂思-面向函数编程

hook:方法拦截

 

以函数单元为编程对象;

在编译时或运行时进行函数单元的替代、修改、功能添加操作;

所有的操作都不是在原始编码时完成的;

 

函数单元作为参量、操作对象、编码对象存在于机制中;

 

 

机制:

1、回掉注册机制;

2、方法替换机制;

3、动态代理机制;

 

动态代理:

面向对象—对象方法拦截(一组);

 

hook:

单个函数的拦截、信息提取;

 

动态代理:

类的所有函数的拦截转发;

 

 

aop模型:

业务逻辑+交叉逻辑+织入机制

 

面向切面编程—面向现有功能编程—面向修改编程—面向操作编程—面向hook编程—面向交叉逻辑编程

 

在不修改现有功能的情况下,改变现有功能的实现:

 

在功能函数的前后插入功能或替换功能函数;

 

 

java:静态语言;

基于dsl和注解的动态代理机制;

 

oc:

基于isa+方法替换的动态语言机制;

 

目标不同:

对现有逻辑的修改和添加:

热修复:jspatch、

 

交叉逻辑植入;

 

posted @ 2019-05-30 16:44  zzfx  阅读(197)  评论(0编辑  收藏  举报