Introduktion til disassemblere
Kom i gang med branchestandard-disassemblere som Ghidra og IDA Pro for at se assemblykode.
Introduktion til disassemblere er en gratis Grundlæggende reverse engineering og binæranalyse-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende reverse engineering og binæranalyse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende reverse engineering og binæranalyse-kurset indeholder 4 lektioner i alt.
Hvad er en disassembler?
Velkommen til disassemblernes verden! De er grundlæggende værktøjer inden for reverse engineering.
En disassembler er et program, der oversætter maskinkode (de rå bytes, som en computer forstår) til assemblysprog. Du kan tænke på det som at tage computerens hemmelige sprog og gøre det læsbart for mennesker.
Hvorfor bruge en disassembler?
Disassemblere er afgørende, når du ikke har den oprindelige kildekode til et program. Her er hvorfor:
- Analyse af malware: Forstå, hvordan skadelig software fungerer.
- Sårbarhedsforskning: Find sikkerhedsfejl i kompilerede programmer.
- Proprietær software: Analysér, hvordan programmer med lukket kildekode fungerer.
- Fejlfinding: Gå i dybden med programmets kørsel på lavt niveau.
Fra maskinkode til assembly
Når du kompilerer et program, bliver din kode på højt niveau (som C++ eller Python) til maskinkode – en række binære instruktioner (0'er og 1-taller), som CPU'en kan udføre direkte.
En disassembler vender denne proces om. Den tager de rå bytes og konverterer dem til assemblysprog, der bruger mnemonics (korte, letgenkendelige koder) som MOV, ADD eller JMP>, så programmets logik bliver synlig.
Introduktion til Ghidra
En af de mest effektive og populære disassemblere er Ghidra, som er udviklet af NSA og udgivet som open source.
- Gratis og open source: Tilgængelig for alle.
- Dekompiler: Genererer pseudokode på højt niveau (som C) ud fra assembly, hvilket gør analysen meget hurtigere.
- Flere arkitekturer: Understøtter forskellige CPU-typer (x86, ARM, MIPS osv.).
- Scripting: Automatisér opgaver med Python eller Java.
Udforskning af IDA Pro
IDA Pro (Interactive Disassembler Professional) er endnu en førende disassembler i branchen, der er kendt for sine avancerede funktioner og robuste analyseegenskaber.
- Kommercielt: Betragtes ofte som den professionelle RE's "guldstandard".
- Effektiv analyse: Fremragende til at identificere funktioner, data og kodestrukturer.
- Omfattende plugins: Et stort økosystem af plugins udviklet af fællesskabet.
- Debuggerintegration: Skift problemfrit mellem statisk og dynamisk analyse.
Almindelige visninger i en disassembler
Selvom hvert værktøj ser forskelligt ud, viser disassemblere typisk flere vigtige visninger:
- Disassemblyvisning: Hovedvinduet, der viser assemblyinstruktioner.
- Hexvisning: Viser de rå bytes i den eksekverbare fil.
- Funktionsliste: En liste over alle identificerede funktioner i programmet.
- Krydshenvisninger: Viser, hvor data eller funktioner bruges i koden.
- Grafvisning: Visualiserer kontrolflowet (hvordan programmet springer mellem kodeblokke).
Eksempel på et simpelt C-program
Lad os se på et meget simpelt C-program. Når programmet kompileres, bliver det omdannet til maskinkode, som en disassembler derefter kan konvertere tilbage til assembly.
Prøv at køre det for at se dets output!
#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ådan ser en disassembler kode
For den C-kode, vi netop så, ville en disassembler vise assemblyinstruktioner, der udfører hvert trin:
int x = 5;kunne blive til enMOV-instruktion (flyt), der placerer5i et register eller på en hukommelsesplacering.add(x, y);ville indebære, atxogyskubbes på stakken, efterfulgt af enCALL-instruktion til funktionenadd.return a + b;inde iaddville blive til enADD-instruktion, og resultatet ville blive placeret i et bestemt register.
Den opdeler logik på højt niveau i små CPU-operationer.
Navigering i disassembleret kode
Disassemblere tilbyder værktøjer, der hjælper dig med at navigere i komplekse programmer:
- Søgning: Find bestemte strenge, byte-mønstre eller instruktionssekvenser.
- Bogmærker: Markér vigtige kodeplaceringer, så du hurtigt kan finde dem igen.
- Krydshenvisninger: Se nemt, hvor en funktion kaldes fra, eller hvor en variabel tilgås.
- Kommentarer: Tilføj dine egne noter direkte i disassemblyen for at dokumentere dine fund.
Disse funktioner er afgørende for at forstå store binærfiler.
Indblik i disassemblere
Test din viden om disassembleres centrale funktioner og egenskaber.
Opsamling: introduktion til disassemblere
Du har taget dit første skridt ind i statisk analyse!
- Disassemblere konverterer maskinkode til assemblysprog.
- De er afgørende for at forstå software uden kildekode.
- Ghidra og IDA Pro er førende værktøjer på området.
- Disassemblere tilbyder forskellige visninger og navigationsværktøjer, som hjælper med at analysere kode.
Nu går vi i dybden med at identificere bestemte funktioner og data i disse disassemblerede binærfiler!
Lær Assembly med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Introduktion til disassemblere” gratis?
Ja — alle 3 lektioner i læringssporet Grundlæggende reverse engineering og binæranalyse, inklusive “Introduktion til disassemblere”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende reverse engineering og binæranalyse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Introduktion til disassemblere”?
Kom i gang med branchestandard-disassemblere som Ghidra og IDA Pro for at se assemblykode. Du øver dig i Grundlæggende reverse engineering og binæranalyse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Grundlæggende reverse engineering og binæranalyse?
Der kræves ingen tidligere erfaring. Grundlæggende reverse engineering og binæranalyse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Introduktion til disassemblere”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Grundlæggende reverse engineering og binæranalyse-lektion?
Ja. Alle Grundlæggende reverse engineering og binæranalyse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til disassemblere
- Identifikation af funktioner og data
- Analyse af kontrolflowgrafer
- Analyse af strenge og krydsreferencer