c’t 07/2026
Wat is er waar van IT-mythes?
Cover van
Cover voor Malware analyseren: oefenplatforms voor beginnende reverse engineers

Malware analyseren: oefenplatforms voor beginnende reverse engineers

Door uitvoerbare malware te ontleden, kun je precies zien hoe die werkt. Maar dat moet je wel eerst leren – het liefst aan de hand van goed gekozen praktijkvoorbeelden en met wat hulp als dat nodig is.

Van willekeurige samples naar gericht oefenmateriaal

Waarom zou je je verdiepen in het ontleden van schadelijke code? Een mogelijk antwoord ligt voor de hand: omdat je dat beroepsmatig doet of later wilt gaan doen.

Maar er is nog een tweede reden: omdat het leuk is om te begrijpen hoe malware opgebouwd is en met welke trucs de ontwikkelaars ervan werken om hun schadelijke programma’s aan ontdekking en analyse te onttrekken.

Als je een geïsoleerde analyseomgeving hebt opgezet en de benodigde tools bij de hand hebt [1], sta je als beginner of geïnteresseerde leek nog voor de vraag: waar vind ik nu geschikte malware om te ontleden – oftewel schadelijke code waarvan beginnende malware-analisten bijzonder goed kunnen leren uit de opbouw en werking ervan?

Er zijn inmiddels veel online bronnen voor potentiële oefenobjecten, bijvoorbeeld in de vorm van speciaal ingerichte GitHub-repository’s en websites zoals MalwareBazaar en MalShare, waar beveiligingsonderzoekers samples delen met de community.

Maar als beginner sta je vaak radeloos voor de enorme en uiteindelijk willekeurige keuze. Geen wonder – hoe weet je nu welke schadelijke code past bij je eigen vaardigheidsniveau en je huidige leerdoelen? Hoe kun je na de analyse controleren of de verkregen inzichten kloppen? En wat doe je als je er even helemaal niet meer uitkomt?

In dit artikel stellen we beginnende onderzoekers van malware daarom platforms voor die gratis oefenmateriaal verrijken met de benodigde toegevoegde waarde aan informatie. Duidelijke leerdoelen, hints voor oplossingen en mogelijkheden om met anderen te discussiëren helpen je om de draad niet kwijt te raken – alle genoemde bronnen vind je via de link bij dit artikel.

De focus van de projecten ligt op de koningsdiscipline van de analyse: reverse-engineering – kortweg reversing. Afhankelijk van de programmeertaal pas je daarbij een disassembler of een decompiler toe op het binaire bestand en bestudeer je vervolgens de resulterende assemblercode of broncode.

Met behulp van een debugger is het bovendien mogelijk om een programma stap voor stap uit te voeren en bijvoorbeeld functieaanroepen en de meegegeven parameters heel nauwkeurig onder de loep te nemen.

Crackmes: reversing zonder risico

Vooral de eerste stappen in reversing kunnen behoorlijk uitdagend zijn: afhankelijk van het besturingssysteem, de gebruikte programmeertaal en de ingebouwde verhullings- en anti-analysemechanismen van een doelobject variëren de aanpak en de gebruikte tools.

Daar is volledige concentratie voor nodig – en die kan snel verstoord raken als je je, ondanks een veilige sandbox-omgeving, toch een beetje ongemakkelijk voelt bij de onderbewuste gedachte aan verborgen schadelijke functies. Dan komen zogeheten crackmes als geroepen – kleine, onschadelijke programma’s die speciaal bedoeld zijn voor reversing-oefeningen.

Lees dit artikel verder

Lees over tech-trends en achtergronden, nieuwe apparatuur, software en toepassingen voor professioneel gebruik. Met c’t heb je altijd de juiste tech-informatie. Word abonnee en lees onbeperkt alle artikelen.
Bekijk abonnementen Al abonnee? Log in

Die crackmes bestaan al sinds de jaren 80. Oorspronkelijk verwees het werkwoord ‘to crack’ in de naam naar het verwijderen van de kopieerbeveiliging uit commerciële programma’s. Maar als je daarbij iets illegaals vermoedt, heb je het mis: op serieuze oefenplatforms kraak je tegenwoordig alleen nog maar de crackmes zelf.

 Om de kleine programmaatjes er bijvoorbeeld toe te brengen bij de volgende uitvoering een succesmelding à la Crackme solved weer te geven, doorzoek je ze naar een wachtwoord, breng je soms ook kleine aanpassingen (patches) in de code aan – en verdiep je je voor dat doel min of meer intensief in de structuur en werking ervan.

Voor de verwante keygenmes, die ook hun oorsprong vinden in de wereld van softwarepiraterij, analyseer je programmafuncties voor het genereren van sleutels om vervolgens een keygen te schrijven – een tool die licentiesleutels genereert dus.

