ke diavolo è un wrapper :master: :master: ?Originariamente inviato da andr3a
le super globali non sono offuscate, servirebbe un wrapper come dice daniele ma se mai ci sara' arrivera' dopo aver appurato che l' offuscatore funziona.
ke diavolo è un wrapper :master: :master: ?Originariamente inviato da andr3a
le super globali non sono offuscate, servirebbe un wrapper come dice daniele ma se mai ci sara' arrivera' dopo aver appurato che l' offuscatore funziona.
un modo per simulare la stessa variabile / funzione
$__incomprensibile832238447298 = &$GLOBALS;
e replace di $GLOBALS con ogni $__incomprensibile832238447298
farlo e' semplice, pero' implica l' inclusione del file con tutte le fakes per ogni script, con problemi di path ed altro, tante cose che alla fine se messe in un unico file diventano inutili poiche' colui che vuole riprendere il sorgente deve solo arpire il wrapper e fare il replace, sia per le funzioni che per il resto ... e parsare un wrapper e' molto piu' semplice che parsare l' applicativo, quindi sarebbe molto sforzo in piu' per l' offuscatore e zero sforzo in piu' per l' eventuale malizioso che vuole capire il codice![]()
i file che includo sono in un direttorio di include.
Quello postato lo passavo al parser da solo ed era uno spezzone esemplificativo.
Infatti il problema e' proprio quello: i file che danno errore vengono inclusi da un direttorio diverso. Come il 100% dei file che abitualmente includo.
Il recoursive lavora anche sulle subdirectories?
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
si, ma se manca un solo file dalla cartella parsata ovviamente non funzionera' .Originariamente inviato da piero.mac
Il recoursive lavora anche sulle subdirectories?
Tutti i files che sono richiesti dall' applicativo devono stare all' interno della cartella che scegli con l' opzione recoursive , magari aggiungi una folder TEMP con i files esterni alla cartella che solitamente richiedi da altre parti fuori dalla root , poi sposti il suo contenuto nella cartella richiesta per le inclusioni esterne alla root![]()
Risultato test con la RC2:
per la cronaca , cambiando l' estensione momentaneamente del file extension.inc in extension.php al fine di farlo parsare dal programma, ho appena offuscato con successo l' ultimo phpBB2 per intero![]()
unico file che mi ha dato noia e' stato quello lang_main.php e non so perche' , ma con un solo replace manuale di 2 stringhe probabilmente definite altrove l' applicativo funziona alla perfezione
P.S. nota dolente ... ci ha messo veramente tanto![]()
un po di fantasia ... usa il rand ed il microtime (ci sono tutti e due)Originariamente inviato da andr3a
sto' in Python danie' ... mica lo so se esiste la uniqueid![]()
mah ... ti dirò ... mi sono trovato male più e più volte con apc :\anche APC bytecompila, accelera e offusca ... APC e' l' alternativa Open Source implementata nel core di PHP che ancora non riesco a testare in windows ma che dovrebbe andare molto bene.
La 3.0.4 infatti dicono vada su win32 ma io non sono riuscito ad instllarlo, o melgio, parte ma mi crasha apache 2![]()
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
vuoi un sincero consiglio? fai decollare tutte le regexpOriginariamente inviato da andr3a
Risultato test con la RC2:
.
.
.
P.S. nota dolente ... ci ha messo veramente tanto![]()
sono solo che uccidono TUTTO
o usi php stesso cosi puoi sfruttare il tokenizer e saresti ENORMEMENTE avvantaggiato (ad esempio se dovessi fare un offuscatore in C# userei, senza ombra di dubbio, C# stesso xche in tempo reale posso prendere il sorgente, compilarlo, acquisirne i metodi e quindi poi fargli fare tutti i rigiri di questo mondo ^^)
se lo fai con python fai un parser lessicale vero e proprio e ti risolvi TUTTI i problemi con le regexp è MOLTO + complicato
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
con regexp e sqlite su filesystem:Originariamente inviato da daniele_dll
vuoi un sincero consiglio? fai decollare tutte le regexp
sono solo che uccidono TUTTO
ore
con regexp e sqlite in RAM:
minuti
con regexp, senza sqlite:
secondi
![]()
avvantaggiato da cosa ? :master:Originariamente inviato da daniele_dll
o usi php stesso cosi puoi sfruttare il tokenizer e saresti ENORMEMENTE avvantaggiato
bene, ora dimmi a cosa serve un offuscatore per un linguaggio gia' pseudo-compilabile :master:Originariamente inviato da daniele_dll
(ad esempio se dovessi fare un offuscatore in C# userei, senza ombra di dubbio, C# stesso xche in tempo reale posso prendere il sorgente, compilarlo, acquisirne i metodi e quindi poi fargli fare tutti i rigiri di questo mondo ^^)
c'e' gia' il parser lessicale in Python, oltre a quello, servono e ci sono anche le regexp ... il problema e' la lentezza del parsing di tutte le funzioni, tutte le variabili, tutte le classi ( con funzioni interne / esterne ) passate a sqlite in RAM per:Originariamente inviato da daniele_dll
se lo fai con python fai un parser lessicale vero e proprio e ti risolvi TUTTI i problemi con le regexp è MOLTO + complicato
1 - evitare doppioni
2 - ricordare cosa si e' parsato e cosa no
ora devo informarmi se pysqlite e' piu' lento di sqlite per C , visto che il porting e' fatto in C anche per Python, quindi dovrebbe essere identico.
Purtroppo Psyco non mi aiuta , si lavora troppo di stringhe e poco con numeri, dove Psyco fa veramente la differenza![]()
C# è bytecode ... e come ogni buon bytecode può essere decompilabile ... e quindi è vitale usare un buon offuscatore
---
beh se usi il tokenizer di php sei avvantaggiato xche semplifichi molto il codice dato che il parsing lo fa lui ^^
The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand
con tokenizer dovrei usare anche il tokenizer su ogni stringa, giusto ?
e come si comporta con preg dentro evals o evals di evals o pregs di pregs ? :master:
e se la stringa e' composta da piu' variabili ? come posso fare tokenizer dell' insieme ?
tokenizer di tokenizer su tokenizer ? :master:
cmq non e' tanto diverso da quello che faccio in python, ma come ti ho detto non e' questo il problema, il problema e' sqlite in ram che va troppo lento![]()