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

ダブルクォテーションで囲まれた文字列を「\x(16進数)」形式の文字に難読化する。

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

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


1. 基本事項

ダブルクォテーション「"」で囲まれた文字列のうち、特定のパターンに該当するものを「\x●●」形式の文字列に変換します。その上でステップ2で選択されるエンコードのアルゴリズムによって、原型をとどめない形に難読化しますので、難読化が二重になされることになり、セキュリティが高まります。

ただし、あくまでも、「"」で囲まれた文字列が対象になります。シングルクォテーション「'」で囲まれた文字列は、無視されます。「$a = 'あいうえお';print $a;」の「あいうえお」を変換されません。レベル1のソースでは、そのまま表示されます。

(レベル2の変換はされますので、難読化後の最終結果はいずれにしましても「あいうえお」の部分は見えませんが、よりセキュリティを高めるためには、「"」で文字列を囲うようにしていただいた方が良いと言う意味です。)そのような意味で、オリジナルのソースで「'」を多用されている場合は、書き直していただくと、このオプションを御利用いただくとより効果的です。



2. 不具合の発生時について

ほぼ機械的に変換すべき文字列を特定して難読化していきますので、場合によっては難読化してはいけないところを難読化してしまっているかもしれません。仮に、レベル1のソースでお試しいただいても不具合がある場合は、一旦、「2. 圧縮して、文字通り読みにくくするためのオプション」及び、この「ダブルクォテーションで囲まれた文字列を『\x(16進数)』形式の文字に難読化する。」に関するオプションを全部外していただき、お試しください。その上で、一つずつ、オプションを有効にしていただきながら、どのオプション選択で不具合が発生しているのかを特定してください。

「2. 圧縮して、文字通り読みにくくするためのオプション」を外していただくと、エラーが出ている箇所の行数がストレートに出るため、デバッグしやすいです。

選択すると不具合が出る機能を特定できたら、恐縮ですが、その機能を使わない形で難読化するようにしてください。もしくは、サポートにご相談ください。弊社のほうで、プログラムを修正させていただくか、お客様ソースの修正にて対応可能かなどを調べさせていただきます。

(上級者的方法)なお、、この「ダブルクォテーションで囲まれた文字列を『\x(16進数)』形式の文字に難読化する。」の中の特定の機能を使わないようにされた場合に、問題が出ない箇所の難読化もされないようになりますが、そこだけ個別に難読化されたい場合は、トップメニューの三番目にあります「個別・難読化支援 補助ツール」というメニューを活用していただくことで、レベル1のソースを最大限に書き換えてから、今度は、書き換えたレベル1のソースをステップ1で読み込んでから難読化して、レベル2のソースを使うようにしてください。

3. その他の御注意