De basis van reverse-engineering en binaire analyse · Les

API- en systeemaanroepen tijdens runtime traceren

Observeer hoe een programma met het besturingssysteem communiceert met API-hooks en syscall-tracers, als aanvulling op debugging met breakpoints en voor beter inzicht in gedrag.

Les 4 van 413 stappen

API- en systeemaanroepen tijdens runtime traceren is een gratis De basis van reverse-engineering en binaire analyse-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van reverse-engineering en binaire analyse. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van reverse-engineering en binaire analyse bevat in totaal 4 lessen.

De grens observeren

Je kunt breekpunten instellen, stap voor stap door code gaan en geheugen en registers inspecteren. Soms krijg je het snelste inzicht door te observeren waar een programma met het besturingssysteem communiceert.

Elke betekenisvolle actie (een bestand openen, een pakket verzenden) overschrijdt de grens tussen gebruikersmodus en kernelmodus als een systeemaanroep.

API-aanroepen versus systeemaanroepen

Een API-aanroep is een bibliotheekfunctie zoals fopen of CreateFileW. Daaronder voert die uiteindelijk een systeemaanroep naar de kernel uit.

Door beide lagen te traceren krijg je inzicht in het gedrag zonder elke instructie te hoeven lezen.

strace op Linux

strace registreert elke systeemaanroep die een proces doet, inclusief argumenten en retourwaarden.

strace -f -e trace=file ./target
# open('/etc/passwd', O_RDONLY) = 3

ltrace voor bibliotheekaanroepen

ltrace haakt in op de hogere bibliotheeklaag en toont aanroepen zoals strcmp en malloc. Dit is uitstekend om wachtwoordvergelijkingen te detecteren.

ltrace ./crackme
# strcmp('hunter2', 's3cr3t') = -1

API Monitor op Windows

Op Windows haken hulpprogramma's zoals API Monitor en Frida in op aanroepen naar kernel32, ws2_32 en vergelijkbare bibliotheken, waarbij ze argumenten live loggen.

Procmon vormt hierop een aanvulling door bestands-, register- en procesgebeurtenissen vast te leggen.

De ruis filteren

Een trace kan duizenden aanroepen opleveren. Filter op de categorie die je nodig hebt: bestand, netwerk, proces of register.

Door je te concentreren voorkom je dat je verdrinkt in de informatie, terwijl je de belangrijkste gebeurtenissen nog steeds opvangt.

strace -e trace=network ./target

Inhaken met Frida

Frida injecteert tijdens runtime een JavaScript-agent om functies te onderscheppen, zodat je argumenten kunt loggen of wijzigen. Het werkt op verschillende platforms.

Interceptor.attach(Module.getExportByName(null, 'open'), {
  onEnter: function (args) {
    console.log('open ' + args[0].readUtf8String());
  }
});

Correlatie met breekpunten

Gebruik tracing om te vinden waar iets interessants gebeurt en schakel daarna over naar je debugger om precies daar te stoppen.

Als strace een open op een verborgen configuratiebestand toont, stel je een breekpunt in op open om de omliggende logica te inspecteren.

Netwerkgedrag detecteren

Combineer het traceren van aanroepen met een pakketopname. Aanroepen van connect en send, samen met een Wireshark-opname, onthullen command-and-controlservers en protocollen.

strace -e trace=connect,sendto,recvfrom ./target

Bewustzijn van traceringwering

Sommige programma's detecteren ptrace (dat strace en debuggers gebruiken) en veranderen hun gedrag. Als een programma zich onder strace anders gedraagt, vermoed dan anti-debugging.

Je bestudeert ontduiking later grondig; onthoud nu alleen dat tracing niet onzichtbaar is.

Retourwaarden lezen

De retourwaarde van een aanroep zegt net zoveel als de argumenten. Een connect die 0 retourneert, is geslaagd; een open die -1 retourneert met ENOENT, betekent dat het programma naar een ontbrekend bestand zoekt.

strace drukt deze waarden inline af, zodat je de beslissingen van het programma beter begrijpt.

open('/tmp/.lock', O_RDONLY) = -1 ENOENT
# program then creates the lock file

Snelle controle

Welk hulpprogramma registreert elke systeemaanroep van een Linux-proces, inclusief argumenten en retourwaarden?

Samenvatting

Het traceren van aanroepen voegt inzicht in gedrag toe aan je dynamische gereedschapskist:

  • strace voor systeemaanroepen, ltrace voor bibliotheekaanroepen
  • API Monitor / Procmon / Frida op Windows en andere platforms
  • Filter de ruis en ga daarna naar breekpunten op de interessante locatie
  • Let op detectie van anti-ptrace
Gratis beginnen

Leer Assembly met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “API- en systeemaanroepen tijdens runtime traceren” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van reverse-engineering en binaire analyse, waaronder “API- en systeemaanroepen tijdens runtime traceren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van reverse-engineering en binaire analyse bevat in totaal 4 lessen.

Wat leer ik in “API- en systeemaanroepen tijdens runtime traceren”?

Observeer hoe een programma met het besturingssysteem communiceert met API-hooks en syscall-tracers, als aanvulling op debugging met breakpoints en voor beter inzicht in gedrag. Je oefent met De basis van reverse-engineering en binaire analyse door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van reverse-engineering en binaire analyse te beginnen?

Ervaring vooraf is niet nodig. De basis van reverse-engineering en binaire analyse op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “API- en systeemaanroepen tijdens runtime traceren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van reverse-engineering en binaire analyse?

Ja. Elke les over De basis van reverse-engineering en binaire analyse bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Basisprincipes van debuggers (GDB, WinDbg)
  2. Breakpoints instellen en stapsgewijs uitvoeren
  3. Geheugen en registers onderzoeken
  4. API- en systeemaanroepen tijdens runtime traceren
← Terug naar De basis van reverse-engineering en binaire analyse