Domanda:
Esistono strumenti o script per identificare gli algoritmi di compressione negli eseguibili?
Polynomial
2013-04-02 03:49:20 UTC
view on stackexchange narkive permalink

So che esistono strumenti per identificare cifrari e algoritmi hash comuni nel codice, ma esistono script / strumenti / plug-in simili per algoritmi di compressione comuni come gzip, deflate, ecc.? Destinato principalmente a x86 e Windows, ma sono benvenute risposte anche per altre piattaforme.

Nota che sto cercando di trovare codice , non dati .

Non sarei sorpreso che molti strumenti di compressione / decompressione abbiano questo dato che 7zip può spesso aprire cose indipendentemente dall'estensione. Sebbene sia possibile, si basa su metadati.
Strumenti come 7zip si basano semplicemente sui metadati all'interno del file eseguibile per rilevare i binari SFX, ma anche se usasse l'euristica, cercherebbero dati compressi, non l'algoritmo di compressione. Sto cercando modi per rilevare l'indirizzo del codice per algoritmi di compressione comuni.
1 / Non conosco nessuno strumento che lo faccia 2 / dipende davvero se vuoi abbinare il codice C o il codice ASM ottimizzato: se vuoi abbinare il codice compilato, sarebbe meglio avere una firma simile a FLIRT per specifici funzioni. Per abbinare l'ASM ottimizzato a mano (qualcosa che le persone raramente alterano quando copia / incolla), quindi abbina il blocco completo o, almeno, fai affidamento su costanti specifiche ([esempio] (https://code.google.com/p/kabopan /source/browse/trunk/kbp/comp/aplib.py#14))
Tre risposte:
#1
+23
Igor Skochinsky
2013-04-02 08:24:29 UTC
view on stackexchange narkive permalink

signsrch di Luigi Auriemma ha firme per le tabelle utilizzate nelle comuni librerie di compressione (zlib ecc.).

enter image description here

È stato portato come plug-in per ImmDbg e IDA.

He ha anche lo strumento offzip che cerca di identificare e decomprimere gli stream compressi all'interno di un binario.

Questo strumento è fantastico. Sembra anche multipiattaforma. Dolce!
#2
+9
mrduclaw
2013-04-02 06:43:53 UTC
view on stackexchange narkive permalink

Sono un grande fan di binwalk, ma purtroppo non ti aiuta molto su Windows.

le loro note di rilascio dicono: "La versione 1.0 è una completa riscrittura in Python e include nuove funzionalità e un modulo Python con script" Anche se le loro FAQ menzionano che non è testato su Windows, dovrebbe richiedere molto impegno per farlo funzionare se non lo è 't.
#3
+2
til
2013-04-02 13:19:44 UTC
view on stackexchange narkive permalink

Se un binario usa deflate o gzip (che usa deflate), il codice è generalmente collegato come una libreria e quindi è facile da rilevare in base agli artefatti delle stringhe. Questo può certamente essere automatizzato, ad esempio potresti semplicemente cercare le rispettive stringhe. La corrispondenza manuale delle funzioni con il codice sorgente è un processo un po 'noioso, ma di solito funziona bene. Il processo è molto più difficile per algoritmi meno comuni o quando non si hanno artefatti. In tal caso, devi identificare l'algoritmo in base alla sua semantica (cose come la dimensione della parola, le costanti, le strutture dati possono fornire suggerimenti).

Oltre alle firme FLIRT già citate: Se usi IDA Pro con il Plugin Hex-Rays e sei fortunato, potresti riuscire a trovare un algoritmo su http://crowd.re. Sono disponibili alcune annotazioni per gli algoritmi di compressione. A parte questo, non sono a conoscenza di strumenti o script che facciano quello che vuoi.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...