Een andere crackme-variant, de unpackme, richt zich op het verwijderen van anti-analyselagen in malware.

De challenges helpen je om reversing in eerste instantie op een speelse manier te benaderen en stevige basiskennis op te doen, zodat je later veel relaxter echte malware-uitdagingen aan kunt gaan.

Puzzelen, delen, discussiëren

Twee populaire crackme-platforms met een levendige communityparticipatie zijn crackmes.one en CrackMyApp. Geregistreerde gebruikers kunnen daar hun kans wagen met een grote selectie crackmes, keygenmes en unpackmes en er ook zelf een maken.

De opdrachten zijn afwisselend en dankzij gedetailleerde filterfuncties, bijvoorbeeld op moeilijkheidsgraad, besturingssysteem en programmeertaal, kun je makkelijker zoeken naar geschikte uitdagingen.

We raden aan om voor het werken met crackmes in het algemeen een virtuele machine te gebruiken. De platforms hebben wel strenge gebruiksregels en de ingezonden crackme-code wordt grondig gecontroleerd voordat die gepubliceerd wordt, maar, zoals crackmes.one zelf in zijn FAQ zegt, het is niet uit te sluiten dat er toch eens een schadelijk programma door de strenge controle glipt.

Als je iets hebt gevonden en succesvol was met het reversen, kun je je oplossing op crackmes.one of CrackMyApp publiceren. Die oplossing moet duidelijk aantonen dat je de werking van de crackme echt doorgrond hebt en niet zomaar lukraak patches aangebracht hebt.

Dat zorgt ervoor dat ook andere gebruikers profiteren van de write-ups en die indien nodig als hulp kunnen gebruiken.

Geaccepteerde oplossingen zijn beschikbaar op de detailpagina van de betreffende crackme. Daarnaast zijn er commentaarsecties waar gebruikers hun ervaringen kunnen delen. Crackmes.one biedt bovendien de mogelijkheid om via Discord met de community te discussiëren.

Bij CrackMyApp motiveert een leaderboard je om actief mee te doen: op aparte ranglijsten staan onder andere bijzonder actieve leden en degenen die regelmatig oplossingen of zelfs eigen crackmes uploaden.

Een kritiekpunt van de platforms is wellicht de soms wisselende codekwaliteit van de door gebruikers gemaakte challenges. Maar uiteindelijk is het uitwerken van een eigen crackme-idee ook een belangrijk onderdeel van de oefening – net zoals aankomende malware-analisten moeten wennen aan het reverse-engineren van soms slordig geprogrammeerde schadelijke code.

Malware-analyse met hulp

Voor de volgende tip is een speciale virtuele machine niet alleen een uitdrukkelijke aanbeveling, maar een absolute must – want bij het Samplepedia-project ga je de strijd aan met echte malware.

Vooral voor beginners is het handig dat de samples op samplepedia.cc met de hand samengesteld zijn– en wel door Karsten Hahn, Principal Malware Researcher bij G Data. Hij beheert het platform, dat in december 2025 opgericht is, in zijn vrije tijd en verzamelt daar schadelijke code waarmee je volgens hem specifieke aspecten van het reverse-engineren bijzonder goed kunt oefenen.

Als je de uitdagingen wilt aangaan, registreer je je gratis op Samplepedia en kies je vervolgens iets geschikts uit het overzicht met voorbeelden. Daarbij helpen onder andere de sorteermogelijkheid op moeilijkheidsgraad (easy, medium, advanced en expert) en het filteren op doelplatforms en tags zoals packed (voor obfuscatie ingepakte malware), anti-vm (malware die zich in virtuele machines dood houdt) of .net (in .NET geschreven malware) enzovoort.

De samples zelf worden extern gehost op MalShare en MalwareBazaar. Aan elk van hen is op Samplepedia een concrete (Engelstalige) opdracht toegewezen die je moet uitvoeren – bijvoorbeeld een specifieke programmafunctie opsporen in de gedisassembleerde code en begrijpen hoe die werkt.

Handig zijn de tooltips die bij elke opdracht horen. Die zijn lekker afwisselend: naast klassieke reverse-engineering-taken met behulp van debuggers, disassemblers en decompilers zijn er bijvoorbeeld ook uitdagingen waarbij je macrocode in Office-documenten onder de loep moet nemen met behulp van de oletools-collectie van Didier Stevens.

In een andere opdracht wordt simpelweg het compressieprogramma 7-Zip gebruikt om de structuur van een met het Electron-framework gemaakte applicatie te onderzoeken. Terloops leer je tools en variaties op schadelijke code kennen waar je misschien nog nooit van gehoord hebt.

