
Software Reverse Engineering kurs
Bli skicklig på hela arbetsflödet för reverse engineering — från att läsa rå assembler till att övervinna obfuskering och avslöja verkliga sårbarheter. Den här kursen ger dig det tekniska djup som krävs för att analysera kompilerade binärer på Windows, Linux eller macOS. Oavsett om du inriktar dig på skadlig kod, firmware eller proprietär programvara får du de färdigheter som branschen faktiskt efterfrågar.
Vad du kommer att lära dig:
Du bygger en solid grund inom x86- och x86-64-assembler, binära filformat och CPU-arkitektur innan du går vidare till praktisk statisk och dynamisk analys. Du använder branschstandardiserade disassemblerare, felsökningsverktyg och dekompilatorer för att granska och återskapa programlogik på hög nivå från riktiga binärer. Kursen täcker obfuskeringstekniker, packeranalys och förbikopplingar av antifelsökning så att härdade mål inte stoppar dig. Du tillämpar även reverse engineering direkt på sårbarhetsforskning, där du identifierar minneskorruptionsbuggar, autentiseringsbrister och svag kryptografi. Avancerade moduler introducerar symbolisk exekvering, binär diffning, dynamisk instrumentering och automatiseringsarbetsflöden för storskalig analys.
Hur du studerar praktiskt Software Reverse Engineering kurs
Hur du övar Software Reverse Engineering kurs
För dig som är företag och vill utbilda ditt team
På Dedika för företag anpassas kursen med övningar och exempel från just din verksamhet, på det sätt som ditt företag behöver.
Kursinnehåll
8 Kapitlen • 40 LektionerVaraktighet mellan 4 och 360 timmar (du bestämmer)
Kapitel 1DöljDölj detaljerSe detaljerGrunderna i reverse engineering
Grunderna i reverse engineering
Lektion 1 • Installera RE-labbet
Vägleder dig genom att bygga en isolerad analysmiljö med virtuella maskiner och nödvändiga verktyg. Säkerställer en säker, reproducerbar arbetsyta för alla övningar.
Lektion 2 • Juridiska och etiska gränser
Behandlar auktorisationskrav, normer för ansvarsfullt avslöjande och etiskt uppförande. Grundar dig i professionella standarder innan det praktiska arbetet börjar.
Lektion 3 • Vad är reverse engineering
Definierar reverse engineering, dess mål och dess roll inom säkerhetsforskning och programvaruanalys. Fastställer terminologin som används genom hela kursen.
Lektion 4 • Datorarkitekturens grunder
Går igenom CPU-register, minneslayout och fetch-decode-execute-cykeln. Ger den hårdvarumentala modell som krävs för att tolka disassemblerad kod.
Lektion 5 • Översikt över binära filformat
Introducerar strukturerna PE, ELF och Mach-O samt hur laddare mappar in dem i minnet. Kopplar kunskap om filformat till senare disassemblerings- och patchuppgifter.
Kapitel 2DöljDölj detaljerSe detaljerAssemblyspråk för reverse engineers
Assemblyspråk för reverse engineers
Lektion 1 • Skillnader och utökningar i x86-64
Belyser registerexpansion, RIP-relativ adressering och SIMD-grunder i 64-bitarsläge. Förbereder dig för moderna 64-bitars binärer som påträffas i praktiken.
Lektion 2 • Grunder i x86-instruktionsuppsättningen
Behandlar instruktioner för dataöverföring, aritmetik och logik med kommenterade exempel. Bygger det läsvokabulär som behövs för allt kommande disassembleringsarbete.
Lektion 3 • Stacken och anropskonventioner
Detaljerar hur funktioner skickar argument, bevarar register och returnerar värden enligt de stora anropskonventionerna. Avgörande för att förstå dekompilerad utdata korrekt.
Lektion 4 • Instruktioner för kontrollflöde
Förklarar villkorliga och ovillkorliga hopp, loopar samt CALL/RET-mekanik. Du lär dig att rekonstruera programlogik från råa instruktionssekvenser.
Lektion 5 • Identifiera högnivåkonstruktioner
Mappar assemblymönster tillbaka till C-nivåkonstruktioner som if-else, loopar och struct:ar. Snabbar upp analys genom att du lär dig läsa avsikter snarare än råa opkoder.
Kapitel 3DöljDölj detaljerSe detaljerStatiska analystekniker
Statiska analystekniker
Lektion 1 • Kommentera och byta namn på symboler
Behandlar systematisk namngivning av funktioner, variabler och datastrukturer för att bygga en läsbar modell. Förbättrar analyshastigheten direkt och minskar den kognitiva belastningen.
Lektion 2 • Navigera i kodgrafer
Lär ut användning av kontrollflödesgrafer, anropsgrafer och korsreferenser för att orientera analysen. Möjliggör effektiv navigering i stora, okända kodbaser.
Lektion 3 • Sträng- och importanalys
Extraherar meningsfulla strängar, importerade API:er och bibliotekssignaturer för att sluta sig till programbeteende. Ger snabb sortering innan djupare kodanalys påbörjas.
Lektion 4 • Skripta statiska analysuppgifter
Introducerar automatisering av repetitiva statiska uppgifter med hjälp av disassemblerings-skript-API:er. Du skriver skript som byter namn, kommenterar och extraherar data i stor skala.
Lektion 5 • Disassemblerare och deras interna funktion
Jämför linjär svep- och rekursiv nedstigningsalgoritm för disassemblering samt deras avvägningar. Du väljer rätt verktygsläge för varje analysscenario.
Kapitel 4DöljDölj detaljerSe detaljerDynamisk analys och felsökning
Dynamisk analys och felsökning
Lektion 1 • Upptäckt och förbigång av anti-felsökning
Identifierar vanliga anti-felsökningstrick och demonstrerar tillförlitliga metoder för att kringgå dem. Förbereder dig för härdade mål som påträffas i verklig analys.
Lektion 2 • Spårning och loggning av exekvering
Använder instruktionsnivåspårning och API-loggning för att fånga fullständiga exekveringshistoriker. Kompletterar brytpunktsanalys för icke-deterministiska eller flertrådade mål.
Lektion 3 • Felsökarens arkitektur och koncept
Förklarar hur felsökare ansluter till processer, hanterar undantag och kontrollerar exekvering. Ger den konceptuella modell som krävs för att använda vilken felsökare som helst effektivt.
Lektion 4 • Inspektera programtillstånd
Lär ut att läsa register, minne och anropsstacken vid körningstid för att verifiera statiska fynd. Du korrelerar aktivt tillstånd med disassemblering för att bekräfta kodens beteende.
Lektion 5 • Brytpunktsstrategier
Behandlar villkorliga, hårdvaru- och minnesåtkomstbrytpunkter för riktad analys. Effektiv brytpunktsplacering minskar tiden till insikt för komplexa mål.
Kapitel 5DöljDölj detaljerSe detaljerDekompilering och kodåterskapande
Dekompilering och kodåterskapande
Lektion 1 • Hantera kompilatoroptimeringar
Identifierar inlining, loopavrullning och styrkereduktionsartefakter i dekompilerad utdata. Du lär dig att mentalt ångra optimeringar för att återskapa den ursprungliga logiken.
Lektion 2 • Återskapa datastrukturer
Rekonstruerar structar, unioner och klasslayouter från åtkomstmönster i dekompilerad kod. Noggrann strukturåterskapning är avgörande för att förstå objektorienterade mål.
Lektion 3 • Dekompilera objektorienterad kod
Behandlar C++ name mangling, virtuell dispatch och RTTI för att återskapa klasshierarkier. Utökar dekompileringsfärdigheterna till merparten av modern kompilerad programvara.
Lektion 4 • Hur dekompilatorer fungerar
Förklarar lyftning till mellanrepresentation, typåterskapning och generering av pseudokod. Skapar korrekta förväntningar på dekompilatorns utdatakvalitet och begränsningar.
Lektion 5 • Arbeta med dekompilatorns utdata
Lär ut att läsa, korrigera och kommentera dekompilatorns pseudokod för att producera korrekta modeller. Du jämför dekompilatorns fel mot den sanna disassembleringen.
Kapitel 6DöljDölj detaljerSe detaljerObfuskering och anti-analystekniker
Obfuskering och anti-analystekniker
Lektion 1 • Virtualiseringsbaserad obfuskering
Introducerar anpassade VM-skydd, bytecode-dispatchloopar och identifiering av hanterare. Du utvecklar en metodik för att delvis reversa VM-skyddad kod.
Lektion 2 • Sträng- och dataobfuskering
Behandlar XOR-kodning, stackbaserad strängkonstruktion och anpassade dekrypteringsrutiner. Du extraherar klartextsträngar från obfuskerade prover automatiskt och manuellt.
Lektion 3 • Automatiserade metoder för av-obfuskering
Tillämpar symbolisk exekvering och taint-analys för att automatisera av-obfuskering i stor skala. Överbryggar manuella tekniker med verktygsstödda arbetsflöden för komplexa mål.
Lektion 4 • Taxonomi för kodobfuskering
Katalogiserar införande av skräpkod, opaka predikat, kontrollflödesplattning och substitution. Ger dig ett klassificeringsramverk för att identifiera obfuskering direkt.
Lektion 5 • Packare och skydd
Förklarar runtime-uppackningsstubbar, importrekonstruktion och arbetsflöden för minnesdumpar. Du återskapar den ursprungliga körbara filen från packade eller skyddade prover.
Kapitel 7DöljDölj detaljerSe detaljerSårbarhetsupptäckt genom RE
Sårbarhetsupptäckt genom RE
Lektion 1 • Integrering av fuzzing med RE-fynd
Använder RE-härledd kunskap för att bygga riktade fuzzing-harnessar och frökorpusar. Kombinerar statisk insikt med dynamisk fuzzing för att maximera sårbarhetsupptäckt.
Lektion 2 • Identifiering av kryptografiska svagheter
Identifierar svaga algoritmer, felaktig nyckelhantering och egenutvecklad krypto genom statisk analys. Du bedömer kryptografisk säkerhet utan tillgång till källkod.
Lektion 3 • Logik- och autentiseringsbrister
Lokaliserar autentiseringsförbigångar, felaktiga tillståndsövergångar och tävlingstillstånd genom kodgranskning. Demonstrerar hur logikfel är lika farliga som minnesbuggar.
Lektion 4 • Dokumentera och rapportera sårbarheter
Strukturerar sårbarhetsrapporter med reproduceringssteg, grundorsaksanalys och konsekvensbedömningar. Producerar professionella leveranser lämpliga för ansvarsfullt avslöjande.
Lektion 5 • Sårbarhetsmönster för minneskorruption
Identifierar buffertöverskridningar, use-after-free och heltalsöverskridningsmönster i disassemblering. Kopplar lågnivåkodmönster till deras säkerhetspåverkan.
Kapitel 8DöljDölj detaljerSe detaljerAvancerade RE-arbetsflöden och automatisering
Avancerade RE-arbetsflöden och automatisering
Lektion 1 • Utforma en strukturerad RE-metodik
Etablerar ett repeterbart arbetsflöde från sortering till djupdykning för okända binärer. Minskar bortkastad ansträngning och säkerställer enhetlig täckning över stora mål.
Lektion 2 • Symbolisk och konkolisk exekvering
Tillämpar villkorslösning för att utforska exekveringsvägar och generera riktade indata automatiskt. Utökar manuell analys till problem med vägtäckning som är för stora för manuell granskning.
Lektion 3 • Binär diffning och patchanalys
Jämför binära versioner för att isolera patchade funktioner och sluta sig till åtgärdade sårbarheter. Avgörande för patch-gap-analys och regressionssäkerhetstestning.
Lektion 4 • Ramverk för dynamisk instrumentering
Använder dynamisk binär instrumentering för att infoga analyslogik vid körningstid utan källkod. Möjliggör täckningsmätning, taint-spårning och anpassad spårning i stor skala.
Lektion 5 • Bygga återanvändbara RE-verktyg
Utformar modulära skript, plugins och pipelines som består bortom ett enskilt uppdrag. Du producerar delbara verktyg som snabbar upp framtida analysarbete.
Ditt giltiga slutförandecertifikat
Den här kursen är för dig:
Penetrationstestare: vill gå bortom automatiserade skannrar och över till arbete på binärnivå.
Datavetenskapsexaminerad: redo att överbrygga akademisk kunskap och verklig säkerhetsövning.
Malwareanalytiker: behöver strukturerad metodik för att självsäkert dissekera okända sampel.
CTF-deltagare: seriös med att knäcka reverse engineering-utmaningar på högre svårighetsgrader.
Utvecklare av inbyggda system: nyfiken på säkerhetsläget hos sin egen kompilerade fasta programvara.
Karriärbytare: övergår från IT-stöd till offensiv säkerhet eller sårbarhetsforskning.
Vad våra elever säger
Era lektioner är perfekta. Jag köpte årspaketet och har äntligen möjlighet att följa olika ämnen som intresserar mig utan att behöva byta plattform... tack för allt ni gör, jag har redan rekommenderat er till andra...

Jag gillar hur lektionerna går rakt på sak och hur jag kan byta kapitel och hoppa över innehåll som jag inte behöver.

Jag gillar innehållet och presentationssättet samt transkriptionen av videorna, vilket påskyndar processen!

Plattformen är snabb och enkel att använda. Mångfalden av innehåll och de kompletterande videorna hjälper mycket i inlärningen.

Viktigaste kompetenserna
FAQ
Vem är Dedika?
Är intyget giltigt i Sverige?
Är kurserna gratis?
Vad är kursens arbetsinsats?
Hur ser kurserna ut?
Hur fungerar kurserna?
Hur lång tid tar kurserna?
Vad kostar kurserna?
Vad är en EAD- eller onlinekurs och hur fungerar den?
PDF-kurs




















