Code-Verschleierung + Verschlüsselung
Die eigentliche Verschlüsselung zählt nicht dazu base64 den Code verschlüsseln und dann String-Mapping für den String in Base64 durchführen (zufällig generierte Wörterbuch-Verschleierung)
Der repräsentative Code lautet wie folgt:
<?php function RandAbc($length = "") { // 返回随机字符串 $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; return str_shuffle($str); } $filename = 'index.php'; //要加密的文件 $T_k1 = RandAbc(); //随机密匙1 $T_k2 = RandAbc(); //随机密匙2 $vstr = file_get_contents($filename); $v1 = base64_encode($vstr); $c = strtr($v1, $T_k1, $T_k2); //根据密匙替换对应字符。 $c = $T_k1.$T_k2.$c; $q1 = "O00O0O"; $q2 = "O0O000"; $q3 = "O0OO00"; $q4 = "OO0O00"; $q5 = "OO0000"; $q6 = "O00OO0"; $s = '$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));'; $s = '<?php '."\n".$s."\n".' ?>'; //echo $s; // 生成 加密后的PHP文件 $fpp1 = fopen('temp_'.$filename, 'w'); fwrite($fpp1, $s) or die('写文件错误'); ?>
Verwirrte verstümmelte Codezeichen
Code-Verschleierungsvariablen und andere Dinge ähneln dem Prinzip von 1, aber die Zeichenfolge wird in Zeichen zwischen ASCII 127 und 255 geändert, die nicht menschlich sind und nicht verstanden werden können vom Herausgeber Das Ergebnis ist 100 % Es ist nur eine Frage der Zeit, bis es geknackt und wiederhergestellt werden kann.
Opcode verteilen
Verteilen Sie den Code nicht, sondern kompilieren Sie zuerst den PHP-Code und verteilen Sie den Opcode nach PHP7 Sie können diese Methode verwenden, um den Quellcode zu schützen, er wird jedoch auch durch den Opcode dekompiliert und geknackt.
PHP-Erweiterung verschleiern + verschlüsseln + schreiben
PHP-Erweiterung verschleiern + verschlüsseln + schreiben, aber solange es sich um eine Open-Source-PHP-Erweiterung handelt, wird sie geknackt, es sei denn Sie schreiben den Verschlüsselungsalgorithmus selbst und verwenden dann die C-Stimme, um selbst eine Closed-Source-Erweiterung zu schreiben. Andere kennen Ihre Verschlüsselungs- und Cracking-Ideen nicht, daher ist die Wahrscheinlichkeit, geknackt zu werden, sehr gering.
Swoole Compiler
Der von Swoole besteht darin, den generierten Opcode zu nehmen und dann die Verschlüsselung zu verschleiern. Wenn Sie dies ausführen möchten, ist es das Es ist offensichtlich, dass die Zend-Engine den verschleierten und verschlüsselten Opcode nicht erkennen kann. Daher muss Zend tatsächlich neu geschrieben werden, sodass auch die unterstützende Zend-Engine geändert werden muss.
Empfohlenes Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo schützen Sie den Quellcode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!