詳細とTips・ご注意事項など

文字列を16進数の「\x●●」形式の文字列に変換するツール

(重要な御注意)
必ず、オリジナルのファイルはバックアップしておいてください。修正が必要な場合は必ずオリジナルを修正後、難読化処理を再びしていただく必要があります。

また、あってはならないことですが、難読化後、難読化前と同じ挙動にならないケースもないとは言えません。元に戻せるように必ずバックアップは行ってください。


1. 概要

ダブルクォテーション「"」で囲まれた日本語などの文字列を難読化できます。たとえば、「$a = "あいうえお";」の太字部分を変換したい場合は、「あいうえお」だけを貼り付けてください。「"」は入力しないでください。そうしますと、Shift_JISの場合であれば、「\x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8」と変換されますので、「$a = "\x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8";」とソースを書き換えてください。


2. 想定される御利用シーン

難読化のメインメニューでも、(選んでいただいたチェックボックス横に記載された文字列のパターンについては)自動でソース内の変換可能な箇所をこのような16進数の形式に一括変換できます。このメニューは、敢えて1箇所だけ別に変換したい場合などに御利用ください。

たとえば、「\x(16進数)」形式に変換されたくないところまで変換されるので使いたくないが、「PHPソースの難読化II 」メニューを使って、ソースの一部分のみ難読化という方法では不十分であるというケースの場合。

また、二重難読化の対象になるのは基本的に「"」と「"」で囲まれた文字になりますが、全てではありません。安全を期すために残している部分もあるかと思います。生成されたレベル1のソースを見ていただいて、そういうやり残し部分がある場合には、このメニューを使って手動で難読化していただいてから、再び難読化(ステップ2のエンコードを目的とした難読化)してください。その上で、レベル2のソースを御利用ください。

3. 御注意事項

  • 「"」で囲まれた文字列のみを貼り付けてください。先頭の「"」及び最後の「"」は入力してはいけません。

  • ヒアドキュメントで出力する文字列もOKです。ただし、「print<<"HERE";」のように「"」が使われている必要があります。「print<<'HERE';」のように「'」の場合は、期待通りに動作しません。

  • 重要)あくまでも、「"」で囲まれた文字列を貼り付けてください。シングルクォテーション「'」で囲まれた文字列を貼り付けられても、期待通りに動作しません。「$a = 'あいうえお';print $a;」の「あいうえお」を変換して、「$a = '\x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8';print $a;」の場合は、文字通り、「\x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8」が出力されます。展開されません。

  • $で始まる変数名の部分は、変換されません。変数名まで変換すると動かなくなるため、変数名部分はそのままです。変数名を隠したい場合は、メインメニューで難読化を行っていただき、レベル2のソースを御利用ください。

  • 選択される文字コードによって変換結果は異なります。文字コードの選択を間違わないように注意してください。

  • 「$a = "彼は、\"明日行く\"と言った。";」のようにエスケープ文字を含む場合は、「彼は、\"明日行く\"と言った。」をそのまま入力してください。エスケープ文字がある状態のままにしてください。このケースの場合はエスケープ文字なしの入力でも結果は同じになるのですが、「$a = "このりんごは、\\100です。";」の場合に「このりんごは、\100です。」を変換されますと、「円」を表す「\」がなくなってしまいます。