Há um código ofuscador para PHP? [fechado]

Alguém usou um bom ofuscador para o PHP? Já tentei alguns, mas não trabalham para grandes projectos. Eles não podem lidar com variáveis que são incluídas em um arquivo e usadas em outro, por exemplo.

Ou tem outros truques para impedir a difusão do seu código?

Author: halfer, 2008-10-24

10 answers

Pode tentar PHP protect que é um ofuscador de PHP livre para ofuscar o seu código PHP.
É muito agradável, fácil de usar e também gratuito.

Quanto ao que outros escreveram aqui sobre não usar ofuscação porque pode ser quebrado etc:
Só tenho uma coisa para lhes responder: não tranque a porta da sua casa porque qualquer um pode arrombar a sua fechadura.
Isso é exatamente o caso, ofuscação não é destinada a evitar 100% roubo de código. Só precisa de o tornar uma tarefa demorada. por isso, será mais barato pagar o codificador original. Espero que isto ajude.

 218
Author: yossi, 2016-05-24 18:09:08
As pessoas vão oferecer-vos ofuscadores, mas nenhuma quantidade de ofuscação pode impedir alguém de chegar ao vosso código. Nenhum. Se o seu computador pode executá-lo, ou no caso de filmes e música se ele pode tocá-lo, o usuário pode obtê-lo. Mesmo compilá-lo para código de máquina apenas torna o trabalho um pouco mais difícil. Se usares um ofuscador, estás a enganar-te a ti próprio. Pior, Você também está proibindo que seus usuários consertem bugs ou façam modificações. Empresas de música e cinema ainda não se conformaram com isto, ainda gastam milhões em DRM.

Em linguagens interpretadas como PHP e Perl é trivial. O Perl tinha muitos códigos obscuros, depois percebemos que se pode decompor trivialmente.

perl -MO=Deparse some_program

O PHP tem coisas como DeZender e mostra o meu código .

O meu conselho? Escreve uma licença e arranja um advogado. A única outra opção é não dar o código e, em vez disso, executar um serviço hospedado.

Ver também o entrada relativa ao perlfaq.

 110
Author: Schwern, 2012-12-31 08:33:50
Nada será perfeito. Se você só quer algo para parar não-programadores, então aqui está um pequeno script que eu escrevi você pode usar:
<?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);
 27
Author: John, 2010-09-23 18:20:54

Não tenho certeza se você pode rotular ofuscação de uma linguagem interpretada como inútil (Eu sou incapaz de adicionar um comentário ao post de Schwern, então aqui vai uma nova entrada).

Acho que é um pouco míope assumir que sabemos todos os cenários possíveis em que alguém gostaria de ocultar o código, e assumimos que qualquer um estará disposto a fazer o que for preciso para ver esse código uma vez ofuscado. Considere o meu cenário atual: Trabalho para uma empresa de consultoria. isso está desenvolvendo um grande e bastante sofisticado site baseado em PHP. O projeto será hospedado no servidor de um cliente que está hospedando outros sites desenvolvidos por outras consultorias. Tecnicamente, qualquer código que escrevermos pertence ao cliente, por isso não podemos licenciá-lo. No entanto, qualquer outra consultoria (concorrente) com acesso ao servidor pode copiar nosso código sem a permissão do cliente primeiro. Por conseguinte, temos uma verdadeira razão para ofuscar - fazer o esforço necessário para que um concorrente compreender o nosso código mais do que o esforço de criar uma cópia do nosso trabalho do zero.
 20
Author: tomfumb, 2011-03-05 00:48:33
Para um ofuscador que funciona bem com conjuntos arbitrariamente grandes de páginas. Ele opera principalmente por codificar nomes identificadores. Com aplicações modestas a grandes, isso pode tornar o código extremamente difícil de entender, que é todo o propósito.

Não desperdiça energia em esquemas" eval(decode(encodedprogramcode)", que muitos" ofuscadores "de PHP fazem [estes são "codificadores" s, não "ofuscadores" s], porque qualquer clod pode encontrar essa chamada e executar o eval-decodificar-se e obter o código descodificado.

Ele usa um analisador de linguagem precisa para processar o PHP; ele lhe dirá se seu programa é sintaticamente inválido. Mais importante, ele conhece toda a linguagem precisamente; ele não se perderá ou confundirá, e não quebrará seu código (outro que o que acontece se você ofusca "incorretamente", por exemplo, não consegue identificar a API pública do código corretamente).

Sim, ofusca identificadores. identicamente através de páginas; se não fizesse isso, o resultado não funcionaria.
 16
Author: Ira Baxter, 2012-05-31 13:06:06

O melhor que vi foi Guarda Zend .

 14
Author: CMS, 2008-10-24 07:30:55
Tenta este. http://www.pipsomania.com/best_php_obfuscator.do

Recentemente eu escrevi em Java para ofuscar meus projetos PHP, porque eu não encontrei nenhum bom e compatível pronto escrito na net, eu decidi colocá-lo online como saas, então todo mundo usá-lo gratuitamente. Ele não muda nomes de variáveis entre diferentes scripts para máxima compatibilidade, mas está ofuscando-os muito bem, com lógica aleatória, cada instrução também. Cadeia... todo. Acredito que é muito melhor. então este codeeclipse buggy, que é por sinal escrito em PHP e muito lento:)

 9
Author: PatlaDJ, 2010-03-26 21:42:01

Thicketâ„¢ ofuscador para PHP

A Ferramenta PHP Ofuscator baralha o código-fonte PHP para tornar muito difícil de entender ou de engenharia reversa (exemplo). Isso proporciona proteção significativa para a propriedade intelectual do código fonte que deve ser hospedado em um site ou enviado para um cliente. É um membro da família de Ofuscadores do código fonte da SD.

 3
Author: Praveen Kumar Purushothaman, 2016-04-03 22:02:38

Usar SourceGuardian é bom como vem com um GUI fresco e fácil de usar.

Mas esteja ciente:

Preste atenção às suas condições de licenciamento-bastante engraçadas.

  • só podes correr 1 por máquina-até agora isto é aceitável
  • Se você quiser executar a interface da linha de comando em outra máquina, diga seu servidor web, você vai precisar de outra licença (sim, é engraçado e eu posso ouvi-lo rir também).
 2
Author: Herr, 2014-01-06 15:26:16

Ofuscação é apenas adicionar outra camada de bugs potenciais e vulnerabilidades de segurança ao seu programa. Por favor, não o faças.

O tipo de pessoas que escrevem software de ofuscação, normalmente, parece muito vago e pouco qualificado.

Se o teu código é "grande", as bolachas vão esforçar-se muito para espalhá-lo, independentemente de ser ou não ofuscado. Se ninguém sabe/se importa com o seu código, provavelmente também não.