Hopper – en disassembler för OSX och Linux

När man arbetar med att analysera binärfiler (ett kompilerat program) behöver man en ett verktyg som kallas en disassembler. En bra disassembler kan inte bara översätta binären till assemblerinstruktioner utan även visa anrop, hantera kod för olika arkitekturer etc. Det finns egentligen bara två stora disassemblers. OllyDbg är en disassembler som körs i Windows. Olly är gratis, rätt kompetent men med ett relativt enkelt (för att inte säga fult) gränssnitt.

Exempel på OllyDbg
Användargränssnittet för OllyDbg.

Den andra disassemblern är Ida Pro. Ida kan vrida och ända på en binär på ett otal sätt, kommer med ett batteri av analysfunktioner, går att scripta och har stöd för massor med olila arkitekturer. Snyggt gränssnitt gör Ida lättarbetat. Enda haken med Ida är att det kostar rätt mycket pengar. Billigaste versionen kostar strax under 600 USD.

Ida Pro.
Ida Pro i all sin glans.

Jag har än så långe inte känt att jag har råd att skaffa Ida. Istället har jag fått köra Olly i en virtuell maskin (jag kör normalt OSX, FreeBSD eller Linux som OS på mina maskiner.). Jag har därför letat efter en bra disassembler som går att köra i OSX eller Linux. Och nu finns det.

Hopper är en disassembler som funktions- och kapacitetsmässigt lägger sig mellan Olly och Ida. Hopper stödjer flera olika arkitekturer (x86 i ett antal varianter, olika versioner av ARM inklusive ARM64). Hopper kan disassemblera iOS-binärer och kan generera pseudokod i både C och Objective-C. Det finns även en debug-server som gör att man kan debugga en exekverande applikation med Hopper. Och Hopper har ett (anseer jag) snyggt och lättarbetat gränssnitt.

Hoppers gränssnitt.
Hoppers gränssnitt. Notera pseudokod och anropsgrafen.

Hopper är inte gratis, men priset är ungefär en tiondel av Ida vilket gör den klart mer rimlig. Jag har inte använt Hopper tokmycket än, men det lilla jag har använt den har gjort att jag är mycket nöjd. Jag kör inte längre Olly och överväger inte heller att sälja en njure för att få råd med Ida.n För ett bra exempel på hur man kan arbeta med Hopper finns en utmärkt beskrivning (och film) av Melissa Elliott (0xabad1dea) när hon analyserar en binär med Hopper.

Om du kör Linux eller OSX och bootar upp Windows bara för att köra Olly tycker jag du ska ta dig en titt på Hopper.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *