フィッシングURL・ドメイン

QRコードデコーダー

ローカルで動作新着

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

QRコードデコーダー を使用してください

機能の説明

QRコードの画像を読み込むか、ドロップするか、貼り付けてください。内容はデファングしたテキストとして、その動作とともに表示されます。リンクとその本当のホスト、Wi-Fiのログイン、支払いの要求、2要素認証のシークレットなどです。

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

QRコードデコーダー の使い方

  1. コードの画像を用意する. QRコードのスクリーンショットか写真を撮ります。このページがカメラを使うことはありません。
  2. 読み込む. 画像を枠にドロップするか、枠をクリックしてファイル(最大20 MBのPNG、JPEG、GIF、WebP、BMP、SVG)を選ぶか、Ctrl+Vでスクリーンショットを貼り付けます。
  3. プレビューを確認する. 画像が表示され、検出されたコードが枠で囲まれます。バッジには、内容の種類と読み取ったデコーダーが示されます。
  4. 内容と警告を読む. 内容はデファングして表示されるため、リンクはクリックできません。その下の赤と黄色の注記で、そのコードが何をするかが説明されます。
  5. 各欄を見る. 欄には、Host、Network name、Amount、Recipientなど、内容が部分ごとに分けて表示されます。ウォレットアドレスには専用のCopyボタンが付きます。
  6. 次の手順に進む. リンクの場合は、Send to…を使って、アクセスせずにLink Unwrapper、Homoglyph Checker、URL Parserに渡します。

例

ホストが隠された駐車料金の支払いリンク

入力
https://pay-parking.example@198.51.100.24/pay?zone=401
出力(2026-10-20に記録)
Web link read by jsQR (as is)

Payload (defanged)

hxxps://pay-parking[.]example[@]198[.]51[.]100[.]24/pay?zone=401
Copy raw

Text before "@" is not the destination: this link opens 198[.]51[.]100[.]24, not "pay-parking[.]example".

The host is a bare IP address (198[.]51[.]100[.]24), not a domain name.

HOST
198[.]51[.]100[.]24
USER INFO BEFORE @
pay-parking[.]example
SCHEME
https
PATH
/pay
QUERY
?zone=401

Next: use Send to… above. URL Parser splits the link into parts.

Load exampleを押すと、このテキストがページ上でQRコードとして描画され、その画像がデコードされます。本当のホストはIPアドレス198.51.100.24で、@の前のpay-parking.exampleはユーザー情報にすぎないため、どちらも危険の兆候として警告されます。

チェック対象

シグナルその意味
内容の種類Webリンク、Wi-Fiネットワーク、支払い要求、2要素認証のシークレット、メール・SMS・電話の下書き、連絡先カード、カレンダーの予定、アプリのリンク、プレーンテキストのいずれかです。バッジの色は、最も重い警告に合わせて変わります。
リンク内の隠されたホスト@の前のテキストは移動先ではありません。IPアドレスで書かれたホストは赤になります。異なるアルファベットを混在させたPunycodeのホストも赤です。
短縮URLまたはメールのラッパーbit.ly、qrco.deなどのサービスや、Safe Links、URL Defenseを経由するリンクは、本当のアドレスを隠します。ツールはそのことを示し、Link Unwrapperを案内します。
無料ホスティング、http、ポート、深いサブドメイン平文のhttpには黄色の警告が付きます。github.ioやpages.devなどの無料ホスティング、標準以外のポート、5階層以上のホストには注記が付きます。そうしたアドレスからは、ページの運営者がほとんどわからないためです。
2要素認証のシークレット(赤)otpauthのコードにはワンタイムコードを生成するシークレットが含まれ、otpauth-migrationのコードには認証アプリのエクスポート全体が含まれます。シークレットは、Show secretを押すまで隠されます。
暗号資産の支払い要求Bitcoin、Ethereum、Solana、TRON、TONなどの支払いリンクでは、アドレスと金額が表示されます。approve、increaseAllowance、setApprovalForAll、permitを呼び出すEthereumのコードは赤で、Solana Payのトランザクション要求も赤です。
UPIとEMVの加盟店コードUPIのコードをスキャンすると自分の口座から送金され、UPIのマンデート(定期支払いの承認)は繰り返しの引き落としを許可します。CRCチェックサムが一致しないEMVのコードは、編集されたか損傷しています。
危険なスキームjavascript:、data:、file:、ms-msdt:、search-ms:などのスキームは赤です。Webページではなくアプリを開くコードには黄色の注記が付きます。
Wi-Fiの詳細ネットワーク名、セキュリティの種類、パスワードの有無、ネットワークが非公開かどうかです。オープンなネットワークには警告が付きます。

