..allora, il tool è una classe e come tale può essere espansa all'infinito...
la classe mamma non fa altro che creare un tree (recursiveiterator)
... quando hai il tree poi basta scorrerlo e fare "qualcosa".
quello dell'hash è anche il modo usato da wp per il suo remover, ma ha le sue pecche... è praticamente booleano: o è uguale o è cambiato, si l'ho implementato anch'io creando dei database (files) di hash, file_hash è abbastanza veloce...
credo che più che l'hash la dimensione del file aiuti e soprattutto di alcuni files.
E' caratteristica comune che i files jolly siano gli index... non sono attacchi mirati a J e usano iniezioni abbastanza standard... quindi il primo test che ho fatto è la coerenza tra il mime che dichiara con l'estensione e quello negli header del file... ed ecco che è saltato fuori un index.html che aveva gli headers di un ico... con tanto di binario... può essere corrotto o malevolo cmq è già qualcosa.... o index.html che pesano 1kb... si possono esistere ma se li controlli vedi che magari uno è stato iniettato.
Poi ci sono altri filename abbastanza mirati, i define e quindi stesso trattamento.
Poi ci sono i tool destinati a joomla e anche quì il controllo viene fatto per "cose insolite"... non è solito un file con estensione diversa da immagine in una cartella immagini o css o file che abbiano estensioni eseguibili in tmp e cache...
insomma, non è proprio un tool da rilasciare come componente... anzi, su un server remoto ti cacciano se lo usi e va in timeout. Quello che stava facendo Alex era un po sul principio "mi buchi e ti avviso"
Il mio è abbastanza complicato e destinato solo a risparmiare fatica solo a chi comunque saprebbe usare altro per arrivare allo stesso risultato.
Quello che mi manca di testare è la funzione più delicata e sciupa-risorse ... l'analisi del contenuto.
Ho già risolto tanto con una pensata stupida ma efficace... la ricerca "mi sento fortunato"

ovvero solo le prime 2 o tre righe del file... tanto è sempre all'inizio che mettono gli script, poi esiste anche quella più approfondita...
sono alla caccia di pattern... se metti i soliti eval etc sono usatissimi e da troppi falsi positivi, così pure i xx+xx... devo fare una regex che capisca che si tratta di codice offuscato....
... poi cmq ci sono mille altri problemi
Aldilà del risultato godo quando scrivo codice così... J mi ha fatto diventare la vita mvc

M.