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 MeteoInfo解析与绘图代码教程

    技术如何理解Java MeteoInfo解析与绘图代码教程这篇文章主要讲解了“如何理解Java MeteoInfo解析与绘图代码教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究

    攻略 2021年10月21日
  • 恩格斯名言,你有自己的名言吗

    技术恩格斯名言,你有自己的名言吗有,我的名言条是引用《周易》里面的一句:天行健,君子以自强不息,地势坤,君子以厚德载物恩格斯名言。这句名言来提醒自己。这句话什么意思?是告诉我,君子要像天一样自强不息。也要像地一样厚德载物

    生活 2021年10月26日
  • TransOMCS中从语言图中提取公共知识的实例分析

    技术TransOMCS中从语言图提取常识知识的示例分析今天就跟大家聊聊有关TransOMCS中从语言图提取常识知识的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有

    攻略 2021年12月16日
  • 如何卸载软件,怎样卸载软件才能把软件卸载干净

    技术如何卸载软件,怎样卸载软件才能把软件卸载干净要保证卸载软件时彻底干净、没有残留,可以使用软件管家来卸载如何卸载软件。 由于有些应用软件在安装后,会在注册表中注册,同时还会自动生成附属的文件夹,在系统的控制面板中卸载软

    生活 2021年10月30日
  • 如何使用sklearn进行数据挖掘

    技术如何使用sklearn进行数据挖掘今天就跟大家聊聊有关如何使用sklearn进行数据挖掘,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.1 数据挖掘的步骤 

    攻略 2021年11月2日
  • mapboxgl源码分析(mapboxgl 是否开源)

    技术mapbox-gl开发中如何集成deck.gl小编给大家分享一下mapbox-gl开发中如何集成deck.gl,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! deck.gl是由uber开发出来的

    攻略 2021年12月22日