Kies uw taal
Cursus Software Reverse Engineering
Meer dan 2 miljoen studenten wereldwijd

Cursus Software Reverse Engineering

Beheers de volledige reverse engineering-workflow — van het lezen van ruwe assembly tot het verslaan van obfuscatie en het blootleggen van echte kwetsbaarheden. Deze cursus geeft je de technische diepgang om elke gecompileerde binary op Windows, Linux of macOS te analyseren. Of je nu malware, firmware of closed-source software aanpakt, je vertrekt met vaardigheden die de industrie daadwerkelijk vraagt.

Dedika voor bedrijven

Wat je gaat leren:

Je bouwt een solide basis in x86- en x86-64-assembly, binaire bestandsindelingen en CPU-architectuur voordat je verdergaat met praktische statische en dynamische analyse. Je gebruikt industriestandaard disassemblers, debuggers en decompilers om echte binaries te reversen en de programmalogica op hoog niveau te herstellen. De cursus behandelt obfuscatietechnieken, packeranalyse en anti-debugging-bypasses, zodat verharde doelen je niet stoppen. Je past reverse engineering ook direct toe op kwetsbaarheidsonderzoek, waarbij je geheugencorruptiefouten, authenticatiefouten en zwakke cryptografie identificeert. Gevorderde modules introduceren symbolische uitvoering, binary diffing, dynamische instrumentatie en automatiseringworkflows voor grootschalige analyse.

Hoe je praktisch studeert Cursus Software Reverse Engineering

Hoe je oefent Cursus Software Reverse Engineering

Voor bedrijven die hun team willen trainen

Bij Dedika voor bedrijven bevat de cursus oefeningen en voorbeelden die zijn afgestemd op jouw organisatie en precies zoals jouw bedrijf het nodig heeft.

Klik hier

Cursusinhoud

8 Hoofdstukken • 40 LessenDuur tussen 4 en 360 uren (jij beslist)

Hoofdstuk 1Bekijk details

Grondslagen van Reverse Engineering

  • Les 1 • Het RE-lab opzetten

    Begeleidt studenten bij het bouwen van een geïsoleerde analyseomgeving met virtuele machines en essentiële tools. Zorgt voor een veilige, reproduceerbare werkruimte voor alle oefeningen.

  • Les 2 • Juridische en ethische grenzen

    Behandelt autorisatievereisten, richtlijnen voor verantwoorde openbaarmaking en ethisch gedrag. Grondvest studenten in professionele normen voordat hands-on werk begint.

  • Les 3 • Wat is reverse engineering

    Definieert reverse engineering, de doelen ervan en de rol in beveiligingsonderzoek en softwareanalyse. Stelt de woordenschat vast die gedurende de cursus wordt gebruikt.

  • Les 4 • Essentiële computerarchitectuur

    Bespreekt CPU-registers, geheugenindeling en de ophaal-decodeer-uitvoercyclus. Biedt het hardware-mentale model dat nodig is om gedemonteerde code te interpreteren.

  • Les 5 • Overzicht van binaire bestandsindelingen

    Introduceert PE-, ELF- en Mach-O-structuren en hoe loaders deze in het geheugen mappen. Koppelt kennis van bestandsindelingen aan latere demontage- en patchtaken.

Hoofdstuk 2Bekijk details

Assembly-taal voor reverse engineers

  • Les 1 • x86-64-verschillen en -uitbreidingen

    Belicht registeruitbreiding, RIP-relatieve adressering en SIMD-basisbeginselen in 64-bits modus. Bereidt studenten voor op moderne 64-bits binaries die in de praktijk worden aangetroffen.

  • Les 2 • Grondslagen van de x86-instructieset

    Bespreekt dataverplaatsings-, rekenkundige en logische instructies met geannoteerde voorbeelden. Vormt de leeswoordenschat die nodig is voor al het komende demontagewerk.

  • Les 3 • De stack en aanroepconventies

    Geeft details over hoe functies argumenten doorgeven, registers bewaren en waarden retourneren bij belangrijke aanroepconventies. Cruciaal voor het nauwkeurig begrijpen van gedecompileerde uitvoer.

  • Les 4 • Besturingsstroominstructies

    Legt voorwaardelijke en onvoorwaardelijke sprongen, lussen en CALL/RET-mechanica uit. Studenten leren programmalogica te reconstrueren uit ruwe instructiereeksen.

  • Les 5 • Herkennen van constructies op hoog niveau

    Maakt assemblypatronen terug te koppelen aan C-level constructies zoals if-else, lussen en structs. Versnelt analyse door studenten de intentie te laten lezen in plaats van ruwe opcodes.

Hoofdstuk 3Bekijk details

