
Programma per determinare i tipi di file per Windows, Linux e MacOS.

Detect It Easy (DiE) è uno strumento multipiattaforma per l'identificazione dei file e l'ispezione statica, utilizzato da analisti di malware, esperti di cybersecurity e reverse engineer. Combina parser nativi dei formati con un livello di analisi DiE-JS estensibile, supportando sia firme compatte sia analisi statica multi-stadio su Windows, Linux e MacOS.
[!WARNING]
detectiteasy.comnon è affiliato al progetto Detect It Easy né al suo sito web ufficiale. Non fidarti di esso come fonte ufficiale né usarlo per scaricare DiE. Usa solo i link di rilascio forniti in questo repository.

Detect It Easy combina parsing consapevole del formato, corrispondenza di firme e analisi programmabile per analisi di malware, reverse engineering e digital forensics. I moduli DiE-JS possono utilizzare strutture analizzate e primitive di ispezione di basso livello per implementare algoritmi limitati, mantenendo la politica di rilevamento verificabile nel database.

Una firma può dirti a cosa assomiglia un file. Il motore di analisi euristica generica (__GenericHeuristicAnalysis_By_DosX.7.sg) va oltre: riporta concrete anomalie strutturali e comportamentali insieme alle evidenze che le supportano. Il motore euristico PE è creato e mantenuto da DosX.
[!NOTE] DiE-JS è il linguaggio di implementazione di questo motore di analisi, non un'abbreviazione per alcune chiamate a rilevatori nativi. Il core nativo di DiE fornisce parsing dei formati, letture limitate, traduzione degli indirizzi, ricerca e primitive di disassemblaggio. Il motore euristico PE costruisce algoritmi di analisi su queste primitive: seleziona candidati, mantiene lo stato, attraversa flussi di controllo limitati, convalida le relazioni tra le strutture, scarta spiegazioni benigne, correla evidenze indipendenti e riconcilia i risultati.
L'analisi euristica non è semplicemente un fallback usato quando le firme falliscono. Quando abilitata, viene eseguita come un motore di analisi separato di livello superiore e può corroborare, qualificare o respingere i risultati precedenti del database, mantenendo ogni conclusione euristica visibilmente contrassegnata.
Con la scansione euristica abilitata, il motore euristico PE esegue una serie di passaggi specializzati su immagini native e gestite. Il file non viene mai avviato. Invece, il motore lavora con header, directory dei dati, sezioni, importazioni, esportazioni, risorse, metadati .NET, bytecode, overlay, record di debug e codice di avvio raggiungibile con radice nel punto di ingresso. La stessa copertura si estende al codice di inizializzazione delle DLL, colmando un punto cieco comune quando un comportamento protetto o sospetto inizia all'interno di una libreria anziché di un'applicazione. Ciò lo rende utile sia quando una firma esatta è nota, sia quando un campione è stato modificato a sufficienza per eludere l'identificazione ordinaria.
L'analisi del codice nativo del motore euristico PE combina disassemblaggio lineare memorizzato nella cache con attraversamento limitato del codice di avvio raggiungibile e macchine a stati appositamente costruite. Traccia i fatti relativi a registri, flag, stack, provenienza degli indirizzi e confini delle istruzioni richiesti da ciascuna regola, senza pretendere di essere una sandbox o un emulatore completo della CPU. Ciò consente a DiE di esporre rami opachi e degenerati, trasferimenti sintetici e indiretti, flussi di istruzioni sovrapposti, stub position-independent e automodificanti, unpacker di bitstream, sonde anti-analisi e flussi di controllo irregolari utilizzati da packer e protettori polimorfici. I controlli rimangono efficaci attraverso la sostituzione dei registri, il padding neutro, forme aritmetiche equivalenti e il riordino limitato di istruzioni indipendenti comunemente prodotti da generatori commerciali e cryptor privati.
Per il codice gestito, il motore euristico PE utilizza un modello interno di opcode MSIL per costruire pattern di bytecode consapevoli degli operandi per chiamate indirette e puntatori a funzione, trasformazioni del flusso di controllo, mutazioni aritmetiche, sequenze di istruzioni non valide e altre forme di offuscamento. Non è un emulatore CLR, ma consente al motore di ragionare su pattern IL eseguibili invece di trattare un assembly gestito come poco più che metadati e stringhe.
Gran parte dell'analisi deriva dall'incrocio di evidenze tra livelli. Il motore può mettere in relazione l'identità della risorsa di versione con lo stato Authenticode, i metadati di build Rich, il modello di runtime e la protezione rilevata; verificare in modo incrociato l'estensione del file system; interpretare simboli di importazione ed esportazione alterati utilizzati da MSVC, GNU/MinGW, Borland e Swift; e riconoscere le impronte lasciate da dumper, unpacker e ricostruttori PE. I controlli nativi sono consapevoli dell'architettura su x86/x64 e la famiglia ARM, mentre i flag di mitigazione della sicurezza vengono verificati come combinazioni significative anziché come bit isolati.
Una singola scansione può identificare in modo indipendente un protettore noto, riconoscerne la disposizione caratteristica delle sezioni, descrivere le trasformazioni del punto di ingresso, recuperare la provenienza della toolchain o del motore di gioco e associare metadati di licenza. Questi risultati provengono da percorsi di analisi separati; nessun singolo predicato del backend produce il report completo.
Questi sono i passaggi principali anziché un inventario completo di ogni controllo: