ファイル・ページ

多層デコーダー

ローカルで動作新着

ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。

多層デコーダー を使用してください

機能の説明

エンコードまたは難読化されたテキストを貼り付けると、読めるテキストか既知のファイル形式になるまで、デコーダーが1層ずつはがしていき、各ステップを表示します。すべてブラウザ内で実行されます。

すべてブラウザ上で動作します。入力した内容は一切アップロードされません。

多層デコーダー の使い方

  1. エンコードされたテキストを貼り付ける. スクリプト内のBase64データ、長い16進文字列、パーセントエンコードされたテキスト、String.fromCharCodeのリストなどを、Encoded textに貼り付けます。
  2. デコードする. Decode layers(層をデコード)またはCtrl+Enterを押します。認識された層が最大12層まで順にはがされます。
  3. 連鎖を読む. 見出しには層が順番に一覧表示されます。各ステップには、方式、前後のサイズ、プレビューが表示されます。
  4. 結果を活用する. デコードしたテキストをコピーするか、Indicators in the resultを読むか、Send toでHTML Attachment Analyzer、Link Unwrapper、IOC Converter、URL Defangerに渡します。
  5. 手動で介入する. 層が見逃された場合は、Decode asで方式を選んで適用します。Undo last layerで1つ前に戻ります。

例

gzipをBase64化してURLエンコードしたもの

入力
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
出力(2026-10-20に記録)
3 layers: URL percent-encoding → Base64 → gzip

No further encoding recognised.

1
URL percent-encoding
1 escape · 130 → 128 bytes
H4sIAAAAAAACA7MpTi7KLCixK8/MS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
2
Base64
decodes to gzip · 128 → 96 bytes
00000000  1f 8b 08 00 00 00 00 00  02 03 b3 29 4e 2e ca 2c  |...........)N..,|
00000010  28 b1 2b cf cc 4b c9 2f  d7 cb c9 4f 4e 2c c9 cc  |(.+..K./...ON,..|
00000020  cf d3 cb 28 4a 4d 53 b0  55 50 ca 28 29 29 28 b6  |...(JMS.UP.())(.|
… 48 more bytes
3
gzip
96 → 82 bytes
<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>
Result

Text, 82 bytes.

<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>

Indicators in the result (1)
URL
hxxps://example[.]com/verify?session=7f3a
Copy indicators (raw)

3つの層があります。URLのパーセントエンコード(%2F)、gzipデータにデコードされるBase64、そしてgzip自体で、最後にブラウザをhttps://example.com/verifyに移動させるスクリプトが現れます。

チェック対象

シグナルその意味
層の連鎖エンコードの順番で、たとえばHex → Base64です。短いURLやコマンドを何層も包んでいる場合、たいていは誰かがそれを隠したかったことを意味します。
ステップごとのサイズ各層の入力と出力のバイト数です。gzipやdeflateの層で大きく増えるのは、通常の展開によるものです。
UTF-16LEのテキスト1文字あたり2バイトで、PowerShellの-EncodedCommandに典型的なものです。デコードされたコマンドが何かをダウンロードしたり起動したりする場合は、危険な兆候です。
バイナリの結果最終結果がテキストでない場合は、先頭512バイトの16進ダンプが、検出された形式とともに表示されます。16進数またはBase64としてコピーしてください。決して実行しないでください。
Indicators in the resultデコードしたテキスト内で見つかったURL、メールアドレス、IPv4アドレスで、デファングして表示され、そのままの形でコピーするボタンが付きます。
停止メッセージそれ以上のエンコードが認識されなかった、12層の上限に達した、またはステップが以前の結果を繰り返すことになる、のいずれかです。上限に達した場合は、さらに層がある可能性があります。
デファングのオプション既定でオンで、結果内のURLとメールアドレスはデファングして表示されます。Copyでは常にそのままのテキストが得られます。
自動で続けるオプション手動のDecode asのステップの後、チェックを外さない限り、デコードが自動的に続きます。
Decode asのリスト自動処理で飛ばされたステップのための、Base64、URLセーフBase64、16進数、URLのパーセントエンコード、HTMLエンティティ、エスケープ、文字コード、quoted-printable、gzip、zlib、raw deflate、UTF-16LEです。
コピーボタンCopyはデコードしたテキストをそのまま渡します。バイナリの結果の場合は、代わりにCopy as hexとCopy as Base64が用意されます。

その他の例

RFC 4648のテストベクター

入力
Zm9vYmFy
結果

1層:Base64、8 → 6バイト。結果はテキストfoobarで、RFC 4648で公開されている値です。

URLを包むBase64を、さらに包む16進数

入力
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d
結果

2層:Hex → Base64(88 → 44 → 31バイト)。結果はhttps://login.example.net/resetで、デファングして表示され、Indicators in the resultに一覧表示されます。

PowerShellのエンコードされたコマンド

入力
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA
結果

2層:Base64 → UTF-16LEテキストで、PowerShellの-EncodedCommandに典型的なものと注記されます。結果はStart-Process 'https://example.org/update'で、URLは指標として一覧表示されます。

よくある質問

どのエンコードを認識しますか?

Base64(標準とURLセーフ、パディングは任意)、プレーン、0x、\x、空白区切り、コロン区切りの形式の16進数、URLのパーセントエンコード、HTMLエンティティ、\x、\u、\u{…}、%uのエスケープ、String.fromCharCodeのリスト、quoted-printable、gzip、zlib、raw deflate、そしてPowerShellの-EncodedCommandのようなUTF-16LEのテキストです。atob('…')やbase64_decode('…')のような呼び出しやdata: URIも展開されます。

途中で止まったり、テキストがそのままになったりするのはなぜですか?

層が受け入れられるのは、出力が読めるテキスト、既知のファイル形式、または正しく展開できるストリームの場合だけです。そのため、たまたま有効なBase64になっている普通の単語はそのまま残されます。その結果、短いエンコードや珍しいエンコードは見逃されることがあります。Decode asで手動で方式を適用し、Undoで1つ前に戻ってください。12層で停止します。

デコードした内容が実行されたり、送信されたりしますか?

いいえ。デコードには通常のJavaScriptとブラウザのDecompressionStreamを使います。結果はテキストまたは16進ダンプとして表示され、実行、レンダリング、アップロードされることはありません。

このような文字列はどこから来るのですか?

フィッシングページや添付ファイルはURLやコードをBase64や16進数で隠し、ClickFixのページはエンコードされたPowerShellコマンドをクリップボードにコピーし、メールはquoted-printableで届きます。実行する代わりに、ここに文字列を貼り付けてください。

1層ずつデコードできますか?

はい。After a manual step, keep peeling automaticallyのチェックを外し、ステップごとにDecode asで方式を選んでApply to the current resultを押します。

どのくらいのテキストを貼り付けられますか?

最大5 MBです。200,000文字を超える結果は画面上では短縮されますが、Copyでは全文が得られます。

quoted-printableとパーセントエンコードとは何ですか?

どちらも1バイトを記号と2桁の16進数で表します。quoted-printableはメール本文で使われ、=3Dは=を表します。パーセントエンコードはURLで使われ、%2Fは/を表します。

用語解説

PhishDestroyの調査