Statische analysetechnieken

  • Les 1 • Symbolen annoteren en hernoemen

    Bespreekt systematisch hernoemen van functies, variabelen en datastructuren om een leesbaar model te bouwen. Verbetert direct de analysesnelheid en vermindert de cognitieve belasting.

  • Les 2 • Navigeren door codegrafen

    Leert het gebruik van controlestroomgrafen, callgrafen en kruisverwijzingen om de analyse te sturen. Maakt efficiënte navigatie door grote, onbekende codebases mogelijk.

  • Les 3 • String- en importanalyse

    Extraheert betekenisvolle strings, geïmporteerde API's en bibliotheeksignaturen om programmagedrag af te leiden. Biedt snelle triage voordat diepgaande code-analyse begint.

  • Les 4 • Statische analysetaken scripten

    Introduceert automatisering van repetitieve statische taken met behulp van disassembler-scripting-API's. Studenten schrijven scripts die op schaal hernoemen, annoteren en gegevens extraheren.

  • Les 5 • Disassemblers en hun interne werking

    Vergelijkt lineaire sweep- en recursieve descent-disassemblagealgoritmen en hun afwegingen. Studenten kiezen de juiste toolmodus voor elk analysescenario.

Hoofdstuk 4Bekijk details

Dynamische analyse en debuggen

  • Les 1 • Anti-debug-detectie en -omzeiling

    Identificeert veelvoorkomende anti-debug-trucs en demonstreert betrouwbare omzeilingsmethoden. Bereidt studenten voor op geharde doelwitten die in de praktijk worden aangetroffen.

  • Les 2 • Uitvoering traceren en loggen

    Gebruikt instructie-level tracing en API-logging om volledige uitvoeringsgeschiedenissen vast te leggen. Vult breekpuntanalyse aan voor niet-deterministische of multi-threaded doelwitten.

  • Les 3 • Debugger architectuur en concepten

    Legt uit hoe debuggers zich aan processen hechten, uitzonderingen afhandelen en de uitvoering beheersen. Biedt het conceptuele model dat nodig is om elke debugger effectief te gebruiken.

  • Les 4 • Programmastatus inspecteren

    Leert het lezen van registers, geheugen en de call-stack tijdens runtime om statische bevindingen te verifiëren. Studenten correleren live-status met demontage om codegedrag te bevestigen.

  • Les 5 • Breekpuntstrategieën

    Bespreekt conditionele, hardware- en geheugentoegangsbreekpunten voor gerichte analyse. Efficiënte breekpuntplaatsing verkort de tijd tot inzicht bij complexe doelwitten.

Hoofdstuk 5Bekijk details

Decompilatie en codeherstel

  • Les 1 • Omgaan met compileroptimalisaties

    Identificeert inlining, loop-unrolling en strength reduction-artefacten in gedecompileerde uitvoer. Studenten leren optimalisaties mentaal ongedaan te maken om de oorspronkelijke logica te herstellen.

  • Les 2 • Datastructuren herstellen

    Reconstrueert structs, unions en klasse-indelingen op basis van toegangspatronen in gedecompileerde code. Nauwkeurig structuurherstel is essentieel voor het begrijpen van objectgeoriënteerde doelwitten.

  • Les 3 • Objectgeoriënteerde code decompileren

    Behandelt C++ name mangling, virtuele dispatch en RTTI om klassehierarchieën te herstellen. Breidt decompilatievaardigheden uit naar de meerderheid van moderne gecompileerde software.

  • Les 4 • Hoe decompilers werken

    Legt het liften naar tussenrepresentatie, typeherstel en pseudocodegeneratie uit. Stelt realistische verwachtingen voor de kwaliteit en beperkingen van decompileruitvoer.

  • Les 5 • Werken met decompileruitvoer

    Leert het lezen, corrigeren en annoteren van decompiler-pseudocode om nauwkeurige modellen te produceren. Studenten verzoenen decompilerfouten met de demontagegrondwaarheid.

Hoofdstuk 6Bekijk details

Obfuscatie en anti-analysetechnieken

  • Les 1 • Virtualisatiegebaseerde obfuscatie

    Introduceert aangepaste VM-beschermers, bytecode-dispatch-loops en handler-identificatie. Studenten ontwikkelen een methodologie voor het gedeeltelijk omkeren van VM-beveiligde code.

  • Les 2 • String- en data-obfuscatie

    Bespreekt XOR-codering, stackgebaseerde stringconstructie en aangepaste ontsleutelingsroutines. Studenten extraheren automatisch en handmatig leesbare strings uit geobfusceerde samples.

  • Les 3 • Geautomatiseerde deobfuscatiesbenaderingen

    Past symbolische uitvoering en taint-analyse toe om deobfuscatie op schaal te automatiseren. Overbrugt handmatige technieken met tool-ondersteunde workflows voor complexe doelwitten.

  • Les 4 • Taxonomie van code-obfuscatie

    Catalogueert junk-insertie, ondoorzichtige predikaten, controlestroomafvlakking en substitutie. Geeft studenten een classificatiekader voor het herkennen van obfuscatie op zicht.

  • Les 5 • Packers en protectors

    Legt runtime-unpacking-stubs, importreconstructie en geheugendump-workflows uit. Studenten herstellen het oorspronkelijke uitvoerbare bestand uit gepakte of beveiligde samples.

Hoofdstuk 7Bekijk details

