PHPに優れた難読化ツールを使用した人はいますか?いくつか試してみましたが、非常に大きなプロジェクトでは機能しません。たとえば、あるファイルに含まれ、別のファイルで使用される変数は処理できません。
または、コードの拡散を阻止するための他のトリックはありますか?
PHPに優れた難読化ツールを使用した人はいますか?いくつか試してみましたが、非常に大きなプロジェクトでは機能しません。たとえば、あるファイルに含まれ、別のファイルで使用される変数は処理できません。
または、コードの拡散を阻止するための他のトリックはありますか?
回答:
PHPコードを難読化するための無料のPHP難読化ツールであるPHP保護を試すことができます。 編集:このサービスはもう稼働していません。
それはとても素敵で、使いやすく、無料です。
他の人がここで難読化を使用しないことについて書いたことについては、壊れる可能性があるなどです。
答えは1つだけです-誰かがあなたのロックを選択できるので、家のドアをロックしないでください。
これはまさにその通りであり、難読化は100%コードの盗難を防ぐことを意図したものではありません。それはそれを時間のかかる仕事にする必要があるだけなので、元のコーダーに支払う方が安くなるでしょう。お役に立てれば。
人々はあなたに難読化ツールを提供しますが、難読化をしても、誰かがあなたのコードにアクセスするのを防ぐことはできません。なし。コンピュータがそれを実行できる場合、または映画や音楽の場合、それを再生できる場合、ユーザーはそれにアクセスできます。それをマシンコードにコンパイルしても、仕事は少し難しくなります。難読化ツールを使用する場合、自分をだますだけです。さらに悪いことに、ユーザーがバグを修正したり変更したりすることも許可していません。
音楽会社や映画会社はまだこれに同意していませんが、DRMに数百万ドルを費やしています。
PHPやPerlなどのインタプリタ言語では、それは取るに足らないことです。Perlには、多くのコード難読化ツールがありましたが、簡単に逆コンパイルできることがわかりました。
perl -MO=Deparse some_program
PHPには、DeZenderやShow My Codeなどがあります。
私のアドバイス?ライセンスを書いて弁護士を雇う。他の唯一のオプションは、コードを提供せずに、ホストされたサービスを実行することです。
この件に関するperlfaqエントリも参照してください。
完璧なものはありません。プログラマーでない人を止めたいだけなら、ここに私が書いた小さなスクリプトがあります:
<?php
$infile=$_SERVER['argv'][1];
$outfile=$_SERVER['argv'][2];
if (!$infile || !$outfile) {
die("Usage: php {$_SERVER['argv'][0]} <input file> <output file>\n");
}
echo "Processing $infile to $outfile\n";
$data="ob_end_clean();?>";
$data.=php_strip_whitespace($infile);
// compress data
$data=gzcompress($data,9);
// encode in base64
$data=base64_encode($data);
// generate output text
$out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>';
// write output text
file_put_contents($outfile,$out);
インタプリタ言語の難読化を無意味なものとしてラベル付けできるかわかりません(Schwernの投稿にコメントを追加できないので、ここに新しいエントリを追加します)。
私は、誰かがコードを難読化する可能性のあるすべての可能なシナリオを知っていて、難読化されたコードを表示するために必要な長さに誰でも実際に進んで進んでいくと想定するのは少し近視眼だと思います。私の現在のシナリオを考えてみましょう:
私は、かなり洗練された大規模なPHPベースのサイトを開発しているコンサルティング会社で働いています。プロジェクトは、他のコンサルタントが開発した他のサイトをホストしているクライアントのサーバーでホストされます。厳密には、私たちが作成するコードはすべてクライアントが所有しているため、ライセンスを付与することはできません。ただし、サーバーにアクセスできる他のコンサルタント(競合他社)は、最初にクライアントから許可を得ずにコードをコピーできます。したがって、難読化する真の理由があります。つまり、競合他社がコードを理解するために必要な労力を、作業のコピーをゼロから作成する努力よりも多くする必要があります。
任意の大きなページセットで問題なく機能する難読化プログラムについては、SD Thicket PHP難読化ツールを参照してください。主に識別子名をスクランブルすることによって動作します。控えめなアプリケーションから大規模なアプリケーションでは、これによりコードの理解が非常に難しくなる可能性があり、それが全体の目的です。
多くのPHPの「難読化ツール」が行う「eval(decode(encryptedprogramcode))」スキームにエネルギーを無駄にしません。これらは、どの呼び出しもその呼び出しを見つけることができるため、「難読化ツール」ではなく「エンコーダ」です。そしてeval-decodeを自分で実行し、デコードされたコードを取得します。
言語を正確に処理するパーサーを使用してPHPを処理します。プログラムが構文的に無効かどうかがわかります。さらに重要なことは、言語全体を正確に理解していることです。紛失したり混乱したりすることはなく、コードを壊すこともありません(コードのパブリックAPIを正しく識別できないなど、「誤って」難読化するとどうなるか)。
はい、識別子はページ間で同じように難読化されます。それを行わなかった場合、結果は機能しません。
私が見た中で最高のものはZend Guardです。
これを試してください:http : //www.pipsomania.com/best_php_obfuscator.do
最近、PHPプロジェクトを難読化するためにJavaで記述しました。ネット上に適切で互換性のある準備ができているものが見つからなかったため、saasとしてオンラインで公開することにしたので、誰でも無料で使用できます。互換性を最大にするために異なるスクリプト間で変数名を変更することはありませんが、ランダムロジックを使用して、すべての命令も非常にわかりにくくしています。文字列...すべて。私はそれがこのバグの多いcodeeclipseよりはるかに良いと信じています。それは、ちなみにPHPで書かれていて非常に遅いです:)
PHP難読化ツール、それは非常に困難にリバースエンジニアリング(例)を理解したりできるようにするツールのスクランブルPHPのソースコード。これにより、Webサイトでホストするか、顧客に出荷する必要があるソースコードの知的財産が大幅に保護されます。これは、SDのソースコード難読化ツールファミリのメンバーです。
:(
それはとにかく死んだソフトウェアです。今より良い、素晴らしいものがありますか?
SourceGuardianの使用は、クールで使いやすいGUIが付属しているため優れています。
ただし、注意してください。
おかしなライセンス条項に注意してください。
難読化は、潜在的なバグとセキュリティの脆弱性の別のレイヤーをプログラムに追加するだけです。しないでください。
難読化ソフトウェアを書く人は、たいていの場合、とにかく大ざっぱで、熟練していないようです。
コードが「素晴らしい」場合、クラッカーは、難読化されているかどうかに関係なく、非常に長い時間をかけて拡散します。誰もあなたのコードを知らない/気にしないのなら、おそらく彼らも知らないでしょう。