
node.js inspector メカニズムを悪用して、任意の node.js/electron/v8 ベースのプロセスに任意の javascript コードを実行させる。
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し、以下のような任意のコードを実行できます:
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ライセンスの下で公開されています。