D2th3 3 Denunciar post Postado Setembro 20, 2010 Amigos, É possível eu remover os espaços e comentários dos fontes do PHP? Alguém pode me dar uma idéia por onde procurar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Setembro 20, 2010 Desculpe, mas não entendi. <? echo 1; //ISSO EH UM COMENTARIO echo 2; #ISSO TAMBEM echo 3; /* ISSO TAMBEM */ ?> Resultado: 123. Removendo, o resultado será o mesmo. <? echo 1; echo 2; echo 3; ?> Resultado: 123. Era essa sua dúvida? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 20, 2010 no estilo obfuscador ? online agora, não encontrei nenhum... mas dá uma pesquisada por este termo.. o Zend faz algo semelhante.. e tem mais alguns pagos por ai. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Setembro 20, 2010 Ah, sim... Agora entendi! Você pode utilizar o sistema de 'search and replace' do seu editor de texto, criando expressões regulares para fazer o serviço. Criar a expressão é chatinho, mas depois fica tudo automatizado, daí é só correr pro abraço. :D Compartilhar este post Link para o post Compartilhar em outros sites
D2th3 3 Denunciar post Postado Setembro 21, 2010 É algo assim: <? echo 1; //ISSO EH UM COMENTARIO echo 2; #ISSO TAMBEM echo 3; /* ISSO TAMBEM */ ?> Fica <? echo 1;echo 2;echo 3;?> Já fiz alguns testes com o ZEND e não funcionou, fora que o software é muito caro e eu não gostei do resultado. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Setembro 21, 2010 Faça com ERs como eu disse acima. Você precisará de uma ER para retirar os comentários e espaços, e outra para alterar as variáveis, caso queira deixar ainda mais ofuscado. Links que recomendo a leitura: http://www.raizlabs.com/software/phpobfuscator/ http://www.htmlstaff.org/ver.php?id=2142 http://www.codeeclipse.com/index.php (esse faz o q você quer, online) http://www.profissionaisti.com.br/2008/11/proteja-seu-codigo-fonte-php/ A minha ideia é fazer como nesse codeeclipse. A diferença é que automatizado. Daria inclusive para utilizar o próprio PHP para varrer determinados diretorios e gerar um sistema completamente novo, mas "encriptografado". Acho isso interessante. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Setembro 21, 2010 É só utilizar Tokenizer: Código com comentários Teste.php <?php /** * Teste de remoção de comentários */ class Test { /** * Uma propriedade qualquer que terá um valor de teste * @var mixed */ private $property; /** * Construtor do objeto que irá definir o valor base da propriedade * @param $value mixed Um valor qualquer */ public function __construct( $value ){ $this->property = $value; } /** * Recupera o valor da propriedade * @return mixed */ public function getPropertyValue(){ return $this->property; } } // Criando o objeto $teste = new Test( 'some value' ); // Exibe o valor da propriedade var_dump( $teste->getPropertyValue() ); Exemplo de remoção de comentários testar.php <?php foreach ( token_get_all( file_get_contents( 'teste.php' ) ) as $token ){ if ( !is_int( $token[ 0 ] ) ) echo $token[ 0 ]; else { switch ( $token[ 0 ] ){ case T_COMMENT: case T_DOC_COMMENT: break; default: echo $token[ 1 ]; } } } Saída: <?php class Test { private $property; public function __construct( $value ){ $this->property = $value; } public function getPropertyValue(){ return $this->property; } } $teste = new Test( 'some value' ); var_dump( $teste->getPropertyValue() ); Exemplo de remoção de comentários, quebras de linha e espaços: testar.php <?php foreach ( token_get_all( file_get_contents( 'teste.php' ) ) as $token ){ if ( !is_int( $token[ 0 ] ) ) echo $token[ 0 ]; else { switch ( $token[ 0 ] ){ case T_COMMENT: case T_DOC_COMMENT: break; case T_WHITESPACE: echo preg_replace( "/(\r\n|\r|\n|\s)+/" , ' ' , $token[ 1 ] ); break; default: echo $token[ 1 ]; } } } Saída: <?php class Test { private $property; public function __construct( $value ){ $this->property = $value; } public function getPropertyValue(){ return $this->property; } } $teste = new Test( 'some value' ); var_dump( $teste->getPropertyValue() ); http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br.php.net/manual/en/book.tokenizer.php Compartilhar este post Link para o post Compartilhar em outros sites
D2th3 3 Denunciar post Postado Setembro 21, 2010 Pessoal... agradecido pelas várias idéias. Testei o Obfuscador da Raizlab e não funcionou legal... ele criptografa o código muito bem, porém quando entra banco de dados e sessões ele dificulta um pouco e a programação começou a dar mensagens de erro e não comportar conforme foi programado. Pode ser necessário eu fazer mais testes, ler manual etc... O codeEclipse torna-se inviável por ser on-line, quando trabalhamos com uma aplicação grande. O ZEND é totalmente inviável pelo valor, mesmo porque testei um trial e deu vários erros. Gostei do Tokenizer, pois talvez criptografar o código não seja tão interessante, mas tirar os comentários que é o pulo do gato nos scripts o que ajuda na manutenção, correções de problemas e melhorias no código, já seria o suficiente para atrapalhar muito a vida de quem quiser roubar o script. Analisem comigo. O trabalho que o programador terá para estudar meu código, entender o que eu quero de resultado (sem ajuda dos comentários que eu coloco), re-diagramar verticalmente o script de uma aplicação grande... ele já merece um prêmio e ficar com o sistema para ele. Pois ele levará mais tempo para isso do que escrever o seu próprio e o empresário pagará uma nota para alguém estudar isso. Mesmo porque os obfuscadores tem a engenharia reversa e de nada adiantaria. Obrigado a todos Compartilhar este post Link para o post Compartilhar em outros sites