JavaScriptデオブファスカータ
暗号化されたJavaScriptコードを貼り付けるだけです、ヘックスコード化された文字列、単一文字の変数名、上部に配置されたデコーダループが含まれています。このツールはその構造を段階的に解明します:文字列のアンエスケープ処理、検索配列のインライン化、変数名を読みやすいプレースホルダーに変更、不要なラッパーを削除し、結果を美しく整える処理を行います。ページやPastebinリンクから取得した疑わしいコード断片の分析に非常に有効です。
JavaScriptの暗号化を解除する方法
-
1
暗号化されたソースを貼り付けます
`javascript-obfuscator.io`スタイルのツールから生成されたミニファイドデータ、パッケージ化されたデータ、または出力データです。
-
2
パーサがそれを走行するようにします
文字列配列はデコードされ、数値列は評価され、デッドコードブランチは削除されます。
-
3
リネームを実行します
単一文字の変数`a`/`b`/`c`は、`var1`、`var2`などに名前が変更されます。これらは読み取り可能なプレースホルダーであり、必ずしも意味のある名称とは限りません。
-
4
美しくする
インデントを設定し、改行を追加して、実際に読めかつ理解できるコードを出力してください。
このツールが元に戻す難読化の手法
| 難読化 | 復元 |
|---|---|
| ヘックス文字列文字値 | \x48\x69 を "Hi" に復号化します |
| ユニコードエンコードされた識別子 | \u006E\u0061\u006D\u0065 -> name |
| 文字列配列 + 解読関数 | 配列をインライン化し、解析時に解読関数を呼び出す |
| 数値定数折りたたみ | 0x1F3 + 5 -> 504 |
eval(...) ラッパー |
内部コードをトップレベルに移動します |
| 制御フローのフラット化(状態機械) | スイッチケースを検出し、フローを再構築します |
| 過時コード/無効な三値関数 | 場面で実行されないブランチを削除します |
_0x1a2b3c() のスタイル名 |
増加型の var1、var2 に置換します |
限界:このツールが実行できない機能
- 元の変数名を復元します。
userEmailがaに変更されると、どのツールもその名称を推測することはできません。元の意味ではなく、読みやすい構造が得られます。 - カスタム仮想化ツールを解封する。 大容量の商用オブフスカベータ(JScrambler、Obfuscator.ioのエンタープライズ向け製品)はバイトコードを解釈する専用の仮想マシンを搭載しているため、これらを回避するには手動によるリバースエンジニアリングが必要となる。
- 任意のコードを実行します。 デオブファスカータは純粋な式を静的に評価します。リモートリソースを取得したり、DOM要素を作成したり、ネットワークと通信したりすることはありません。
典型的な使用例
- セキュリティ調査:メールで送信された疑わしいスクリプトや、攻撃を受けたCDNから配信されたスクリプトを詳細に解析する。
- コード考古学:唯一の残存情報がミニファイドされたコードバンドルである古いコードを復元する手法。
- 学習:チュートリアルレベルの暗号化処理が実際にはどのような仕組みで動作しているのかを理解すること。
安全性と倫理
重要なシステムにログインしているブラウザタブ内で、信頼できないJavaScriptを実行してはいけません。そのコードはクッキーを読み取り、内部APIを呼び出し、セキュリティ情報を漏洩させる可能性があります。デオブファスカータは貼り付けたコードを実行するのではなく、ソースコードをテキストとして直接処理します。
分析する権限があるコードのみをデオブファスケートできます。ライセンス付きソフトウェアの逆エンジニアリングは、あなたの管轄区域では制限される場合があります。
よくある質問
いいえ。オブフスカタがuserEmailを_0x1a2b3cに変更すると、元の名称は失われます。デオブフスカタは読みやすいプレースホルダー(var1、var2)および正しい構造を提供しますが、元の意味に基づいた名称は復元されません。
いいえ。コードはASTとして解析され、静的な変換が適用されます。純粋な式(例えば0x1F3 + 5)は折りたたまれますが、ネットワークやクッキー、DOMには一切影響しません。
はい、ただしバンドラーの出力は意図的に暗号化するのではなく最小化されているため、結果としてモジュールラッパーが復元された美しいコードのみが得られます。別途利用可能なソースマップがあれば、はるかに適切な名称が付与されます。
大規模な商用ツール(企業向けJScrambler、カスタム仮想マシン)には、静的分析では解読できないバイトコードインタラプレターが搭載されています。これらのツールは表面層の情報を把握できますが、手動での逆工程処理を施さなければコアロジックの内容は依然として不明瞭です。
関連ツール
Webpack設定ジェネレーター
短いフォームからwebpack 5のwebpack.config.jsを生成します。entry・出力フォルダー・モードを設定し、TypeScript、Babel、CSSローダー、HtmlWebpackPlugin、開発サーバーを切り替えるだけです。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
.gitignore ジェネレーター
Laravel、Node.js、Python、Rails のプロジェクト用除外ルールを組み合わせます。結果をコピーするか、.gitignore 入りの ZIP をダウンロードできます。個人用ルールは別に表示します。
16進数から10進数への変換ツール
16進数を10進数(10進法)に変換します。メモリアドレス、エラーコード、RGBチャンネル、任意精度の整数に対応します。
Dockerfileジェネレーター
5つのアプリ構成に合うDockerfileと.dockerignoreを作成。実際の起動対象、作業ディレクトリ、内部ポートを入力し、両方のファイルを確認できます。
Markdownリンク生成ツール
URLとアンカーテキストからMarkdownリンクの記法を生成します。タイトルのツールチップや、長い文書を読みやすく整える参照形式のリンクにも対応しています。
このツールは他の言語でも利用できます
- Deobfuskator JavaScriptu [PL]
- JavaScript-deobfuscator [SV]
- เครื่องถอดรหัส JavaScript [TH]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- JavaScript-Deobfuscator [DE]
- 자바스크립트 디오프스버커 [KO]
- Desofuscador de JavaScript [PT]
- Desofuscador de JavaScript [ES]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- Deobfuscator JavaScript [ID]
- JavaScript-deobfuscator [NL]
- Déobfuscateur JavaScript [FR]
- JavaScript反混淆工具 [ZH]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]