通过Android代码简单的理解一下什么是HOOK

admin 2025年6月26日01:26:19评论0 views字数 986阅读3分17秒阅读模式

通过Android代码简单的理解一下什么是HOOK

在最近的取证培训及工作中,我们经常可以听到一个名词,那就是hook了,想必很多刚入门的同学不是很理解是什么意思,那么今天我们自己写一段安卓代码来理解一下hook的基本含义。

Hook--顾名思义,就是“钩子”,也称作“钩子技术”,其原理是先将需要修改的函数“钩住”,然后使用自定义的函数替换原函数,让程序在运行时执行自定义函数,从而达到动态修改软件的目的。

下面我们就写一个简单的按钮监听功能:

通过Android代码简单的理解一下什么是HOOK

通过Android代码简单的理解一下什么是HOOK

通过点击按钮,文字将从“手机取证已全面支持iOS15系列”变成“盘古石星源全自动脱壳APK”。

通过Android代码简单的理解一下什么是HOOK

好了,代码写好了也运行成功了,现在我们要做的就是在OnClickListener中,插入自己写的代码,所以,确定要hook的,是bt.setOnClickListener()方法的实参。

通过点击进入setOnClickListener的源码我们可以看见

通过Android代码简单的理解一下什么是HOOK

通过Android代码简单的理解一下什么是HOOK

getListenerInfo()类,继续点击进入...

通过Android代码简单的理解一下什么是HOOK

我们不难发现点击事件的实际持有者ListenerInfo。

接下来我们就可以写一个hook类来进行hook操作。(代码详情见图片中的注释)

通过Android代码简单的理解一下什么是HOOK

最后我们没有改动代码,只是在后面加了一行Hooksup.hook(this,bt);

通过Android代码简单的理解一下什么是HOOK

然后我们看看运行效果。

通过Android代码简单的理解一下什么是HOOK

我们可以看到程序已经弹出了“已被hook”字样,在函数没有改动的情况下,按钮触发了我们hook之后的效果。说明 bt.setOnClickListener被我们成功hook。

经过以上的操作,小伙伴们是否已经对hook有了初步的了解呢。

安全为先,洞鉴未来,奇安信盘古石取证团队竭诚为您提供电子数据取证专业的解决方案与服务。如需试用,请联系奇安信各区域销售代表,或致电95015,期待您的来电!

“盘古石”团队是奇安信科技集团股份有限公司旗下专注于电子数据取证技术研发的团队,由来自国内最早从事电子数据取证的成员组成。盘古石团队以“安全为先,洞鉴未来”为使命,以“漏洞思维”解决电子数据取证难题,以“数据驱动安全”为技术思想,以安全赋能取证,研发新一代电子数据取证产品,产品涵盖计算机取证、移动终端取证、网络空间取证、IoT取证、取证数据分析平台等电子数据取证全领域产品和解决方案,为包括公安执法、党政机关、司法机关以及行政执法部门等提供全面专业的支持与服务。

通过Android代码简单的理解一下什么是HOOK

原文始发于微信公众号(盘古石取证):通过Android代码简单的理解一下什么是HOOK

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月26日01:26:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过Android代码简单的理解一下什么是HOOKhttps://cn-sec.com/archives/812062.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息