入力
出力
Readme
JavaScriptの難読化とは?
JavaScript難読化は、読みやすいJavaScriptコードを意図的に複雑で理解しにくいバージョンに変換しながら、元の機能を維持する技術です。開発者がコードを難読化する理由は、知的財産を保護したり、リバースエンジニアリングを防いだり、機密ロジックを隠したり、コード盗難を抑止したりするためです。一般的な難読化技術には、変数を無意味な文字に名前変更する、文字列をエンコードする、デッドコードを追加する、制御フロー平坦化、関数を読みにくいフラグメントに分割することが含まれます。
JavaScriptを難読化解除する理由は?
難読化解除は、難読化されたコードを人間が読める形式に変換する逆プロセスです。セキュリティ研究者は、難読化されたマルウェアと疑わしいスクリプトを分析して、その動作を理解します。開発者は、サードパーティのコードをデバッグしたり、失われたソースファイルを復元したりする必要があるかもしれません。難読化されたコードを理解することで、Webサイトで実行されているスクリプト内の脆弱性、悪意のあるペイロード、または隠された機能を特定するのに役立ちます。
AI搭載の難読化解除はどのように機能しますか?
従来の難読化解除ツールはパターンマッチングと静的分析に依存しており、複雑またはカスタム難読化技術に対応するのに苦労しています。AI搭載の難読化解除は、数百万のコード例で訓練された大規模言語モデルを使用して、コードのセマンティクスとコンテキストを理解します。AIは一般的なパターンを認識し、意味のある変数名を推測し、論理フローを再構築し、元の機能を保持するクリーンで読みやすいコードを生成できます。
ツール説明
このAI JavaScriptデオブファスケータは、高度な人工知能を使用して、難読化されたJavaScriptコードをクリーンで読みやすいソースコードに変換します。難読化されたコードを貼り付けるだけで、AIが構造を分析し、難読化パターンを特定し、意味のある変数名、適切なフォーマット、明確なロジックフローを備えた人間が読める形式を生成します。このツールは、16進数エンコーディング、文字列配列操作、制御フロー難読化、変数名変更など、さまざまな難読化技術に対応しています。
例
入力(難読化):
var _0x4a2b = ["log", "Hello,\x20World!"];
(function (_0x1a2b3c, _0x4a2b5c) {
var _0x2e4f = function (_0x3c5d6e) {
while (--_0x3c5d6e) {
_0x1a2b3c["push"](_0x1a2b3c["shift"]());
}
};
_0x2e4f(++_0x4a2b5c);
})(_0x4a2b, 0x6f);
var _0x2e4f = function (_0x1a2b3c, _0x4a2b5c) {
_0x1a2b3c = _0x1a2b3c - 0x0;
var _0x2e4f6a = _0x4a2b[_0x1a2b3c];
return _0x2e4f6a;
};
console[_0x2e4f("0x0")](_0x2e4f("0x1"));出力(難読化解除):
// シンプルなHello Worldプログラム
console.log("Hello, World!");機能
- AI搭載分析 - 高度な言語モデルを使用して、単純なパターンマッチング以上のコードセマンティクスを理解します
- 意味のある変数名変更 - 使用コンテキストに基づいて、難読化された変数の説明的な名前を自動的に推測します
- 複数の難読化サポート - 16進数エンコーディング、文字列配列、制御フロー平坦化、デッドコード、カスタム技術に対応します
- 機能の保持 - 出力コードは、元の難読化バージョンと完全に同じ動作を維持します
- 構文ハイライト - 完全なJavaScript構文ハイライト付きの入力および出力エディタで、読みやすくなっています
ユースケース
- セキュリティ分析 - Webサイトまたはメール添付ファイルから疑わしいスクリプトを検査して、悪意のある動作を特定します
- マルウェア研究 - 難読化されたマルウェアサンプルをリバースエンジニアリングして、攻撃ベクトルを理解し、防御を作成します
- コード復元 - 元のソースが利用できない場合、縮小または難読化されたコードの読みやすいバージョンを復元します
- 教育目的 - 難読化されたバージョンと難読化解除されたバージョンを比較することで、難読化技術がどのように機能するかを学びます
- サードパーティコードのデバッグ - 難読化されたライブラリまたはプラグイン内の問題を理解してトラブルシューティングします