asysbang

标题: Hook记录 [打印本页]

作者: admin    时间: 2019-9-3 14:24
标题: Hook记录
#需求
有些地方需要绕过一些原生系统的限制

#分析
注意hook与反射的区别
反射:如果一个对象的一个属性是不能通过“public”方法改变,可以通过反射的方法去改变这个值
hook:做一个监听器,在本来应该直接触发系统原生的判断和逻辑的时候,加入自己的hook代码

反射是针对一个“实例化的对象”,hook是针对类级别,也就是“这个类的所有对象”
PS:当然JDK默认的动态代理只能针对接口的,但是可以通过拼接字节码生成新的类来实现普通类的代理类
比如cglib框架就是通过拼接字节码来实现非接口类的代理

理想情况下,代理(静态和动态)是用不到反射的
实际情况下,因为访问限制,大部分hook都需要用到反射,但要明确反射只是解决访问限制问题,和hook本身没有关系

hook和代理可以等同来看待,实现hook的过程就是写一个代理

#解决






欢迎光临 asysbang (http://asysbang.com/) Powered by Discuz! X2.5