Is er een code obfuscator voor PHP?

Heeft iemand een goede obfuscator voor PHP gebruikt? Ik heb er een paar geprobeerd, maar ze werken niet voor hele grote projecten. Ze kunnen niet omgaan met variabelen die in het ene bestand zijn opgenomen en bijvoorbeeld in een ander bestand worden gebruikt.

Of heb je andere trucs om de verspreiding van je code te stoppen?


Antwoord 1, autoriteit 100%

Je kunt PHP protectproberen, een gratis PHP-obfuscator om je PHP-code te verdoezelen.< br>
Het is erg mooi, makkelijk te gebruiken en ook nog eens gratis.
EDIT: Deze service is niet meer live.

Wat betreft wat anderen hier hebben geschreven over het niet gebruiken van verduistering omdat het kan worden verbroken, enz.:
Ik heb maar één ding om ze te beantwoorden: doe je huisdeur niet op slot, want iedereen kan je slot openen.
Dit is precies het geval, verduistering is niet bedoeld om 100% codediefstal te voorkomen. Het hoeft er alleen maar een tijdrovende klus van te maken, dus het zal goedkoper zijn om de originele codeur te betalen. Ik hoop dat dit helpt.


Antwoord 2, autoriteit 44%

Mensen zullen je verduisteringen aanbieden, maar geen enkele mate van verduistering kan voorkomen dat iemand bij je code komt. Geen. Als uw computer het kan uitvoeren, of in het geval van films en muziek als het het kan afspelen, kan de gebruiker het gebruiken. Zelfs het compileren naar machinecode maakt het werk een beetje moeilijker. Als je een obfuscator gebruikt, houd je jezelf voor de gek. Erger nog, u verbiedt uw gebruikers ook om bugs op te lossen of wijzigingen aan te brengen.

Muziek- en filmmaatschappijen zijn hier nog niet helemaal mee in het reine, ze geven nog steeds miljoenen uit aan DRM.

In geïnterpreteerde talen zoals PHP en Perl is het triviaal. Perl had vroeger veel code-obfuscators, maar toen realiseerden we ons dat je ze triviaal kunt decompileren.

perl -MO=Deparse some_program

PHP heeft dingen als DeZenderen Toon mijn code.

Mijn advies? Schrijf een vergunning en schakel een advocaat in. De enige andere optie is om de code niet te geven en in plaats daarvan een gehoste service uit te voeren.

Zie ook het perlfaq artikel over het onderwerp.


Antwoord 3, autoriteit 12%

Niets zal perfect zijn. Als je gewoon iets wilt om niet-programmeurs te stoppen, dan is hier een klein script dat ik heb geschreven dat je kunt gebruiken:

<?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);

Antwoord 4, autoriteit 8%

Ik weet niet zeker of je verduistering van een geïnterpreteerde taal als zinloos kunt bestempelen (ik kan geen commentaar toevoegen aan het bericht van Schwern, dus hier komt een nieuw item).

Ik denk dat het een beetje kortzichtig is om aan te nemen dat je alle mogelijke scenario’s kent waarin iemand code zou willen verdoezelen, en je gaat ervan uit dat iedereen werkelijk bereid zal zijn om tot het uiterste te gaan om die code te bekijken als deze eenmaal is verdoezeld. Overweeg mijn huidige scenario:

Ik werk voor een adviesbureau dat een grote en redelijk geavanceerde op PHP gebaseerde site ontwikkelt. Het project zal worden gehost op de server van een klant die andere sites host die door andere adviesbureaus zijn ontwikkeld. Technisch gezien is elke code die we schrijven eigendom van de klant, dus we kunnen er geen licentie voor geven. Elk ander adviesbureau (concurrent) met toegang tot de server kan onze code echter kopiëren zonder eerst toestemming van de klant te krijgen. We hebben daarom een ​​echte reden voor verduistering – om de moeite te doen die een concurrent nodig heeft om onze code te begrijpen, meer dan de moeite om een ​​kopie van ons werk helemaal opnieuw te maken.


Antwoord 5, autoriteit 6%

Bekijk onze SD Thicket PHP Obfuscatorvoor een obfuscator die prima werkt met willekeurig grote sets pagina’s. Het werkt voornamelijk door identifier-namen te versleutelen. Bij bescheiden tot grote applicaties kan dit de code extreem moeilijk te begrijpen maken, wat het hele doel is.

Het verspilt geen energie aan “eval(decode(encodedprogramcode))” schema’s, die veel PHP “obfuscators” doen [dit zijn “encoder”s, niet “obfuscator” s], omdat elke kluit die oproep kan vinden en de eval-decode zelf kan uitvoeren en de gedecodeerde code kan krijgen.

Het gebruikt een taalspecifieke parser om de PHP te verwerken; het zal u vertellen of uw programma syntactisch ongeldig is. Wat nog belangrijker is, het kent de hele taal precies; het zal niet verloren gaan of in de war raken, en het zal je code niet breken (anders dan wat er gebeurt als je “onjuist” verdoezelt, bijvoorbeeld als je de openbare API van de code niet correct identificeert).

Ja, het vertroebelt identificatiegegevens op identieke wijze over pagina’s; als het dat niet deed, zou het resultaat niet werken.


Antwoord 6, autoriteit 6%

De beste die ik heb gezien is Zend Guard.


Antwoord 7, autoriteit 4%

Probeer deze eens: http://www.pipsomania.com/best_php_obfuscator.do

Onlangs heb ik het in Java geschreven om mijn PHP-projecten te verdoezelen, omdat ik geen goede en compatibele kant en klare geschreven op het net kon vinden, besloot ik het als saas online te zetten, zodat iedereen het gratis kan gebruiken. Het verandert de namen van variabelen tussen verschillende scripts niet voor maximale compatibiliteit, maar verdoezelt ze erg goed, met willekeurige logica, ook elke instructie. Snaren… alles. Ik geloof dat het veel beter is dan deze code-eclipse met fouten, die trouwens in PHP is geschreven en erg traag is 🙂


Antwoord 8

Thicket™ Obfuscator voor PHP

De PHP Obfuscator-tool vervormt de PHP-broncode om het erg moeilijk te begrijpen of te reverse-engineeren (voorbeeld). Dit biedt een aanzienlijke bescherming voor het intellectuele eigendom van de broncode dat op een website moet worden gehost of naar een klant moet worden verzonden. Het is een lid van SD’s familie van Source Code Obfuscators.


Antwoord 9

Het gebruik van SourceGuardian is goed omdat het wordt geleverd met een coole en gebruiksvriendelijke GUI.

Maar let op:

Let op de -nogal grappige- licentievoorwaarden.

  • Je mag er maar 1 per machine draaien – tot nu toe is dit acceptabel
  • Als je de opdrachtregelinterface op een andere machine wilt gebruiken, zeg je webserver, JE HEBT EEN ANDERE LICENTIE NODIG(Ja, het is grappig en ik hoor je ook lachen).

Antwoord 10

Obfuscatie voegt alleen maar een nieuwe laag potentiële bugs en beveiligingsproblemen toe aan uw programma. Doe het alsjeblieft niet.

Het soort mensen dat verduisteringssoftware schrijft, lijkt hoe dan ook meestal erg schetsmatig en ongeschoold.

Als je code “geweldig” is, zullen crackers er alles aan doen om deze te verspreiden, ongeacht of deze al dan niet versluierd is. Als niemand je code kent/omgeeft, zullen ze dat waarschijnlijk ook niet.

Other episodes