hook的缺点(hook在大纲中什么意思)

技术Hook的定义是什么这篇文章主要介绍“Hook的定义是什么”,在日常操作中,相信很多人在Hook的定义是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hook的定义是什么”的疑惑有

本文主要介绍“钩子的定义是什么”。在日常操作中,我相信很多人对Hook的定义有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“Hook的定义是什么”的疑惑!接下来,请和边肖一起学习!

钩子技术也叫钩子函数。简单来说,就是把系统程序拉出来,变成我们自己的代码片段。今天,边肖用三分钟时间简单介绍一下Hook,让大家了解一下Hook技术。

Hook的定义是什么

1、 Hook的定义

钩子,钩子。挂钩系统的程序逻辑。在执行某个SDK源代码逻辑的过程中,通过代码的方式截取并执行逻辑,并添加自己的代码逻辑。

Hook类似于网络传输中的中间人拦截。我在APP中截取原来的方法,自己定义一个方法,替换原来的东西,达到我无法描述的目的。这是白话,但实际过程和应用还是挺复杂的。

常见的使用场景,举几个栗子:

App登录劫持,普通用户手动点击“登录”按钮,将用户名和密码信息发送到服务器,验证账号和密码是否正确。这很简单。别有用心的人只需要在使用EditText控件的getText方法后,找到一个让开发者验证网络的方法。钩子这个方法可以劫持用户的账号和密码。

将广告注入应用程序。当应用开始加载HomeActivity时,你必须执行onCreate方法,劫持主页的onCreate方法,向其中注入弹出广告,获得广告收入。App数据篡改,比如玩游戏App,修改里面的金币数量,可以通过反编译App,找到具体的类和方法,插入自己的方法来实现。听起来很牛逼,但要实现,需要掌握很多逆向技术和其他所需技术,但并不容易。

2、实用价值

钩子是中级发展到高级发展的必由之路。如果把谷歌比作安卓的创造者,那么安卓SDK的源代码就包含了一切的起源。中级开发人员只使用一切浮于表面,而高级开发人员可以从源头改变一切,深入核心。

最有用的实用价值:hook是安卓面向方面(AOP)编程的基础,它允许我们在不改变原有业务的情况下插入额外的逻辑。这样就保护了原业务的完整性,多余的代码逻辑也不与原业务耦合。

3、前置技能

Java反射

掌握如何使用类、方法和成员字段。很多类和方法@隐藏在源代码内部,不能直接在外部访问,所以我们只能通过反射在源代码中创建类、方法或成员。

能够阅读安卓源代码

Hook的入口点都在源代码里面。如果你看不懂源代码或者分不清源代码的逻辑,就不需要谈Hook了。其实你用AndroidStudio读源代码的时候,是有漏洞的,有时候你会看到源代码“全是红的”,好像有什么东西没有被引用。其实是因为有些源代码没有对开发者开放,解决起来很麻烦。所以建议从安卓官网下载完整的源代码,然后使用SourceInsight查看源代码。如果你不需要跳来跳去,只需要一步到位的使用安卓源网站。

4、hook通用思路

不管源代码有多复杂,我们都想干扰一些执行过程,最后的绝招只有:“偷饵换柱”的思路通常是一个套路:根据需求确定要hook的对象,找到要hook的对象的持有者,得到要Hook的对象(hold:B类的成员变量之一是A类的对象,那么B就是A类的持有者),定义“要Hook的对象”的代理类,用上一步创建的对象创建这个类的对象,替换要Hook的对象。

至此,“Hook的定义是什么”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/156533.html

(0)

相关推荐

  • 怎么解决Java表单重复提交问题

    技术怎么解决Java表单重复提交问题这篇文章主要介绍“怎么解决Java表单重复提交问题”,在日常操作中,相信很多人在怎么解决Java表单重复提交问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

    攻略 2021年11月16日
  • 生信pheatmap绘制热图(pheatmap作图前数据)

    技术Pheatmap怎样绘制热图Pheatmap怎样绘制热图,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。随机生成,10个基因,每个基因4个处理,每个处理3

    攻略 2021年12月20日
  • 鲫鱼的做法大全家常菜,鲫鱼怎么做好吃

    技术鲫鱼的做法大全家常菜,鲫鱼怎么做好吃鲫鱼豆腐汤鲫鱼的做法大全家常菜:材料:
    鲫鱼1条、豆腐1盒、姜3片、葱3段、油、盐、胡椒、料酒、鸡精做法:
    1、鲫鱼开膛去内脏,去鳞去鳃(鱼档工作人员完成),洗净,抹干,用盐和

    生活 2021年10月20日
  • Bootstrap中如何导航组件和选项卡组件

    技术Bootstrap中如何导航组件和选项卡组件本篇内容介绍了“Bootstrap中如何导航组件和选项卡组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年11月25日
  • python中的list是什么意思(python中list用法)

    技术Python中的List怎么用这篇文章主要为大家展示了“Python中的List怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中的List怎么用”这篇文

    攻略 2021年12月19日
  • Java学习笔记12——数据类型思考题

    技术Java学习笔记12——数据类型思考题 Java学习笔记12——数据类型思考题思考题1:
    请问以下代码有没有问题
    double b=12.34;
    float f=d;
    第二行代码错误。double转

    礼包 2021年11月30日