Introduktion till disassemblerare
Kom igång med branschstandardiserade disassemblerare som Ghidra och IDA Pro för att visa assemblerkod.
Introduktion till disassemblerare är en gratis lektion i Grunderna i reverse engineering och binäranalys på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Grunderna i reverse engineering och binäranalys, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i reverse engineering och binäranalys innehåller totalt 4 lektioner.
Vad är en disassembler?
Välkommen till disassemblernas värld! De är grundläggande verktyg inom reverse engineering.
En disassembler är ett program som översätter maskinkod (de råa byte som en dator förstår) till assemblyspråk. Tänk på det som att datorns hemliga språk görs läsbart för människor.
Varför använda en disassembler?
Disassemblers är avgörande när ni inte har programmets ursprungliga källkod. Här är varför:
- Analys av skadlig kod: Förstå hur skadlig programvara fungerar.
- Sårbarhetsforskning: Hitta säkerhetsbrister i kompilerade program.
- Proprietär programvara: Analysera hur program med sluten källkod fungerar.
- Avlusning: Gå på djupet med programexekveringen på låg nivå.
Från maskinkod till assembly
När ni kompilerar ett program omvandlas koden på hög nivå (som C++ eller Python) till maskinkod – en serie binära instruktioner (0:or och 1:or) som processorn kan köra direkt.
En disassembler gör det omvända. Den tar dessa råa byte och omvandlar dem till assemblyspråk, som använder mnemonics (korta, minnesvänliga koder) som MOV, ADD eller JMP och gör programmets logik synlig.
Introduktion till Ghidra
En av de mest kraftfulla och populära disassemblerna är Ghidra, som utvecklats av NSA och släppts som öppen källkod.
- Gratis och öppen källkod: Tillgänglig för alla.
- Dekompilerare: Genererar pseudokod på hög nivå (som C) från assembly, vilket gör analysen mycket snabbare.
- Stöd för flera arkitekturer: Stöder olika processortyper (x86, ARM, MIPS osv.).
- Skriptning: Automatisera uppgifter med Python eller Java.
Utforska IDA Pro
IDA Pro (Interactive Disassembler Professional) är en annan branschledande disassembler som är känd för sina avancerade funktioner och robusta analysmöjligheter.
- Kommersiell: Betraktas ofta som den professionella RE-världens ”gold standard”.
- Kraftfull analys: Utmärkt på att identifiera funktioner, data och kodstrukturer.
- Omfattande pluginutbud: Ett stort ekosystem av pluginer som utvecklats av användarcommunityn.
- Integrerad debugger: Växla sömlöst mellan statisk och dynamisk analys.
Vanliga vyer i disassemblers
Även om verktygen ser olika ut visar disassemblers vanligtvis flera viktiga vyer:
- Disassembly-vy: Huvudfönstret som visar assemblyinstruktioner.
- Hex-vy: Visar den körbara filens råa byte.
- Funktionslista: En lista över alla identifierade funktioner i programmet.
- Korsreferenser: Visar var data eller funktioner används i koden.
- Grafvy: Visualiserar styrflödet (hur programmet hoppar mellan kodblock).
Exempel på ett enkelt C-program
Låt oss titta på ett mycket enkelt C-program. När programmet kompileras omvandlas det till maskinkod, som en disassembler sedan kan omvandla tillbaka till assembly.
Prova att köra det för att se resultatet!
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int x = 5;
int y = 10;
int sum = add(x, y);
printf("The sum is: %d\n", sum);
return 0;
}Så ser en disassembler på kod
För C-koden vi nyss såg skulle en disassembler visa assemblyinstruktioner som utför varje steg:
int x = 5;kan bli enMOV-instruktion (move) som placerar5i ett register eller på en minnesadress.add(x, y);skulle innebära attxochyläggs på stacken, följt av enCALL-instruktion till funktionenadd.return a + b;inutiaddskulle bli enADD-instruktion, och resultatet placeras i ett specifikt register.
Den bryter ner logik på hög nivå till små CPU-operationer.
Navigera i disassemblerad kod
Disassemblers tillhandahåller verktyg som hjälper er att navigera i komplexa program:
- Sökning: Hitta specifika strängar, bytemönster eller instruktionssekvenser.
- Bokmärken: Markera viktiga kodplatser för snabb åtkomst.
- Korsreferenser: Se enkelt var en funktion anropas eller var en variabel används.
- Kommentarer: Lägg till egna anteckningar direkt i disassemblyn för att dokumentera era fynd.
Dessa funktioner är viktiga för att förstå stora binärfiler.
Insikter om disassemblers
Testa era kunskaper om disassemblernas centrala funktioner och egenskaper.
Sammanfattning: introduktion till disassemblers
Ni har tagit ert första steg in i statisk analys!
- Disassemblers omvandlar maskinkod till assemblyspråk.
- De är avgörande för att förstå program utan källkod.
- Ghidra och IDA Pro är ledande verktyg inom området.
- Disassemblers erbjuder olika vyer och navigeringsverktyg som hjälper er att analysera kod.
Härnäst går vi djupare in på hur man identifierar specifika funktioner och data i dessa disassemblerade binärfiler!
Lär dig Assembly med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Introduktion till disassemblerare” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i reverse engineering och binäranalys, inklusive ”Introduktion till disassemblerare”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Grunderna i reverse engineering och binäranalys innehåller totalt 4 lektioner.
Vad lär jag mig i ”Introduktion till disassemblerare”?
Kom igång med branschstandardiserade disassemblerare som Ghidra och IDA Pro för att visa assemblerkod. Ni övar på Grunderna i reverse engineering och binäranalys med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Grunderna i reverse engineering och binäranalys?
Du behöver inga förkunskaper. Utbildningen i Grunderna i reverse engineering och binäranalys på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Introduktion till disassemblerare”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Grunderna i reverse engineering och binäranalys-lektionen?
Ja. Varje Grunderna i reverse engineering och binäranalys-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till disassemblerare
- Identifiera funktioner och data
- Analys av kontrollflödesgrafer
- Analys av strängar och korsreferenser