〖Python网络爬虫实战?〗- JavaScript Hook 的用法

发布时间:2023年12月25日

?最近更新

〖Python网络爬虫实战?〗- 极验滑块介绍(五)

在 JavaScript 逆向的时候,我们经常需要追踪某些方法的堆栈调用情况。但在很多情况下,一些 JavaScript 的变量或者方法名经过混淆之后是非常难以捕捉的。仅仅凭借这些技巧还不足以应对多数 JavaScript 逆向。

本节我们来介绍一个比较常用的 JavaScript 逆向技巧 —— Hook 技术。

Hook 技术

Hook 英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?

Hook 技术是一种在软件开发中改变或扩展程序行为的方法。它允许开发人员在程序执行过程中插入自定义代码,以便捕获特定事件或修改程序的行为。通过使用 Hook 技术,开发人员可以在不修改源代码的情况下对程序进行修改或扩展。

在软件开发中,Hook 技术在很多领域都有应用。例如,操作系统可以使用 Hook 技术来监视和控制应用程序的行为。在图形用户界面开发中,Hook 技术可以用于捕获和处理用户输入事件。在网络安全领域,Hook 技术可以用于检测和防止恶意软件行为。

Hook 技术通常涉及使用钩子函数(hook function)来截获和处理特定事件。钩子函数是在特定事件发生时被调用的自定义函数。通过注册钩子函数,并将其与目标事件相关联,可以在目标事件发生时执行自定义代码。钩子函数可以用来处理事件、修改参数、拦截和修改返回值等。

总而言之,Hook 技术是一种强大的工具,可以用于改变和扩展程序的行为。它提供了一种灵活和可扩展的方式来定制和增强软件功能。

Hook的常用手段

  1. 「动态代理」:通过动态代理技术,可以在运行时替换原始对象的行为,实现对方法的拦截和修改。
  2. 「Xposed框架」:Xposed框架是一种基于Android系统的插件化框架,可以通过它来实现对系统和应用的Hook,包括修改方法、替换资源等操作。
  3. 「Substrate框架」:Substrate框架也是一种用于Android系统的Hook框架,可以实现对方法的替换、资源的修改等操作。
  4. 「JNI Hook」:通过JNI技术,可以在底层对方法进行Hook,实现对系统和应用的修改和扩展。
  5. 「Instrumentation」:Android提供了Instrumentation机制,可以通过它来对应用的Activity、Service等组件进行Hook,实现对应用行为的监控和修改。

文章来源:https://blog.csdn.net/BROKEN__Y/article/details/135206837
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。