Question:
Existe-t-il des outils ou des scripts pour identifier les algorithmes de compression dans les exécutables?
Polynomial
2013-04-02 03:49:20 UTC
view on stackexchange narkive permalink

Je sais qu'il existe des outils pour identifier les chiffrements et algorithmes de hachage courants dans le code, mais existe-t-il des scripts / outils / plugins similaires pour les algorithmes de compression courants tels que gzip, deflate, etc.? Principalement destiné à x86 et Windows, mais les réponses pour d'autres plates-formes sont également les bienvenues.

Notez que je cherche à trouver du code , pas des données .

Je ne serais pas surpris que de nombreux outils de compression / décompression aient cela puisque 7zip peut souvent ouvrir des choses quelle que soit l'extension. Bien que cela soit possible, il repose sur des métadonnées.
Des outils tels que 7zip s'appuient simplement sur des métadonnées dans le fichier exécutable afin de détecter les binaires SFX, mais même s'il utilisait des heuristiques, il rechercherait des données compressées, pas l'algorithme de compression. Je cherche des moyens de détecter l'adresse du code pour les algorithmes de compression courants.
1 / Je ne connais aucun outil qui fasse ça 2 / cela dépend vraiment si vous voulez faire correspondre le code C ou le code ASM optimisé: si vous voulez faire correspondre le code compilé, il serait préférable d'avoir une signature de type FLIRT pour des les fonctions. Pour correspondre à l'ASM optimisé manuellement (quelque chose que les gens modifient rarement lors du copier / coller), faites correspondre le bloc complet, ou du moins, utilisez des constantes spécifiques ([exemple] (https://code.google.com/p/kabopan /source/browse/trunk/kbp/comp/aplib.py#14))
Trois réponses:
#1
+23
Igor Skochinsky
2013-04-02 08:24:29 UTC
view on stackexchange narkive permalink

signesrch de Luigi Auriemma a des signatures pour les tables utilisées dans les bibliothèques de compression courantes (zlib etc.).

enter image description here

Il a été porté en tant que plugins pour ImmDbg et IDA.

Il a également l'outil offzip qui tente d'identifier et de décompresser les flux compressés dans un binaire.

Cet outil est génial. Ressemble aussi à plusieurs plates-formes. Sucré!
#2
+9
mrduclaw
2013-04-02 06:43:53 UTC
view on stackexchange narkive permalink

Je suis un grand fan de binwalk, mais malheureusement cela ne vous aide pas beaucoup sous Windows.

leurs notes de publication disent: "La version 1.0 est une réécriture complète en Python et inclut de nouvelles fonctionnalités et un module Python scriptable" Bien que leur FAQ mentionne qu'elle n'est pas testée sur Windows, il faudrait beaucoup d'efforts pour la faire fonctionner si elle n'est pas 't.
#3
+2
til
2013-04-02 13:19:44 UTC
view on stackexchange narkive permalink

Si un binaire utilise deflate ou gzip (qui utilise deflate), le code est généralement lié en tant que bibliothèque et donc facile à détecter en fonction des artefacts de chaîne. Cela peut certainement être automatisé, par exemple, vous pouvez simplement rechercher les chaînes respectives. La correspondance manuelle des fonctions avec le code source est un processus quelque peu fastidieux, mais cela fonctionne généralement bien. Le processus est beaucoup plus difficile pour les algorithmes moins courants ou lorsque vous n'avez pas d'artefacts. Dans ce cas, vous devez identifier l'algorithme par sa sémantique (des choses comme la taille des mots, les constantes, les structures de données peuvent fournir des indices).

En plus des signatures FLIRT déjà mentionnées: Si vous utilisez IDA Pro avec le Le plugin Hex-Rays et vous avez de la chance, vous pourrez peut-être trouver un algorithme sur http://crowd.re. Il existe quelques annotations pour les algorithmes de compression disponibles. En dehors de cela, je ne connais aucun outil ou script qui fasse ce que vous voulez.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...