• ベストアンサー

「\x3C\x42\x52\x3E\x3C\x42\...」等の謎の文字

あるサイトのソースを閲覧していたところ、「<script language="javascript">document.write(unescape("\x3C\x42\x52\x3E...」で始まり「...x52\x3E\x3C\x42\x52\x3E"));</script>」で終わる謎の文字列を発見いたしました。 この「\x3C」「\x42」などはひとつひとつ意味があるのでしょうか?返信お願いします。<(_ _)>

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

例えば、 アドレスバーで javascript:void(alert(unescape("\x3C\x42\x52\x3E"))) と入力してみると、 件の部分は"<BR>"であったとわかります。

Massa092
質問者

お礼

なるほど!アドレスバーを使えばいいんですね。有難う御座います。他の皆さんも本当に有難う御座います<(_ _)>

その他の回答 (5)

  • mr_kjapan
  • ベストアンサー率63% (29/46)
回答No.6

追記:::::: 別法として、「\x」を「%」で始まるASCII形式文字に置き換えてみます。 \x3C\x62\x72\x3E(暗号) = %3C%62%72%3E(ASCII形式文字) = <br> 「\x3C\x53\x43\x52\x49\x50\x54\x20\x4C\x41\x4E\x47\x55\x41\x47\x45\x3D\x22\x4A\x61\x76\x61\x53\x63\x72\x69\x70\x74\x22\x3E」は、ASCII形式文字だと 「%3C%53%43%52%49%50%54%20%4C%41%4E%47%55%41%47%45%3D%22%4A%61%76%61%53%63%72%69%70%74%22%3E」となり、通常文字では <SCRIPT LANGUAGE="JavaScript">です。 ::結果(同じになりました):: 「\x」は、「%」を表します 例:\x4C = %4C ここで出来上がったものは、ASCII形式文字です。 ようは、通常文字を、例えばSは、ASCII形式文字の「%53」 に変換し、「%」を「\x」に置き換え羅列させていると考えても良いでしょう。

  • mr_kjapan
  • ベストアンサー率63% (29/46)
回答No.5

http://music.j-total.net/」のサイトのソースコードと思います。 さだまさしの「かかし」:http://music.j-total.net/data/011sa/005_sada_masashi/004.html内のソースコードをを例に取って見ましょう。 右クリック禁止のJSが仕組まれているので、ショートカットメニューからではなく、ツールバーから表示させます。 歌詞の部分を見てみます。 「凩\x28こがらし\x29が雑木林を」の部分を見ると、 実際の歌詞は、「凩(こがらし)が雑木林を」となっているところから、\x28=( \x29=)であることが判明します。 今一度、ソースコードをじっくり眺めてみます。 歌詞の部分の所々に、ひらがな、漢字が有ります。 ようは、歌詞の部分はそのままです。 で、歌詞の部分の暗号はと言うと、HTMLタグ(アンカー、改行など)、コードネーム、空白などです。 本題に入り、とりあえず、「(」を10進文字コードで表してみましょう。 「(」となり、おかしいようです。 では、「\x28」に「x」を含んでいるから、「(」を16進文字コードで表してみましょう。 「&#x28;」となり、「\x28」と似ています。 同様に、「)」を16進文字コードで表すと「&#x29;」となり、「\x29」と似ています。 \x28 = &#x28; = ( \x29 = &#x29; = ) となります。 同様にデコードしてみると、 \x3C\x62\x72\x3E = &#x3C;&#x62;&#x72;&#x3E; = <br> 「\x3C\x53\x43\x52\x49\x50\x54\x20\x4C\x41\x4E\x47\x55\x41\x47\x45\x3D\x22\x4A\x61\x76\x61\x53\x63\x72\x69\x70\x74\x22\x3E」は、 「&#x3C;&#x53;&#x43;&#x52;&#x49;&#x50;&#x54;&#x20;&#x4C;&#x41;&#x4E;&#x47;&#x55;&#x41;&#x47;&#x45;&#x3D;&#x22;& #x4A;&#x61;&#x76;&#x61;&#x53;&#x63;&#x72;&#x69;&#x70;&#x74;&#x22;&#x3E;」となり、 <SCRIPT LANGUAGE="JavaScript"> です。 ::結果:: 「\」は、「&#」を表します 3C、53は16進数・・3C;、53; 例:\x4C=&#x4C; ここで出来上がったものは、16進文字コードです ようは、通常文字を、例えばSは、16進文字コードの「&#x53;」 に変換し、「&#」を「\」に置き換え「;」を外して羅列させているのです。 ちなみに <head>内にある暗号化されたスクリプトをデコードすると <SCRIPT LANGUAGE="JavaScript"> <!-- hp_ok=true; function hp_d00(s) { if(!hp_ok)return;document.write(s) } //--> </SCRIPT> <SCRIPT LANGUAGE="JavaScript"> <!-- function hp_ne() { return true } onerror=hp_ne;function hp_dn(a) { return false } function hp_cm() { alert("著作権保護の観点より、右マウスボタンを禁止しております。");return false } function hp_de(e) { ・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・

参考URL:
http://music.j-total.net/data/011sa/005_sada_masashi/004.html
noname#19206
noname#19206
回答No.4

#2 で御座います。ちょっと頑張ってアルゴリズムを解析してみました(笑) 多分コレで合ってると思います。 \x25\x75\x33\x30\x34\x32 = あ 半角文字の場合はひとつの\x**が、全角文字の場合は6つの\x**がそれぞれ暗号化されたもののようです。 「ひとつひとつに意味があるのか」という質問の答えとしては、 ひとつひとつに意味がある場合と複数で意味を成す場合と両方があるということですね。 ちょっと難しい技術かも知れませんが、ご理解いただけたでしょうか…?

noname#19206
noname#19206
回答No.2

このようなコードには%20%2C...みたいな感じのものもありますが、例示の\x3C\x42みたいな形式もあります。 何をしているのかというと通常のソースをエンコードしてページソースを暗号化しています。 \で始まる4つの文字それぞれはそれぞれ文字が1バイト分だけ暗号化された姿です。 何らかの事情でページソースを見られたくないときにこの方法が用いられます。 例えば、マルチメディアファイルのストリーミング配信。 プレーヤーのコンテキストメニューを無効化すれば、プロパティからメディアファイルのアドレスを参照できなくなります。 ソースを暗号化すれば HTML が指定したマルチメディアファイルのファイルパスも分かりません。 ストリーミング配信だから、本体もブラウザの一時ファイルには保存されません。 そうするとメディアファイルを保存することが多少なり困難になるのです。 まぁ多少技術がある人にとっては全く無意味なものですが、 そこまでいろいろ詳しくない人にはもの凄く険しい壁の役割を果たすこととなります。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.1

¥で区切っていますか? %じゃないですか? http://www.broadband-xp.com/hidesource/escape.html

関連するQ&A