Spørgsmål:
Open Source-bibliotek til komplet binær adskillelse
3asm_
2014-01-13 04:56:09 UTC
view on stackexchange narkive permalink

En af de største forhindringer ved x86-adskillelse er at adskille kode fra data. Alt tilgængeligt open source-demonteringsbibliotek udfører kun en lineær demontering (starter fra toppen og springer fejl over med 1 byte) sammenlignet med OllyDBG, der tilsyneladende bruger en kontrolflowdemontering (ved hjælp af opcodes som CALL og JMP) eller IDA ved hjælp af heuristik og emulering . Disse to er dog ikke open source.

Mit spørgsmål er, er der noget open source-bibliotek eller -projekt, der bruger en bedre teknik end simpel lineær demontering (kontrolflow eller heuristikbaseret)?

Jeg snuble over et papir ved hjælp af en maskinindlæringsmetode? er der en open source-implementering af denne tilgang?

Jeg kender ikke nogen open source-biblioteker til dette, men hvis du vil skrive dit eget, se http://reverseengineering.stackexchange.com/questions/2347/what-is-the-algorithm-used-in- rekursiv-traversal-adskillelse
Fire svar:
w s
2014-01-13 13:28:27 UTC
view on stackexchange narkive permalink

Radare 2 er en GPL-software med en god API og bruger ikke lineær adskillelse.

Se eksempel på visuel tilstand (Vp-kommando): example r2 x86 session

Tak, har du tilfældigvis et link eller en dokumentation om den demonteringsmetode, de bruger?
@3asm_ Pandekage og resten af ​​radare2-teamet. Har filosofien 'skrivedokumentation er overvurderet, når du kan læse kilden'. Læs således kilden;)
@Stolas: godt, det lyder svarende til det store fede "f ... du" Git docs giver * brugere * forsøger blot at gøre brug af Git uden først at studere ti semestre af Gitology.
@0xC0000022L er ikke sikker på, om du fornærmer mig eller ej. Men det er forståeligt, at radare2-teamet gør det. Da de ønsker at bruge tid på at skrive kode i stedet for at oprette dokumentationen. Også fordi da de var færdige med dokumentationen af ​​radare1, tog den en eftersyn ... Jeg startede engang med at skrive dokumentationen selv i form af en bog (som O'Reillys dyrebøger), men det er bare for meget arbejde.
@Stolas: er hvordan ville jeg fornærme dig? Jeg henviste til manglen på dokumentation for projektet og henviste til kildekoden. Jeg er uenig i, det er forståeligt at springe dokumenter over og henvise til kode, da gode dokumenter går langt i at gøre et stykke software tilgængeligt for det tilsigtede publikum. Bortset fra det har jeg bogstaveligt talt nu brugt år på at vedligeholde kode, der er virkelig dårligt dokumenteret, hvor det betyder noget. Heck, jeg kan læse de anvendte sprog, men det fortæller mig ikke * hvorfor * en bestemt `hvis` blev introduceret, eller hvad visse magiske tal betyder.
@0xC0000022L Jeg bemærker, at jeg havde nogle problemer med sprogbarrieren. Jeg er også stoppet med at bruge Radare2 på grund af manglende dokumentation. Og på grund af antallet af hukommelseslækager (koden genkender dem endda som en TODO et antal gange).
@0xC0000022L Faktisk kan du bruge intern hjælp til radare2-kommandoer - skriv bare '?' og / eller '?'
@AntonKochkov: sejt! Så klager jeg ikke længere.
viv
2014-01-15 23:24:35 UTC
view on stackexchange narkive permalink

Jeg genudgiver min kommentar, som jeg skrev til perror's spørgsmål

Lida (et værktøj baseret på Bastards libdisasm), distorm og beaengine er nogle open source-demonteringsmotorer, der bruger rekursiv demontering.

Distorm er en lineær demonterer AFAIK (bruges hvis til flere projekter)
joxeankoret
2014-01-15 22:20:53 UTC
view on stackexchange narkive permalink

En anden mulighed er (undskyld spam!) http://pyew.googlecode.com. Dette er en statisk analysator skrevet i Python, der primært bruges til malware-analyse. Afhængigt af hvad du har brug for, kan du finde det nyttigt (det understøtter kun endnu 16, 32 og x64 Intel-kode). Du kan skrive dine egne scripts ved hjælp af Pyews API (her har du et mere komplekst eksempel). Jeg bruger (og brugte det) til massiv malware-analyse. Da jeg arbejdede for dem, analyserede Pyew faktisk al VirusTotal-trafikken. Vi brugte det til at kassere nogle meget lignende prøver fra en dyre analyse.

Pyew foretager rekursiv analyse af traversal kode (forklaring her). Pyew, det bliver ikke narret som adskillere med lineær fejning. Under alle omstændigheder er det ikke så smart som det er IDA. Pyew er Open Source (GPL), og alt efter dine behov giver jeg endda LGPL licenser til det.

PS: Hvis du leder efter noget, der understøtter alt, hvad der ikke er Intel-baseret, og du vil have noget Open Source, skal du virkelig tjekke radare.

Tak meget indsigtsfuldt, det faktum at det er i Python vil hjælpe meget i mit projekt, mange tak.
Nocturnal
2017-03-08 01:02:48 UTC
view on stackexchange narkive permalink

Et andet OpenSource-bibliotek, der kan være af interesse.

Capstone Engine

Det understøtter flere arkitekturer, såsom x86 (+ AMD64), ARM, PowerPC og SPARC.

Bruger capstone ikke kun lineær demontering og er mere fokuseret på at understøtte flere arkitekturer i stedet?


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...