Y a-t-il un code obfuscator pour PHP? [fermé]
Quelqu'un a-t-il utilisé un bon brouilleur pour PHP? J'en ai essayé, mais ça ne marche pas pour les grands projets. Ils ne peuvent pas gérer les variables qui sont incluses dans un fichier et utilisées dans un autre, par exemple.
Ou avez-vous d'autres astuces pour arrêter la propagation de votre code?
10 réponses
vous pouvez essayer PHP protect qui est un brouilleur PHP libre pour brouiller votre code PHP.
Il est très agréable, facile à utiliser et gratuit.
quant à ce que d'autres ont écrit ici sur le fait de ne pas utiliser l'obscurcissement parce qu'il peut être cassé etc:
Je n'ai qu'une chose à répondre, ne pas verrouiller votre porte, parce que n'importe qui peut choisir de votre serrure.
C'est exactement le cas, l'obscurcissement n'est pas censé empêcher le vol de code à 100%. Il suffit d'en faire une tâche fastidieuse pour qu'il soit moins coûteux de payer le codeur d'origine. Espérons que cette aide.
les gens vous offriront des brouilleurs, mais aucun brouillage ne peut empêcher quelqu'un d'atteindre votre code. Aucun. Si votre ordinateur peut exécuter ou, dans le cas des films et de la musique s'il peut jouer, l'utilisateur peut obtenir à elle. Même le compiler en code machine rend la tâche un peu plus difficile. Si vous utilisez un obfuscateur, vous êtes juste tromper vous-même. Pire, vous interdisez également à vos utilisateurs de corriger des bogues ou d'apporter des modifications.
musique et les sociétés de cinéma n'ont pas encore tout à fait accepté cela, ils dépensent encore des millions en DRM.
dans les langues interprétées comme PHP et Perl c'est trivial. Perl avait l'habitude d'avoir beaucoup d'obfuscators de code, puis nous avons réalisé que vous pouvez trivialement les décompiler.
perl -MO=Deparse some_program
PHP a des choses comme DeZender et Afficher mon Code .
mon conseil? Écrire une licence et obtenir un avocat. La seule une autre option consiste à ne pas donner le code et à exécuter un service hébergé.
Voir aussi perlfaq entrée sur le sujet .
rien ne sera parfait. Si vous voulez juste quelque chose pour arrêter les non-programmeurs alors voici un petit script que j'ai écrit Vous pouvez utiliser:
<?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);
Je ne suis pas sûr que vous puissiez étiqueter l'obscurcissement d'un langage interprété comme inutile (je suis incapable d'ajouter un commentaire au post de Schwern, alors voici une nouvelle entrée).
je pense qu'il est un peu myope de supposer que vous connaissez tous les scénarios possibles où quelqu'un voudrait brouiller le code, et vous supposez que quelqu'un sera réellement prêt à aller à toutes les longueurs nécessaires pour voir ce code une fois brouillé. Considérez mon scénario actuel:
je travaille pour une société de conseil qui développe un grand et assez sophistiqué site basé PHP. Le projet sera hébergé sur le serveur d'un client qui héberge d'autres sites mis au point par d'autres consultants. Techniquement, tout code que nous écrivons appartient au client, donc nous ne pouvons pas l'autoriser. Cependant, tout autre consultant (concurrent) ayant accès au serveur peut copier notre code sans l'autorisation préalable du client. Nous avons donc une véritable raison d'obscurcir - de faire l'effort requis pour un concurrent de comprendre notre code plus de l'effort de créer une copie de notre travail à partir de zéro.
Voir notre SD Fourré PHP Obfuscator pour un obfuscateur qui fonctionne très bien avec arbitrairement grands ensembles de pages. Il fonctionne principalement en brouillant les noms des identificateurs. Avec des applications de taille modeste à grande, cela peut rendre le code extrêmement difficile à comprendre, ce qui est tout le but.
il ne gaspille pas d'énergie sur " eval (decode ( codedprogramcode )) "schémas, que beaucoup de PHP "obfuscators" faire [ce sont des"encoder "s, pas des"obfuscator" s], parce que n'importe quel clod peut trouver cet appel et exécuter l'eval-decode lui-même et obtenir le code décodé.
il utilise un analyseur de langage précis pour traiter le PHP; il vous indiquera si votre programme est syntaxiquement invalide. Plus important encore, il connaît le langage entier avec précision; il ne se perdra pas ou ne sera pas confus, et il ne cassera pas votre code (autre que ce qui se passe si vous obscurcissez "incorrectement", par exemple, ne parviennent pas à identifier L'API publique de le code correctement).
Oui, il masque les identificateurs de façon identique à travers les pages; s'il ne le faisait pas, le résultat ne fonctionnerait pas.
essayez celui-ci: http://www.pipsomania.com/best_php_obfuscator.do
récemment je l'ai écrit en Java pour obscurcir mes projets PHP, parce que je n'ai trouvé aucun bon et compatible prêt écrit sur le net, j'ai décidé de le mettre en ligne comme saas, donc tout le monde l'utilise gratuitement. Il ne change pas les noms des variables entre les différents scripts pour une compatibilité maximale, mais les obscurcit très bien, avec une logique aléatoire, chaque instruction aussi. Chaîne... tout. Je crois que c'est beaucoup mieux que ce buggy codeeclipse, qui est d'ailleurs écrit en PHP et très lent:)
le PHP Obfuscator outil brouille le code source PHP pour le rendre très difficile à comprendre ou l'ingénierie inverse (exemple). Cela assure une protection importante à la propriété intellectuelle du code source qui doit être hébergée sur un site web ou envoyée à un client. C'est un membre de la famille des brouilleurs de Code Source du SD.
utiliser SourceGuardian est bon car il est livré avec un frais et facile à utiliser GUI.
mais attention:
faites attention à ses conditions de licence - assez drôles.
- vous êtes seulement autorisé à exécuter 1 par machine-jusqu'à présent, c'est acceptable
- si vous voulez exécuter l'interface en ligne de commande sur une autre machine, dites votre serveur web, vous aurez besoin D'un autre Licence (Oui, c'est drôle et je peux vous entendre rire aussi).
L'obscurcissement ne fait qu'ajouter une autre couche de bogues potentiels et de vulnérabilités de sécurité à votre programme. S'il vous plaît ne pas le faire.
le genre de gens qui écrivent des logiciels de brouillage semblent généralement très vagues et non qualifiés de toute façon.
si votre code est" grand", crackers vont à travers de grandes longueurs pour le diffuser, indépendamment de savoir si oui ou non il est obscurci. Si personne ne se soucie de votre code, ils ne le feront probablement pas non plus.