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)

相关推荐

  • 关于伯努利数

    技术关于伯努利数 关于伯努利数问题引入. 给定 \(n\), \(k\),我们想计算
    \[S(n,k)= \sum_{i=0}^{n-1} i^k.
    \]进一步地,我们已经知道 \(S(n,k)\) 是

    礼包 2021年12月21日
  • 《LeetCode刷题笔记》Day1——数组

    技术《LeetCode刷题笔记》Day1——数组 《LeetCode刷题笔记》Day1——数组------------恢复内容开始------------
    二分查找
    只要是顺序数组,都可以考虑用一下二分

    礼包 2021年12月14日
  • MySQL怎么使用event进行自动分表

    技术MySQL怎么使用event进行自动分表这篇文章给大家分享的是有关MySQL怎么使用event进行自动分表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 新单位

    攻略 2021年11月2日
  • 混凝土试块强度评定,混凝土试块评定方法标准差怎么算

    技术混凝土试块强度评定,混凝土试块评定方法标准差怎么算评定水泥混凝土的抗压强度,应以标准养生28d 龄期的试件为准。试件为边长150mm 的立方体。试件3 件为1组。水泥混凝土抗压强度的合格标准混凝土试块强度评定:一、试

    生活 2021年10月25日
  • 数据分析

    技术数据分析 数据分析数据预处理
    在本次数据分析过程中,缺失数据将被进一步划分成为三个部分,一类数据是数据为0的情况,一类是数据为空值的情况,一类是数据为特殊符号,例如“--”的数据。
    针对不同的数据缺

    礼包 2021年11月18日
  • Kubernetes gRPC负载均衡分析

    技术Kubernetes gRPC负载均衡分析本篇内容主要讲解“Kubernetes gRPC负载均衡分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes

    攻略 2021年11月16日