- 订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+
python项目实战
Python编程基础教程系列(零基础小白搬砖逆袭)
- 说明:本专栏持续更新中,订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明
- 作者:爱吃饼干的小白鼠。Python领域优质创作者,2022年度博客新星top100入围,荣获多家平台专家称号。
最近更新
〖Python网络爬虫实战㊸〗- 极验滑块介绍(五)
在 JavaScript 逆向的时候,我们经常需要追踪某些方法的堆栈调用情况。但在很多情况下,一些 JavaScript 的变量或者方法名经过混淆之后是非常难以捕捉的。仅仅凭借这些技巧还不足以应对多数 JavaScript 逆向。
本节我们来介绍一个比较常用的 JavaScript 逆向技巧 —— Hook 技术。
Hook 技术
Hook 英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?
Hook 技术是一种在软件开发中改变或扩展程序行为的方法。它允许开发人员在程序执行过程中插入自定义代码,以便捕获特定事件或修改程序的行为。通过使用 Hook 技术,开发人员可以在不修改源代码的情况下对程序进行修改或扩展。
在软件开发中,Hook 技术在很多领域都有应用。例如,操作系统可以使用 Hook 技术来监视和控制应用程序的行为。在图形用户界面开发中,Hook 技术可以用于捕获和处理用户输入事件。在网络安全领域,Hook 技术可以用于检测和防止恶意软件行为。
Hook 技术通常涉及使用钩子函数(hook function)来截获和处理特定事件。钩子函数是在特定事件发生时被调用的自定义函数。通过注册钩子函数,并将其与目标事件相关联,可以在目标事件发生时执行自定义代码。钩子函数可以用来处理事件、修改参数、拦截和修改返回值等。
总而言之,Hook 技术是一种强大的工具,可以用于改变和扩展程序的行为。它提供了一种灵活和可扩展的方式来定制和增强软件功能。
Hook的常用手段
- 「动态代理」:通过动态代理技术,可以在运行时替换原始对象的行为,实现对方法的拦截和修改。
- 「Xposed框架」:Xposed框架是一种基于Android系统的插件化框架,可以通过它来实现对系统和应用的Hook,包括修改方法、替换资源等操作。
- 「Substrate框架」:Substrate框架也是一种用于Android系统的Hook框架,可以实现对方法的替换、资源的修改等操作。
- 「JNI Hook」:通过JNI技术,可以在底层对方法进行Hook,实现对系统和应用的修改和扩展。
- 「Instrumentation」:Android提供了Instrumentation机制,可以通过它来对应用的Activity、Service等组件进行Hook,实现对应用行为的监控和修改。