その他の例

オープンなWi-FiネットワークのQRコード

入力
WIFI:T:nopass;S:Airport Free WiFi;;
結果

Wi-Fiネットワークです。Network name (SSID): Airport Free WiFi、Security: nopass、Password: none、Hidden network: no。黄色の警告:オープンなネットワークであり、Wi-Fiのレベルでは通信が暗号化されない。攻撃者は通信を傍受するために、よく似たオープンなネットワークを設置するという注記も表示されます。

認証アプリのシークレットを含むQRコード

入力
otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example
結果

2要素認証(TOTP/HOTP)のシークレットです。内容には、Show secretを押すまでsecret=••••••••と表示されます。欄:Type TOTP、Issuer Example、Account alice[@]example[.]com、Secret present(16文字、非表示)、Algorithm SHA1(既定)、Digits 6(既定)、Period 30 s。さらに、この画像を決して誰にも送らないようにという赤い警告が表示されます。

支払いを装ったトークン承認(EIP-55のテスト用アドレス)

入力
ethereum:0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359@1/approve?address=0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed&uint256=115792089237316195423570985008687907853269984665640564039457584007913129639935
結果

Ethereumの支払い要求です。欄:Network Ethereum、Contract 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359、Chain ID 1、Function approve、Address parameter(spender)、Token amount(raw units)で、ここでは78桁の最大値です。赤の警告:これはウォレットにapproveの呼び出しを求めるもので、0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAedにあなたのトークンを移動する権限を与えます。ウォレットドレイナーはまさにこれを使います。続いて、アドレス全体を比較するよう求める黄色の注記が表示されます。

よくある質問

デコーダーはQRコードについて何を表示しますか?

クリックできないようデファングされたデコード済みテキストと、その種類です。種類は、Webリンク(ホスト、Punycode、IPアドレスのホスト、@の前のユーザー情報、短縮URLやラッパー)、Wi-Fiネットワーク、メール・電話・SMSの下書き、暗号資産・UPI・EMVの支払い要求、otpauthの2要素認証シークレット、連絡先カード、カレンダーの予定です。種類ごとに重要な警告が付きます。たとえば、otpauthのコードには2FAのシークレットが含まれる、といった警告です。

画像をデコードできないのはなぜですか?

コードが小さすぎたり、ぼやけていたり、端が切れていたり、まぶしさで隠れていたりする場合があります。通常、白い余白を含めてコードの部分だけを切り抜くと解決します。 デコーダーは、ブラウザに組み込みのバーコード検出機能がある場合はそれを優先して使用し、ない場合は画像に対してjsQRを実行します(画像は長辺が1,600ピクセルに縮小され、 白黒の閾値処理、白い枠の追加、そして最長辺が800ピクセル以下の画像については2倍の拡大処理を行います。

画像はアップロードされますか?

いいえ。画像は同梱のjsQRライブラリでブラウザ内でデコードされ、どこにも送信されません。カメラは使わないため、写真やスクリーンショットを撮って読み込むか貼り付けてください。

画像に複数のQRコードが含まれている場合はどうなりますか?

ブラウザに組み込みのバーコード検出機能がある場合、見つかったすべてのコードがQR code 1 of Nのように一覧表示され、それぞれに警告が付きます。代替のjsQRは1つの画像につき1つのコードしか読まないため、確認したいコードの部分に画像を切り抜いてください。

Wi-Fiのパスワードや2要素認証のシークレットが隠されるのはなぜですか?

画面や結果のスクリーンショットに表示されないようにするためです。Show secretで内容の欄に表示され、Copy rawでは常に全文がコピーされます。

他のサイトにある画像へのリンクをドロップできますか?

いいえ。ページが読み取るのは画像ファイルと貼り付けた画像だけで、何もダウンロードしません。先に画像を保存するか、画像そのものをコピーして貼り付けてください。base64のdata:imageテキストを貼り付けることもできます。

用語解説

PhishDestroyの調査