type
status
date
slug
summary
tags
category
icon
password
comment
JavaScript (JS) 逆向工程通常涉及分析和理解现有的JS代码的工作原理,尤其是在它被混淆或加密时。这可能涉及到修改代码的行为,比如通过Hook注入来改变函数的行为或拦截某些操作。
1.JSON.parse
使用方法
- 将上述代码粘贴到浏览器的开发者工具控制台中运行。
- 页面中调用
JSON.parse
方法时,控制台会打印出被解析的 JSON 字符串,并且会在debugger
处暂停执行,方便你查看调用栈和调试。
注意事项
- 如果页面中对
JSON.parse
方法进行了多次重写,可能会导致 Hook 失效。此时需要根据实际情况调整代码逻辑。
- 如果需要更详细的调试信息,可以使用
console.trace()
替代console.log()
,以打印调用栈。
此代码适用于简单的调试和逆向分析场景,帮助你快速定位
JSON.parse
的调用位置和参数内容。2.XHR
使用方法
- 将上述代码粘贴到浏览器的开发者工具控制台中运行。
- 页面中发起任何
XMLHttpRequest
请求时,控制台会打印出请求的详细信息,包括: - 请求方法(
GET
、POST
等) - 请求URL
- 是否异步
- 请求头
- 请求体(
send
方法的参数)
修改请求参数
如果你需要修改请求参数,可以在
open
或send
方法中直接操作arguments
。例如,修改请求URL或请求体:注意事项
- 兼容性:此代码适用于大多数现代浏览器,但在某些特殊场景下(如使用了第三方库封装XHR)可能需要额外调整。
- 性能影响:Hook操作可能会对性能产生一定影响,建议仅在调试时使用。
- 其他方法:如果需要监控响应数据,可以类似地Hook
onreadystatechange
事件或addEventListener
方法。
通过这种方式,你可以轻松监控和修改页面中所有通过
XMLHttpRequest
发起的请求,从而更好地理解其行为或进行逆向分析。3.XMLHttpRequest
(XHR)
在JavaScript中,
XMLHttpRequest
(XHR)是用于与服务器进行异步通信的常用对象。如果你需要Hook XMLHttpRequest
对象,以监控或修改其请求参数(如URL、请求方法、请求头、请求体等),可以通过重写其关键方法来实现。以下是一个示例代码,展示如何Hook
XMLHttpRequest
的open
和send
方法,以监控请求的参数和行为:示例代码:Hook XMLHttpRequest
使用方法
- 将上述代码粘贴到浏览器的开发者工具控制台中运行。
- 页面中发起任何
XMLHttpRequest
请求时,控制台会打印出请求的详细信息,包括: - 请求方法(
GET
、POST
等) - 请求URL
- 是否异步
- 请求头
- 请求体(
send
方法的参数)
修改请求参数
如果你需要修改请求参数,可以在
open
或send
方法中直接操作arguments
。例如,修改请求URL或请求体:注意事项
- 兼容性:此代码适用于大多数现代浏览器,但在某些特殊场景下(如使用了第三方库封装XHR)可能需要额外调整。
- 性能影响:Hook操作可能会对性能产生一定影响,建议仅在调试时使用。
- 其他方法:如果需要监控响应数据,可以类似地Hook
onreadystatechange
事件或addEventListener
方法。
通过这种方式,你可以轻松监控和修改页面中所有通过
XMLHttpRequest
发起的请求,从而更好地理解其行为或进行逆向分析。4.cookie
在JavaScript中,
document.cookie
是一个用于操作浏览器Cookie的属性。它允许开发者读取和设置Cookie。如果你需要监控或修改 document.cookie
的操作,可以通过 Hook document.cookie
的 get
和 set
方法来实现。以下是一个示例代码,展示如何 Hook
document.cookie
,以监控和修改 Cookie 的读取和设置操作。示例代码:Hook document.cookie
使用方法
- 将上述代码粘贴到浏览器的开发者工具控制台中运行。
- 页面中对
document.cookie
的读取和设置操作会被监控,并在控制台中打印相关信息。
- 如果需要修改 Cookie 的值,可以在
set
方法中直接操作。
示例输出
假设页面中有以下代码:
运行 Hook 代码后,控制台会输出:
修改 Cookie
在 Hook 的
set
方法中,你可以根据需要修改 Cookie 的值。例如:- 添加新的 Cookie。
- 修改现有的 Cookie 值。
- 删除某些 Cookie(通过不更新
originalCookie
)。
注意事项
- 性能影响:Hook 操作可能会对性能产生一定影响,建议仅在调试时使用。
- 兼容性:此代码适用于大多数现代浏览器,但在某些特殊场景下(如使用了第三方库封装 Cookie 操作)可能需要额外调整。
- HttpOnly 和 Secure 标志:某些 Cookie 可能被设置为
HttpOnly
或Secure
,这些 Cookie 无法通过 JavaScript 的document.cookie
访问或修改。如果你需要操作这些 Cookie,可能需要通过服务器端进行处理。
通过这种方式,你可以轻松监控和修改页面中所有通过
document.cookie
设置的 Cookie,从而更好地理解其行为或进行逆向分析。有关JS逆向上的问题,欢迎您在底部评论区留言,一起交流~
- Author:Max
- URL:https://www.zhx1012.top//article/JS-Hook
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts