Fråga:
Finns det några verktyg eller skript för att identifiera komprimeringsalgoritmer i körbara filer?
Polynomial
2013-04-02 03:49:20 UTC
view on stackexchange narkive permalink

Jag vet att det finns verktyg för att identifiera vanliga kodningar och hashalgoritmer i kod, men finns det några liknande skript / verktyg / plugins för vanliga komprimeringsalgoritmer som gzip, tömning osv? Främst riktad mot x86 och Windows, men svar för andra plattformar är också välkomna.

Observera att jag vill hitta kod , inte data .

Jag skulle inte bli förvånad över att många komprimerings- / dekompressionsverktyg har detta eftersom 7zip ofta kan öppna saker oavsett förlängningen. Även om det är möjligt är det beroende av metadata.
Verktyg som 7zip förlitar sig helt enkelt på metadata i den körbara filen för att upptäcka SFX-binärer, men även om den använde heuristik skulle den leta efter komprimerad data, inte komprimeringsalgoritmen. Jag letar efter sätt att upptäcka adressen för koden för vanliga kompressionsalgoritmer.
1 / Jag känner inte till något verktyg som gör det 2 / det beror verkligen på om du vill matcha C-kod eller optimerad ASM-kod: om du vill matcha kompilerad kod, skulle det vara bättre att ha en FLIRT-liknande signatur för specifik funktioner. För att matcha handoptimerad ASM (något som människor sällan ändrar när man kopierar / klistrar in), matcha antingen hela blocket eller åtminstone lita på specifika konstanter ([exempel] (https://code.google.com/p/kabopan /source/browse/trunk/kbp/comp/aplib.py#14))
Tre svar:
Igor Skochinsky
2013-04-02 08:24:29 UTC
view on stackexchange narkive permalink

signsrch av Luigi Auriemma har signaturer för tabeller som används i vanliga komprimeringsbibliotek (zlib etc.).

enter image description here

Det har portats som plugins för ImmDbg och IDA.

Han har också verktyget offzip som försöker identifiera och packa upp komprimerade strömmar i en binär.

Detta verktyg är fantastiskt. Ser också plattform ut. Ljuv!
mrduclaw
2013-04-02 06:43:53 UTC
view on stackexchange narkive permalink

Jag är ett stort fan av binwalk, men tyvärr hjälper det dig inte mycket i Windows.

deras release-anteckningar säger: "Version 1.0 är en fullständig omskrivning i Python och innehåller nya funktioner och en skriptbar Python-modul." Även om deras vanliga frågor nämns att den inte är testad i Windows, bör det ta mycket arbete för att få den att fungera om den inte är 't.
til
2013-04-02 13:19:44 UTC
view on stackexchange narkive permalink

Om en binär använder deflate eller gzip (som använder deflate), är koden i allmänhet länkad i som ett bibliotek och därmed lätt att upptäcka baserat på strängartefakter. Detta kan säkert automatiseras, t.ex. du kan helt enkelt söka efter respektive strängar. Manuell matchning av funktioner mot källkoden är en ansträngande process, men det fungerar vanligtvis snyggt. Processen är mycket svårare för mindre vanliga algoritmer eller när du inte har några artefakter. I så fall måste du identifiera algoritmen med dess semantik (saker som ordstorlek, konstanter, datastrukturer kan ge tips).

Förutom de redan nämnda FLIRT-signaturerna: Om du använder IDA Pro med Hex-Rays-plugin och du har tur, du kanske kan hitta en algoritm på http://crowd.re. Det finns några kommentarer för komprimeringsalgoritmer tillgängliga. Bortsett från det känner jag inte till några verktyg eller skript som gör vad du vill.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...