PHP용으로 좋은 난독화기를 사용한 사람이 있습니까?몇 개 해봤는데 큰 프로젝트에는 잘 안 돼요.예를 들어 한 파일에 포함되어 다른 파일에 사용되는 변수를 처리할 수 없습니다.
아니면 코드 확산을 막기 위한 다른 요령이 있나요?
질문에 대한 답변
무료 PHP 난독화기인 PHP protect를 사용하여 PHP 코드를 난독화할 수 있습니다. 편집: 이 서비스는 더 이상 활성화되지 않습니다.
매우 멋지고 사용하기 쉬우며 무료입니다.
깨질 수 있기 때문에 난독화를 사용하지 않는 것에 대해 다른 사람이 여기에 기재한 내용에 대해서는:
저는 그들에게 대답할 것이 하나 있습니다.누구나 여러분의 자물쇠를 딸 수 있으니 집 문을 잠그지 마세요.
난독화가 100% 코드 도용을 방지하는 것은 아닙니다.시간이 걸리는 작업만 하면 되기 때문에 원래 코더에 지불하는 것이 더 저렴합니다.이게 도움이 됐으면 좋겠다.
사람들은 당신에게 난독기를 제공하겠지만, 아무리 난독화해도 누군가가 당신의 코드에 접근하는 것을 막을 수는 없습니다.없습니다. 컴퓨터에서 실행할 수 있다면, 영화나 음악의 경우 재생이 가능하다면 사용자가 이용할 수 있습니다.기계어로 컴파일하는 것조차 작업을 조금 더 어렵게 만들 뿐입니다.만약 당신이 난독기를 쓴다면, 당신은 스스로를 속이는 것입니다.게다가 사용자가 버그를 수정하거나 수정하는 것도 금지하고 있습니다.
음악 및 영화 회사들은 아직 이 문제를 받아들이지 못하고 있으며, 여전히 DRM에 수백만 달러를 투자하고 있습니다.
PHP나 Perl과 같은 통역 언어에서는 이것은 사소한 것입니다.Perl은 많은 코드 난독화기를 가지고 있었는데, 우리는 당신이 그것들을 3차적으로 디컴파일할 수 있다는 것을 깨달았다.
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 $outfilen"; $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);
해석된 언어의 난독화를 무의미하다고 라벨 붙일 수 있을지 모르겠습니다(슈베른의 투고에 코멘트를 추가할 수 없기 때문에 새로운 엔트리를 보내드립니다).
누군가 코드를 난독화하고자 하는 모든 시나리오를 알고 있다고 가정하는 것은 조금 근시안적이라고 생각합니다. 그리고 당신은 누구나 일단 난독화되면 그 코드를 보기 위해 필요한 모든 것을 기꺼이 할 것이라고 가정합니다.현재 시나리오를 고려합니다.
저는 컨설팅 회사에서 일하고 있습니다.그 회사는 크고 정교한 PHP 기반의 사이트를 개발하고 있습니다.이 프로젝트는 다른 컨설팅 회사가 개발한 다른 사이트를 호스팅하는 클라이언트의 서버에서 호스팅됩니다.기술적으로는 우리가 쓰는 모든 코드는 고객 소유이기 때문에 라이선스를 부여할 수 없습니다.다만, 서버에 액세스 할 수 있는 다른 컨설턴트(경쟁사)는, 최초로 클라이언트의 허가를 받지 않고, 당사의 코드를 카피할 수 있습니다.따라서 우리는 난독화의 진정한 이유를 가지고 있습니다.-경쟁사가 우리의 코드를 이해하는데 필요한 노력을 처음부터 우리의 작품을 복사하는 노력보다 더 많이 하기 위해서입니다.
SD Thicket PHP 난독화기는 임의의 큰 페이지 세트로 정상적으로 동작하는 난독화기에 대해 참조하십시오.주로 ID 이름을 스크램블링함으로써 동작합니다.보통 어플리케이션에서 대규모 어플리케이션까지 이 경우 코드 전체를 이해하기 매우 어려울 수 있습니다.
많은 PHP “암독화자”가 하는 “eval (decod (encoded program code)” 스킴에 에너지를 낭비하지 않습니다(이것은 “암독화자”가 아닌 “encoder” 스킴입니다). 왜냐하면 어떤 클로드라도 호출을 찾아 eval-decode를 실행하여 디코딩된 코드를 얻을 수 있기 때문입니다.
이것은 언어 정밀도 파서를 사용하여 PHP를 처리합니다. 프로그램이 구문적으로 유효하지 않은지 여부를 알려줍니다.더 중요한 것은 언어 전체를 정확하게 알고 있기 때문에 분실이나 혼동을 일으키지 않으며 코드를 망가뜨리지 않는다는 것입니다(그렇지 않으면 “잘못”으로 난독화해도 코드의 퍼블릭 API를 올바르게 식별하지 못할 수 있습니다.
네, 여러 페이지에서 동일하게 식별자를 난독화합니다. 그렇지 않으면 결과가 작동하지 않습니다.