Kwetsbaarheidsontdekking via RE

  • Les 1 • Fuzzing-integratie met RE-bevindingen

    Gebruikt RE-afgeleide kennis om gerichte fuzzing-harnassen en seed-corpora te bouwen. Combineert statisch inzicht met dynamisch fuzzen om de ontdekking van kwetsbaarheden te maximaliseren.

  • Les 2 • Identificatie van cryptografische zwakheden

    Herkent zwakke algoritmen, onjuist sleutelbeheer en aangepaste crypto via statische analyse. Studenten beoordelen cryptografische beveiliging zonder toegang tot de broncode.

  • Les 3 • Logica- en authenticatiefouten

    Lokaliseert authenticatie-omzeilingen, onjuiste toestandsovergangen en race conditions via codebeoordeling. Toont aan dat logische fouten net zo gevaarlijk zijn als geheugenbugs.

  • Les 4 • Kwetsbaarheden documenteren en rapporteren

    Structureert kwetsbaarheidsrapporten met reproductiestappen, root-cause-analyse en impactbeoordelingen. Produceert professionele deliverables die geschikt zijn voor verantwoorde openbaarmaking.

  • Les 5 • Patronen van geheugencorruptiekwetsbaarheden

    Identificeert bufferoverlopen, use-after-free en integer overflow-patronen in demontage. Koppelt codepatronen op laag niveau aan hun beveiligingsimpact.

Hoofdstuk 8Bekijk details

Geavanceerde RE-workflows en automatisering

  • Les 1 • Een gestructureerde RE-methodologie ontwerpen

    Stelt een herhaalbare triage-tot-diepgaande-workflow voor onbekende binaries vast. Vermindert verspilde inspanning en zorgt voor consistente dekking bij grote doelwitten.

  • Les 2 • Symbolische en concolische uitvoering

    Past constraint solving toe om uitvoeringspaden te verkennen en automatisch gerichte invoer te genereren. Breidt handmatige analyse uit naar paddekkingsproblemen die te groot zijn voor handmatige beoordeling.

  • Les 3 • Binair diffen en patch-analyse

    Vergelijkt binaire versies om gepatchte functies te isoleren en gefixeerde kwetsbaarheden af te leiden. Essentieel voor patch-gap-analyse en regressiebeveiligingstesten.

  • Les 4 • Dynamische instrumentatieframeworks

    Gebruikt dynamische binaire instrumentatie om analyselogica bij runtime in te voegen zonder broncode. Maakt dekkingsmeting, taint-tracking en aangepaste tracing op schaal mogelijk.

  • Les 5 • Hergebruik

    Ontwerpt modulaire scripts, plugins en pipelines die blijven bestaan na een eenmalige inzet. Studenten produceren deelbare tools die toekomstig analysewerk versnellen.

Certificering

Jouw geldig certificaat van voltooiing

Deze cursus is voor jou:

  • Penetratietester: wil verder gaan dan geautomatiseerde scanners naar werk op binair niveau.

  • Afgestudeerde informatica: klaar om academische kennis te overbruggen naar realistische beveiligingspraktijk.

  • Malwareanalist: heeft een gestructureerde methode nodig om onbekende monsters met vertrouwen te ontleden.

  • CTF-deelnemer: serieus bezig met het oplossen van reverse engineering-uitdagingen op hogere moeilijkheidsgraden.

  • Ontwikkelaar van ingebedde systemen: nieuwsgierig naar de beveiligingsstatus van hun eigen gecompileerde firmware.

  • Carrièreswitcher: stapt over van IT-ondersteuning naar offensieve beveiliging of kwetsbaarheidsonderzoek.

Wat onze studenten zeggen

Jullie lessen zijn perfect. Ik heb het jaarpakket aangeschaft en heb eindelijk de mogelijkheid om verschillende onderwerpen die mij interesseren te volgen zonder van platform te hoeven wisselen... bedankt voor alles wat jullie doen, ik heb jullie al aan anderen aanbevolen...
Giulio Carlo
Giulio CarloStudent Digitale Marketing
Ik vind het fijn hoe de lessen direct ter zake zijn en hoe ik tussen hoofdstukken kan wisselen en content kan overslaan die ik niet nodig heb.
Mariana Ferres
Mariana FerresStudent Fotografie
Ik vind de content en de manier van presenteren en transcriptie van video's geweldig, wat het proces versnelt!
Luciana Alvarenga
Luciana AlvarengaStudent Nageldesign
Het platform is snel en eenvoudig te gebruiken. De diversiteit aan content en de aanvullende video's helpen enorm bij het leren.
André Felipe
André FelipeStudent Prompt Engineering

Belangrijkste opleidingen

FAQ

Wie is Dedika?

Is het certificaat geldig in Nederland?

Zijn de cursussen gratis?

Wat is de studielast van de cursus?

Hoe zien de cursussen eruit?

Hoe werken de cursussen?

Wat is de duur van de cursussen?

Wat zijn de kosten of prijzen van de cursussen?

Wat is een EAD- of online cursus en hoe werkt het?

PDF-cursus