with one click
find-crypto-entry
定位 JS 加密参数的生成入口(函数位置+调用链)。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
定位 JS 加密参数的生成入口(函数位置+调用链)。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
在 Node.js 中运行浏览器加密 JS(补环境)。env_core.js 提供函数伪装/原型链/Proxy 引擎,Claude 按诊断报告在 run.js 中按需编写存根。 TRIGGER when: 用户说"补环境"、"提取模块"、"Node里跑"、"webpack模块提取"、"环境模拟"、"把JS搞到Node跑",或找到加密入口后需要脱离浏览器独立运行。 DO NOT TRIGGER when: 只是在浏览器调试、做 AST 解混淆、或写普通 Node.js 代码。
用 Babel AST 还原混淆的 JS 代码(字符串解密、控制流还原、死代码删除)。
| name | find-crypto-entry |
| description | 定位 JS 加密参数的生成入口(函数位置+调用链)。 |
定位加密参数 $ARGUMENTS 的生成入口。
目标:找到生成该参数的函数位置(脚本 URL + 行列号 + 函数名 + 调用路径)。
根据信号选择策略,不要按固定顺序执行:
优先静态搜索:用 search_in_sources 搜参数名(带 excludeMinified=false)。大多数情况下直接找到赋值位置,然后读上下文追溯来源。
静态搜不到时用 XHR 断点:break_on_xhr 设在请求 URL 特征上,刷新页面触发。断点命中后从调用栈中找业务代码帧,用 evaluate_on_callframe 检查变量。
两种策略可以组合:先静态搜索定位赋值位置,再在赋值处设断点动态验证。
agent 在逆向分析中容易踩的坑,这些是无法通过推理得出的经验:
headers["x-sign"] = encrypt(data)。静态搜索直接找到。window.h5sign),业务代码调用其方法。静态搜索能找到调用处,但 SDK 内部代码全被混淆。当加密逻辑在 OB 混淆的文件中(特征:_0x 前缀、大型字符串数组、RC4 解密函数),所有字符串都被加密,静态搜索在该文件内无法匹配任何明文。但调用该文件的业务代码通常未混淆,从业务代码侧搜索更高效。
XHR 断点命中在 send() 调用处,调用栈底部通常是框架代码(axios/fetch wrapper)。加密逻辑在栈的中上层。直接跳过底部框架帧,关注业务代码帧。
evaluate_on_callframe 直接检查变量比单步跟踪高效得多。evaluate_on_callframe 指定帧 — evaluate_script 在暂停时会自动 fallback 到顶层帧,但如果需要检查特定调用帧的变量,必须用 evaluate_on_callframe 指定 frameIndex。找到以下信息即为完成:
入口位置:
- 参数:$ARGUMENTS
- 脚本:https://example.com/static/js/main.abc123.js
- 位置:第 X 行,第 Y 列
- 函数:functionName (或 anonymous)
- 调用路径:request → addSign → encrypt
- 加密类型:[标准算法名 | 外部SDK | 未知/需解混淆]
只找入口,不做算法还原。