>  기사  >  백엔드 개발  >  php 소스코드 크랙 방지하는 방법

php 소스코드 크랙 방지하는 방법

(*-*)浩
(*-*)浩원래의
2019-10-15 13:34:244500검색

자신의 PHP 코드를 보호하고 암호화하세요.

php 소스코드 크랙 방지하는 방법

코드 난독화 + 암호화

구체적인 구현 아이디어는 base64로 코드를 암호화한 다음 문자열을 암호화하는 것입니다. base64 문자열 매핑(임의로 사전 난독화 생성)을 수행한 후 평가 실행을 수행하면 100% 크랙 및 복원이 가능합니다(권장 학습: PHP 비디오 튜토리얼)

대표 코드는 다음과 같습니다.

<?php

 function RandAbc($length = "") { // 返回随机字符串 
  $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
  return str_shuffle($str); 
 } 

 $filename = &#39;index.php&#39;; //要加密的文件 
 $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 = &#39;$&#39;.$q6.&#39;=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");$&#39;.$q1.&#39;=$&#39;.$q6.&#39;{3}.$&#39;.$q6.&#39;{6}.$&#39;.$q6.&#39;{33}.$&#39;.$q6.&#39;{30};$&#39;.$q3.&#39;=$&#39;.$q6.&#39;{33}.$&#39;.$q6.&#39;{10}.$&#39;.$q6.&#39;{24}.$&#39;.$q6.&#39;{10}.$&#39;.$q6.&#39;{24};$&#39;.$q4.&#39;=$&#39;.$q3.&#39;{0}.$&#39;.$q6.&#39;{18}.$&#39;.$q6.&#39;{3}.$&#39;.$q3.&#39;{0}.$&#39;.$q3.&#39;{1}.$&#39;.$q6.&#39;{24};$&#39;.$q5.&#39;=$&#39;.$q6.&#39;{7}.$&#39;.$q6.&#39;{13};$&#39;.$q1.&#39;.=$&#39;.$q6.&#39;{22}.$&#39;.$q6.&#39;{36}.$&#39;.$q6.&#39;{29}.$&#39;.$q6.&#39;{26}.$&#39;.$q6.&#39;{30}.$&#39;.$q6.&#39;{32}.$&#39;.$q6.&#39;{35}.$&#39;.$q6.&#39;{26}.$&#39;.$q6.&#39;{30};eval($&#39;.$q1.&#39;("&#39;.base64_encode(&#39;$&#39;.$q2.&#39;="&#39;.$c.&#39;";eval(\&#39;?>\&#39;.$&#39;.$q1.&#39;($&#39;.$q3.&#39;($&#39;.$q4.&#39;($&#39;.$q2.&#39;,$&#39;.$q5.&#39;*2),$&#39;.$q4.&#39;($&#39;.$q2.&#39;,$&#39;.$q5.&#39;,$&#39;.$q5.&#39;),$&#39;.$q4.&#39;($&#39;.$q2.&#39;,0,$&#39;.$q5.&#39;))));&#39;).&#39;"));&#39;; 

 $s = &#39;<?php &#39;."\n".$s."\n".&#39; ?>&#39;; 
 //echo $s; 
 // 生成 加密后的PHP文件 
 $fpp1 = fopen(&#39;temp_&#39;.$filename, &#39;w&#39;); 
 fwrite($fpp1, $s) or die(&#39;写文件错误&#39;); 

 ?>

opcode 발행

코드를 배포하지 말고 먼저 PHP 코드를 사전 컴파일하고 opcode를 배포하세요. PHP7 이후 opcache는 이 방법과 깊이 통합되어 소스 코드를 보호할 수 있지만 다시 디컴파일됩니다. opcode에 의해 크랙이 발생합니다.

난독화 + 암호화 + PHP 확장 쓰기

난독화 + 암호화 + PHP 확장 쓰기. 그러나 암호화 알고리즘을 직접 작성하고 PHP 코드를 암호화한 다음 C 음성을 사용하여 작성하지 않으면 모든 오픈 소스 PHP 확장은 크랙됩니다. 확장 프로그램을 직접 폐쇄 소스로 사용하면 다른 사람들은 귀하의 암호화 아이디어와 크래킹 아이디어를 알지 못하며 크랙될 가능성은 매우 적습니다.

Swoole Compiler

swoole에서 생성된 것은 생성된 opcode를 난독화하고 암호화하는 것입니다. 그러면 이것을 실행하려는 경우 zend 엔진이 난독화되고 암호화된 opcode를 인식할 가능성이 없다는 것이 분명합니다. , 그래서 실제로 zend를 다시 작성해야 하므로 지원하는 zend 엔진도 교체해야 합니다.

위 내용은 php 소스코드 크랙 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.