type
status
date
slug
summary
tags
category
icon
password
comment
JavaScript (JS) 逆向工程通常涉及分析和理解现有的JS代码的工作原理,尤其是在它被混淆或加密时。这可能涉及到修改代码的行为,比如通过Hook注入来改变函数的行为或拦截某些操作。

1.JSON.parse

使用方法

  1. 将上述代码粘贴到浏览器的开发者工具控制台中运行。
  1. 页面中调用 JSON.parse 方法时,控制台会打印出被解析的 JSON 字符串,并且会在 debugger 处暂停执行,方便你查看调用栈和调试。

注意事项

  • 如果页面中对 JSON.parse 方法进行了多次重写,可能会导致 Hook 失效。此时需要根据实际情况调整代码逻辑。
  • 如果需要更详细的调试信息,可以使用 console.trace() 替代 console.log(),以打印调用栈。
此代码适用于简单的调试和逆向分析场景,帮助你快速定位 JSON.parse 的调用位置和参数内容。

2.XHR

使用方法

  1. 将上述代码粘贴到浏览器的开发者工具控制台中运行。
  1. 页面中发起任何 XMLHttpRequest 请求时,控制台会打印出请求的详细信息,包括:
      • 请求方法(GETPOST等)
      • 请求URL
      • 是否异步
      • 请求头
      • 请求体(send方法的参数)

修改请求参数

如果你需要修改请求参数,可以在opensend方法中直接操作arguments。例如,修改请求URL或请求体:

注意事项

  1. 兼容性:此代码适用于大多数现代浏览器,但在某些特殊场景下(如使用了第三方库封装XHR)可能需要额外调整。
  1. 性能影响:Hook操作可能会对性能产生一定影响,建议仅在调试时使用。
  1. 其他方法:如果需要监控响应数据,可以类似地Hook onreadystatechange事件或addEventListener方法。
通过这种方式,你可以轻松监控和修改页面中所有通过XMLHttpRequest发起的请求,从而更好地理解其行为或进行逆向分析。

3.XMLHttpRequest(XHR)

在JavaScript中,XMLHttpRequest(XHR)是用于与服务器进行异步通信的常用对象。如果你需要Hook XMLHttpRequest对象,以监控或修改其请求参数(如URL、请求方法、请求头、请求体等),可以通过重写其关键方法来实现。
以下是一个示例代码,展示如何Hook XMLHttpRequestopensend方法,以监控请求的参数和行为:

示例代码:Hook XMLHttpRequest

使用方法

  1. 将上述代码粘贴到浏览器的开发者工具控制台中运行。
  1. 页面中发起任何 XMLHttpRequest 请求时,控制台会打印出请求的详细信息,包括:
      • 请求方法(GETPOST等)
      • 请求URL
      • 是否异步
      • 请求头
      • 请求体(send方法的参数)

修改请求参数

如果你需要修改请求参数,可以在opensend方法中直接操作arguments。例如,修改请求URL或请求体:

注意事项

  1. 兼容性:此代码适用于大多数现代浏览器,但在某些特殊场景下(如使用了第三方库封装XHR)可能需要额外调整。
  1. 性能影响:Hook操作可能会对性能产生一定影响,建议仅在调试时使用。
  1. 其他方法:如果需要监控响应数据,可以类似地Hook onreadystatechange事件或addEventListener方法。
通过这种方式,你可以轻松监控和修改页面中所有通过XMLHttpRequest发起的请求,从而更好地理解其行为或进行逆向分析。

4.cookie

在JavaScript中,document.cookie 是一个用于操作浏览器Cookie的属性。它允许开发者读取和设置Cookie。如果你需要监控或修改 document.cookie 的操作,可以通过 Hook document.cookiegetset 方法来实现。
以下是一个示例代码,展示如何 Hook document.cookie,以监控和修改 Cookie 的读取和设置操作。

示例代码:Hook document.cookie

使用方法

  1. 将上述代码粘贴到浏览器的开发者工具控制台中运行。
  1. 页面中对 document.cookie 的读取和设置操作会被监控,并在控制台中打印相关信息。
  1. 如果需要修改 Cookie 的值,可以在 set 方法中直接操作。

示例输出

假设页面中有以下代码:
运行 Hook 代码后,控制台会输出:

修改 Cookie

在 Hook 的 set 方法中,你可以根据需要修改 Cookie 的值。例如:
  • 添加新的 Cookie。
  • 修改现有的 Cookie 值。
  • 删除某些 Cookie(通过不更新 originalCookie)。

注意事项

  1. 性能影响:Hook 操作可能会对性能产生一定影响,建议仅在调试时使用。
  1. 兼容性:此代码适用于大多数现代浏览器,但在某些特殊场景下(如使用了第三方库封装 Cookie 操作)可能需要额外调整。
  1. HttpOnly 和 Secure 标志:某些 Cookie 可能被设置为 HttpOnlySecure,这些 Cookie 无法通过 JavaScript 的 document.cookie 访问或修改。如果你需要操作这些 Cookie,可能需要通过服务器端进行处理。
通过这种方式,你可以轻松监控和修改页面中所有通过 document.cookie 设置的 Cookie,从而更好地理解其行为或进行逆向分析。
💡
有关JS逆向上的问题,欢迎您在底部评论区留言,一起交流~
按位异或运算数学分析解题精粹
Loading...