YAPHPO är "Yet Another PHP Obfuscator". Baserat ursprungligen på koden "PHPCodeBuster" av Martijn Loots är YAPHPO verkliga styrka hittas inom ramen för kod som utvecklats kring denna kärna.
Denna ram av kod ger välbehövlig kundanpassning för PHP-utvecklare som behöver fördunkla sin kod. Den viktigaste funktionen är "klev förvirring".
Det finns inget värre än att mata din kod i en Obfuscator och ges tillbaka en klump av förvanskad kod som du bara kan hoppas är korrekt. Vår klev förvirring kan du se till att processen fungerade korrekt. Exempelvis kan det första steget involvera bara fördunklar variabelnamn.
På så sätt kan du jämföra din ursprungliga koden med utsignalen från detta steg och inte övervinnas genom skillnader. Du kan faktiskt se till att på denna punkt, har endast variabelnamn ändrats (och ändrade korrekt). Det andra steget kan innebära att ta bort kommentarer. Allt du behöver göra är att jämföra utsignalen från det första steget med utsignalen från det andra steget och se till att kommentarerna och endast de kommentarer har tagits bort.
Detta är ett utmärkt sätt att snabbt få sinnesro att din kod fortfarande fungerar efter förvirring! Naturligtvis behöver du inte gå igenom allt detta process om du inte vill. Alla de "åtgärder" görs på en gång, men förvaras i separata kataloger. Om du vill, bara ta det sista katalogen och du har din helt förvanskad källa.
En annan viktig sak om fördunklar din kod är att vissa variabler och funktioner som inte bör förvrängd. Till exempel, om din kod är en modul för ett Content Management System av olika slag, då du uppenbarligen inte vill ändra anrop till funktioner som ligger utanför din kontroll. YAPHPO behandlar detta genom att låta dig definiera "inkluderar" och "utesluta" listor för varje typ av förvirring.
Till exempel kan du använda ett bibliotek som ger alla dina databasfunktioner och så att du inte vill ändra samtal till dessa särskilda funktioner. Du kan lägga till vart och ett av dessa funktionsnamn till undantagslistan, och de kommer inte att påverkas av förvirring processen. Ännu bättre, om de alla börjar med "db_", till exempel, bara lägga till "db_ *" i listan. Ja, stöder jokertecken.
På baksidan av detta är också sant: kanske din kod ger ett API för andra utvecklare. Du kan lägga till "offentliga" funktioner och variabler till undantagslistan och på så sätt alla andra kan fortfarande använda dessa funktioner och variabler som du anger, utan att kunna läsa resten av din kod.
Till skillnad från en hel del äldre obfuscators använder YAPHPO PHP egen tokenizer. Vad betyder det här? En hel del äldre obfuscators försökte tolka ut din kod och försöka räkna ut vad varje del av din kod var. YAPHPO, å andra sidan, går i huvudsak din kod block till PHP själv, som tolkar, analyserar och markerar upp din kod innan de passerar den tillbaka till YAPHPO. Inga fler försöker att se till att din kod är godtagbar för obfuscator: om PHP förstår din kod, då ni alla, men garanterat att YAPHPO kommer också. Den andra stora sak om detta är att det är snabbare, också!
YAPHPO kommer att arbeta med en hel katalog (plus kataloger) av källkoden för dig, så du behöver inte ens att arbeta på varje fil i taget. Den kraftfulla "inkluderar" och "utesluta" listor är användbara för filer också, så att du kan sluta fördunklar och hela filen, grupp av filer eller kataloger lätt.
Till skillnad från alla andra obfuscators som vi känner till, kommer YAPHPO även fördunkla dina konstanter.
Slutligen, eftersom YAPHPO matar helt giltigt PHP (dock praktiskt taget oläslig för en normal person) finns det ingen anledning att se till att det några särskilda tillägg som är installerade på servrar där dina skript kommer att köras. Andra PHP kodare som inte obfuscators "kompilera" koden men kräver tillägg installeras för att låta dem köra på servern. Genom att använda YAPHPO, behöver du inte oroa dig för dessa förlängningar installeras.
Bäst av allt, är YAPHPO helt gratis
Vad är nytt i den här versionen:
- Frisläppandet av YAPHPO v1.0.1 är i huvudsak en liten buggfix release. Om du inte har korta taggar inaktiveras och du inte använder statiska klasser, är valfritt här uppdateringen.
Kommentarer hittades inte