View8
Disassembler binary
View8 、シリアル化されたV8バイトコードオブジェクト(JSCファイル)を高レベルの読み取り可能なコードに逆コンパイルするように設計された静的分析ツールです。これらのシリアル化されたオブジェクトを解析して分解するために、View8はパッチされたコンパイルされたV8バイナリを使用します。その結果、View8はJavaScriptと同様のテキスト出力を生成します。
9.4.146.24 (ノードv16.xで使用)10.2.154.26 (ノードv18.xで使用)11.3.244.8 (ノードv20.xで使用)コンパイルされたバージョンについては、リリースページにアクセスしてください。
input_file :入力ファイル名。output_file :出力ファイル名。--path 、 -p :分解バイナリへのパス(オプション)。--disassembled 、 -d :入力ファイルが既に分解されているかどうかを示します(オプション)。--export_format 、 -e :エクスポート形式を指定します。オプションは、 v8_opcode 、 translated 、およびdecompiledです。複数のオプションを組み合わせることができます(オプション、デフォルト: decompiled )。v8 bytecodeファイルを逆コンパイルし、逆コンパイルコードをエクスポートします。
python view8.py input_file output_fileデフォルトでは、 view8入力ファイルのV8バイトコードバージョン( VersionDetector.exeを使用)を検出し、 Binフォルダーの互換性のある分解バイナリを自動的に検索します。これは、異なる分解バイナリを指定することで変更できます。 --path (または-p )オプションを使用します。
python view8.py input_file output_file --path /path/to/disassembler分解プロセスをスキップし、既に分解されたファイルを入力として提供するには、 --disassembled (または-d )フラグを使用します。
python view8.py input_file output_file --disassembled--export_format (または-e )オプションを使用して、エクスポート形式を指定します。複数の形式を組み合わせることができます。
v8_opcodetranslateddecompiledたとえば、V8オプコードと逆コンパイルされたコードの両方を並べてエクスポートするには:
python view8.py input_file output_file -e v8_opcode decompiledデフォルトでは、使用される形式はdecompiled 。
V8バイトコードバージョンは、ファイルの先頭にハッシュとして保存されます。以下は、 VersionDetector.exeで利用可能なオプションです。
-h :バージョンを取得し、ハッシュを返します。-d :ハッシュ(リトルエンディアン)を取得し、ブルートフォースを使用して対応するバージョンを返します。-f :ファイルを取得してバージョンを返します。