Voor de meeste challenges heeft Karsten Hahn, alias struppigel, zelf oplossingen klaargezet – deels in tekstvorm, deels als video’s op zijn YouTube-kanaal over malware-analyse.

Maar op samplepedia.cc staan ook al eerste oplossingen van enthousiaste gebruikers, die Hahn na een grondige controle vrijgegeven heeft. De oplossingen zijn te vinden op de detailpagina van de betreffende challenge.

Daar staan ook optionele hints (spoilers), die pas zichtbaar worden als je erop klikt. Als je zelf oplossingen instuurt, kun je punten verzamelen en stijgen op de Samplepedia-ranglijst.

Ook is er de mogelijkheid om eigen challenge-voorstellen te maken en die via een formulier in het ledengedeelte naar Karsten Hahn te sturen. Belangrijk: naast het vermelden van een MalShare- of MalwareBazaar-link naar interessante malware en de beschrijving van het concrete analysedoel, moet er ook een zelfgemaakte oplossing worden bijgevoegd.

Omgaan met dreigingsscenario’s

Als je op zoek bent naar meer real-life malware-uitdagingen, is een bezoek aan het platform malops.io zeker de moeite waard. Ook dat project wordt gerund door een beveiligingsexpert, namelijk threat-researcher Gameel Ali. Het threat-hunting-platform Hunt.io sponsort het MalOps-project, maar is op het platform slechts subtiel gelinkt.

Na gratis registratie kun je je tanden zetten in de door en door uitdagende challenges. Het concept ervan is bijzonder aantrekkelijk, omdat ze complexe real-life scenario’s weergeven. Een voorbeeld: op een systeem in het netwerk werden botnetactiviteiten waargenomen in de vorm van verdacht uitgaand verkeer. De Lab Files van die uitdaging bevatten naast de schadelijke botcode ook bijvoorbeeld PCAP-bestanden en eventlogs, die eveneens moeten worden geanalyseerd om de dreiging in zijn geheel te begrijpen.

Er zijn meerdere vragen per challenge, waarvoor je telkens deelpunten kunt verdienen (“Wat is de naam van de eerste Windows API-functie die tijdens de runtime wordt gedecodeerd?”, “Noem drie IP-adressen van de aanvallers waarmee contact is gemaakt.”).

Een hintsysteem biedt meerdere tips bij elke vraag; als je die bekijkt, vermindert echter het totale aantal te behalen punten. Meerdere ranglijsten – per challenge, wereldwijd en uitgesplitst per deelnemend land – motiveren je om door te zetten.

Ook gemotiveerde hobbyisten komen bij Samplepedia aan hun trekken, maar MalOps richt zich vooral op beginnende en ervaren beveiligingsexperts die een breed scala aan verschillende analysevaardigheden willen trainen en uitbreiden aan de hand van complexe opdrachten.

Tot de beschikbare aandachtsgebieden behoren naast botnet-scenario’s zoals het beschreven voorbeeld bijvoorbeeld de analyse van ransomware, het omzeilen van verschillende obfuscation-technieken en het opsporen en verwijderen van diep in het systeem verankerde rootkits.

De complexiteit van de taken – in de categorie Labs zijn er zelfs complete aanvalsketens (Chain Challenges) om te analyseren – maakt het bij MalOps onmogelijk om je eigen uitdagingen naar het platform te sturen. Gezien het samenhangende totaalconcept en de zorgvuldigheid die Ali er duidelijk ingestoken heeft, zou zo’n functie wellicht contraproductief zijn.

Meer tips en zoekhulp

Andere bronnen die we je hier niet willen onthouden, zijn de tutorials van Alexandre Borges, de gratis reverse-engineering-cursussen bij OpenSecurityTraining en de malware- en kennisdatabase vx-underground.org – zie de link bij dit artikel.

Ook buiten het materiaal dat expliciet is ontworpen om te leren, kun je hulp zoeken en vinden – bijvoorbeeld in actuele analyses van schadelijke code, zoals die regelmatig worden gepubliceerd op blogs van onafhankelijke beveiligingsonderzoekers en op websites van antivirusfabrikanten.

Niet zelden bevatten ze bestands-hashes van de ontleedde samples, die je dan met een beetje geluk bijvoorbeeld bij MalShare kunt vinden. Bij het zoeken naar dergelijke publicaties helpt het Malpedia-platform van het Fraunhofer FKIE je indien nodig. We wensen je veel succes bij het uitzoeken en overwinnen van je volgende malware-uitdaging!

Olivia von Westernhagen en Noud van Kruysbergen

Literatuur

Inspiratie in je mailbox

Blijf bij op IT-gebied en verbreed je expertise. Ontvang elke week artikelen over de laatste tech-ontwikkelingen, toepassingen, nieuwe hard- en software én ontvang tips en aanbiedingen.

Loginmenu afsluiten