non ho capito cosa serve la variabile $tp nella funzione del file b.php![]()
![]()
![]()
![]()
![]()
non ho capito cosa serve la variabile $tp nella funzione del file b.php![]()
![]()
![]()
![]()
![]()
skidx, sourceguardian critta proprio il codice, non lo offusca, quindi serve lui installato per decrittarlo ... invece un offuscatore mantiene inalterati i tempi di esecuzione e la memoria totale![]()
un altra cosa FONDAMENTALE sarebbe un file di descrizione che descrive al programma come sono stati offuscati i file ... in modo da rinominare tutte le funzioni, file, classi ecc ecc ecc come negli altri file ... senza quindi dover offuscare tutto da zero ogni volta
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
Sì l'idea è solo quella di sostituire ai nomi delle variabili e alle funzioni dei nomi difficili da leggere.
Per esempio
potrebbe diventarecodice:$a = 5; $b = 3; $somma = somma($a, $b); // calcola con un algoritmo che ha richiesto mesi // di studio la somma di due numeri // funziona anche con i float!!! function somma($numero1, $numero2) { // calcolo la somma $somma = $numero1 + $numero2; return $somma; }
Il codice è a livello logico esattamente lo stesso (a parte eventuali errori mieicodice:$v0=5;$v1=3;$v2=f0($vo,$v1);function f0($f0v0,$f0v1){$f0v2=$f0v0+$f0v1;return $f0v2;}) ma anche in un caso così semplice è quasi illeggibile!!!
Semplicemente ho sostituito i nomi delle variabili con $v{numero} e le funzioni con $f{numero}...le var interne acquistano il nome della funzione di appartenenza.
In teoria l'idea è banale...in pratica è un gran casino perchè occorre comunque seguire la struttura del linguaggio.
Occorre in primo luogo evitare di sostituire funzioni built-in del php (echo, for, if, fopen,...).
Bisogna seguire le inclusioni dei vari file...quindi tenere traccia dei file esaminati.
Nel php si è avvantaggiati dal fatto che i nomi delle variabili sono espliciti essendo preceduti da '$', il body/definition delle funzioni da 'function' mentre la chiamata alle funzioni da 'nome('...per cui le regexp in gioco sono abbastanza semplici.
Il tocco da maestro sarebbe addirittura rinominare i nomi dei file (ho visto qualcosa con java e mi chiedevo appunto quale pazzo avesse chiamato i quel modo i nomi dei file!!!)
Molto meno complicato di un parser completo per l'analisi del linguaggio ma certamente non banalissimo come si potrebbe pensare.
In ogni caso ho fatto ricerche e ho trovato questo
sembra esattamente quello di cui si parlava. La sostituzione avviene attraverso delle chiavi md5 abbreviate per cui lo renderebbe irreversibile.
Se non si vuole usare tale lib vale comunque la pena leggere quello che raccontano!
![]()
ma qualcuno si e' accorto che sto' 3D lo aprii nel lontano Luglio 2004 ?![]()
cmq la classe non e' ai stata utimata, non perche' non parsasse bene ma perche' l' inclusione di files e inclusione di files in files ... insomma tante problematiche scomode da affrontare e realizzare in PHP
che un domani faccia un programma a parte fatto bene e gratuito ? probabile, per ora bcompiler penso sia la soluzione migrliore![]()
Ma chi l'ha uppato ???[supersaibal]Originariamente inviato da andr3a
ma qualcuno si e' accorto che sto' 3D lo aprii nel lontano Luglio 2004 ?![]()
[/supersaibal]Io gli toglierei 200 post dal rank...
![]()
ma si che figata![supersaibal]Originariamente inviato da JHammer
Ma chi l'ha uppato ???Io gli toglierei 200 post dal rank...
[/supersaibal]
così mi diventano i messaggi negativi!
certo che siete strani...
se aprivo una discussione nuova mi dicevate di cercare nel forum, uppo questa discussione che è esattamente ciò che cercavo e mi dite che non devo uppare![]()
E' proprio questo che voglio evitare... (di andare ad installare altre librerie)skidx, sourceguardian critta proprio il codice, non lo offusca, quindi serve lui installato per decrittarlo ... invece un offuscatore mantiene inalterati i tempi di esecuzione e la memoria totale
proverò anche questo...che un domani faccia un programma a parte fatto bene e gratuito ? probabile, per ora bcompiler penso sia la soluzione migrliore
Ciao Paolo
:master:
calma ... aprii questo 3D per chiedere opinioni su una classe che come avrai letto non era completa ... essendo "morto" e' inutile scrivere "non ho capito come funziona" visto che non c'e' nessuna classe quindi non c'e' niente da poter far funzionare .... ed essendo basato , appunto, su un mio lavoro mai completato non mi sembrava sensato ritirarlo su .[supersaibal]Originariamente inviato da Dottor D
se aprivo una discussione nuova mi dicevate di cercare nel forum, uppo questa discussione che è esattamente ciò che cercavo e mi dite che non devo uppare![]()
[/supersaibal]
Comunque se postate classi o metodi che risolvono o fanno a stessa cosa ben venga, il mio specificare che era vecchio era riferito a daniele e gli altri che sono intervenuti riguardo il mi oscript mai postato e mai ultimato, non era ne un rimprovero nei tuoi confronti ne altro, voleva solo essere una delucidazione sul fatto che non esiste una classe che fa quello che ho postato, punto
uppa
andr3a l'idea è veramente una figata
se ho capito bene vai a rinominare tutte le variabili-costanti-funzioni per generare un codice non criptato, semplicemente reso illeggibile
l'idea è ottima, mi è capitato sto thread per sbaglio con una ricerca... non so hai fatto qualcosa in merito ma credo che gente come me, che spesso ha il dispiacere di trovare script propri copiati da clienti sparsi per tutto il web, sarebbe davvero utile perlomeno per limitare questi problemi
cmq complimenti ancora. fammi sapere qualcosa![]()
non ho ultimato niente perche' la situazione e' un pelino complicata ... php5 ha anche l' __autoload ed una classe che elimina le dipendenze esterne non e' cosi' semplice da creare ... forse un domani creero' una versione che utilizza un database sqlite proprio per memorizzare il tutto, controllare quindi tutte le dipendenze man mano che lo script elabora per poi essere cancellato a script elaborato ed offuscato ... unico inconveniente e' che con un editor fatto bene ti ricrei le indentature e tutto il resto con un click, a quel punto basta guardare bene il codice che anche se i nomi sono incomprensibli riesci a modificartelo che e' un piacere ... insomma, o si codifica per bene, oppure questo metodo e' , secondo me, assolutamente inutile, come sarebbe inutile quindi perderci tempo![]()