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)

相关推荐

  • selenium测试过程动了键盘(selenium判断点击事件是否成功)

    技术selenium中键盘事件的示例分析这篇文章主要介绍了selenium中键盘事件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。例:from

    攻略 2021年12月17日
  • 如何解决Visual Studio 2005插件功能问题

    技术如何解决Visual Studio 2005插件功能问题这篇文章主要介绍了如何解决Visual Studio 2005插件功能问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让

    攻略 2021年12月3日
  • 实验四-Web服务器2

    技术实验四-Web服务器2 实验四-Web服务器2Web服务器
    1.任务详情
    基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用Linux Socket实现:Web服务器的客户端服务器,提交程序

    礼包 2021年12月3日
  • snow形容词,车上snow是什么意思

    技术snow形容词,车上snow是什么意思一,SNOW是雪地模式的意思。二,snow是雪地模式在仪表盘上的显示。1,snow,在变速器旁边一般会有个SNOW按键,按下SNOW按键后,汽车以雪地模式行驶,适合积雪或湿滑地面

    生活 2021年10月23日
  • 怎么才能让女人怀上孩子,什么方法可以快速怀上孩子

    技术怎么才能让女人怀上孩子,什么方法可以快速怀上孩子不请自来,要想快速怀孕,需要注意以下几点怎么才能让女人怀上孩子:孕前检查 详细的孕前检查能够帮助你更清楚的了解自己的身体,有些疾病容易造成不易怀孕,所以需要备孕的您特别

    生活 2021年10月21日
  • Data Guard中Snapshot Standby Database配置是怎样的

    技术Data Guard中Snapshot Standby Database配置是怎样的Data Guard中Snapshot Standby Database配置是怎样的,相信很多没有经验的人对此束手无策,为此本文总结

    攻略 2021年11月12日