asysbang

 找回密码
 立即注册
查看: 3035|回复: 0
打印 上一主题 下一主题

Hook记录

[复制链接]

513

主题

2

好友

6404

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2019-9-3 14:24:43 |只看该作者 |倒序浏览
#需求
有些地方需要绕过一些原生系统的限制

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

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

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

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

#解决

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2024-10-6 14:38 , Processed in 0.042495 second(s), 19 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部