Reverse Engineering in het AI-tijdperk: waarom het werk belangrijker is, en hoe AI de workflow verandert

Reverse Engineering in het AI-tijdperk: waarom het werk belangrijker is, en hoe AI de workflow verandert

Reverse Engineering in het AI-tijdperk: waarom het werk belangrijker is, en hoe AI de workflow verandert

Invoering

Veel mensen gingen ervan uit dat AI reverse engineering overbodig zou maken. De fantasie was netjes. Modellen zouden code lezen, binaire bestanden uitleggen, protocollen ontwarren, malware samenvatten en in het algemeen het oude werk van patiënttechnisch onderzoek vervangen door iets dat sneller, glanzender en veel geschikter was voor conferentiedia's.

De werkelijkheid is ruwer en interessanter geweest.

AI heeft de behoefte aan reverse engineering niet verminderd. Het verhoogde het. We leven nu in een wereld met ondoorzichtigere clients, meer propriëtaire verpakkingen rond modellen, meer edge-apparaten die ongedocumenteerd gedrag verzenden, meer agentruntimes die de vertrouwensgrenzen overschrijden, meer desktop- en mobiele software die consequentielogica in binaire bestanden verbergt, en meer teams die proberen systemen te integreren of te beveiligen die ze niet hebben gebouwd en die ze niet volledig vanaf de bron kunnen inspecteren. Dat is niet minder reverse engineering. Dat is meer, en onder grotere leveringsdruk.

De diepere reden is eenvoudig. AI breidt softwaregedrag sneller uit dan software-eerlijkheid. Systemen worden samengesteld uit SDKs, runtimes, agents, plug-ins, apparaatfirmware, model-serving-componenten en externe clients die er allemaal coherent uitzien in een diagram totdat iemand moet uitleggen wat een binair bestand feitelijk doet, wat een model-wrapper werkelijk verzendt, of waarom een ​​update het gedrag veranderde op een manier die niemand zich heeft aangemeld om te verdedigen.

Dit is waar reverse engineering scherp modern wordt in plaats van vaag nostalgisch. Het is niet langer alleen het werk van malwareanalisten, firmwarespecialisten of protocolarcheologen. Het is het werk van teams die de waarheid uit artefacten moeten halen nadat de documentatie optimistisch, onvolledig of volledig fictief is geworden.

AI verandert dit werk, ja. Het kan de triage, annotatie, het genereren van hypothesen, het differentiëren en het opstellen van documentatie versnellen. Het kan helpen om helperscripts sneller te bouwen. Het kan de tijd verkorten tussen "wat is dit voor ding?" en "we hebben een werkende technische kennis." Maar het schaft de centrale discipline niet af. Het artefact moet nog worden onderzocht. De looptijd moet nog steeds in acht worden genomen. Het protocol moet nog worden gevalideerd. De mens moet nog beslissen of de verklaring het contact met bewijsmateriaal overleeft.

Dat is het deel dat mensen steeds proberen over te slaan, misschien omdat overslaan modern klinkt. Helaas hebben productiesystemen, incidentrespons en beveiligingsbeoordelingen nog steeds de ouderwetse zwakte dat ze de voorkeur geven aan de realiteit.

Waarom Reverse Engineering waardevoller werd, niet minder

Het moderne softwaredomein bevat meer zwarte dozen dan veel teams graag toegeven. Sommige ervan zijn historisch: oude binaire bestanden, klanten van leveranciers, verlaten apparaatfirmware, ongedocumenteerde desktopcomponenten, propriëtaire protocollen, installatieprogramma's, kernelmodules of middleware die nooit duidelijk heeft leren spreken. Sommige zijn gloednieuw: modelruntimes, agentshells, ingebedde inferentiepakketten, browserextensies, updateformaten voor smart-devices en applicatiebundels die lokaal gedrag stilletjes omzetten in netwerkgedrag op manieren die niemand heeft gedocumenteerd omdat de sprint al laat was.

Het AI-tijdperk vergroot deze druk op drie manieren.

Ten eerste vermenigvuldigt het artefacten. Teams verzenden en integreren nu meer wrappers, meer assistenten, meer logica aan de clientzijde, meer SDKs van leveranciers en meer experimenteerlagen dan voorheen. Elke nieuwe laag kan een plek worden waar veiligheidsaannames, prestatiekosten of gedragsveranderingen zich verschuilen achter branding en optimisme.

Ten tweede vergroot het de interpretatieproblemen. De vraag is niet langer alleen "wat doet dit binaire bestand?" Het is ook "wat doet dit binaire bestand met het modelaanroeppad, het ophaalpad, de lokale cache, het plugin-oppervlak, het updatemechanisme of de operatorworkflow?" Reverse engineering wordt het werk van het herstellen van gedrag van systemen waarvan de documentatie is geschreven door verschillende teams, verschillende tijdperken of verschillende stemmingen.

Ten derde vermenigvuldigt het de kosten van het verkeerd hebben. Als een conventioneel nutsbedrijf zich vreemd gedraagt, kan de schade beperkt zijn. Als een client, agenthelper of eigen automatiseringscomponent zich vreemd gedraagt ​​met behulp van AI, kan de schade zich uiten in gegevenslekken, onvoorspelbare autorisatie, valse audittrails of een beveiligingsverhaal dat instort zodra iemand de belofte voor de eerste keer vergelijkt met de pakketopname.

Het werk doet er dus meer toe omdat de artefacten er meer toe doen. Het probleem is niet dat software onbegrijpelijk is. Het probleem is dat belangrijke software commercieel actief blijft, terwijl deze slechts gedeeltelijk leesbaar is. Reverse engineering is de manier waarop teams die kloof dichten zonder te wachten tot de leverancier, de oorspronkelijke auteur of het universum betere gewoonten ontwikkelt.

Waar AI echt helpt bij Reverse Engineering

AI is nuttig bij reverse engineering wanneer het wordt gebruikt als versnellingslaag en niet als vervanging voor de waarheid.

Het is erg goed om de eerste pass in beweging te krijgen. Grote stapels tekenreeksen, importbestanden, logboeken, symbolen, decompileruitvoer, API-sporen en repetitieve structurele aanwijzingen kunnen veel sneller worden geclusterd, getagd, samengevat en geprioriteerd met behulp van machines dan door één mens naar alles te laten kijken totdat de koffie niet meer werkt. Dat is van belang omdat veel opdrachten niet blijven hangen op de moeilijkste technische gevolgtrekkingen, maar op het moeras van de initiële sortering die moet plaatsvinden voordat het echte probleem zichtbaar wordt.

AI is ook handig voor annotatie. Gedecompileerde functies hebben naamsuggesties nodig. Herhaalde oproeppatronen moeten worden gegroepeerd. Overgangen tussen kandidaat-toestanden hebben voorlopige verklaringen nodig. Protocolvelden hebben hypothesen nodig. Gereedschapslijm moet worden geschreven. De helpers van Ghidra en Frida hebben een eerste versie nodig. Documentatie voor de rest van het team moet niet langer klinken als een losgeldbriefje uit het binaire bestand.

Dat soort hulp is echt. Het bespaart tijd. Het maakt het eerste deel van het werk minder vervelend. Het maakt ook de samenwerking eenvoudiger, omdat het ruwe artefact sneller bespreekbaar wordt. Ingenieurs, onderzoekers en besluitvormers kunnen vertrekken van een gelabelde kaart in plaats van van een digitale grotmuur.

Er is nog een ander voordeel dat commercieel van belang is. AI verkort de tijd tussen verdenking en het lezen van de beslissingskwaliteit. Dat kan de economische aspecten van een engagement veranderen. Een team hoeft niet zo lang te wachten om erachter te komen of het te maken heeft met een gewoon integratieprobleem, een verborgen beveiligingsgrens, een beschermde modelwrapper, een verborgen updatepad of een component waarvan het gedrag voldoende afwijkt van de documentatie zodat het leiderschap moet ophouden iets anders te doen.

Op deze manier gebruikt AI vervangt reverse engineering niet. Het maakt reverse engineering minder administratief traag.

Waar AI ligt, en waarom dat er nog steeds toe doet

AI liegt ook prachtig, en dat is precies de reden waarom gedisciplineerde teams weigeren het verantwoordelijk te maken voor de conclusies.

Een model kan plausibele functienamen genereren die onjuist zijn. Het kan een protocolverhaal afleiden dat in de helft van de velden past en de rest hallucineert. Het kan zelfverzekerd commentaar produceren over de uitvoer van de decompiler dat scherper klinkt dan het bewijsmateriaal verdient. Het kan dubbelzinnigheid samenvatten in een gepolijste zin voordat de looptijd iets heeft bevestigd. En omdat de taal vloeiend is, beginnen mensen het te behandelen als kennis in plaats van als een vermoeden met een mooie houding.

Dit is vooral gevaarlijk bij reverse engineering, omdat veel artefacten er al suggestief uitzien. Strings duiden op gedrag. Import duidt op mogelijkheden. De symboolvormen duiden op structuur. Gedecompileerde controlestroom duidt op intentie. Tips zijn nuttig. Tips zijn geen oordelen. AI heeft de neiging om hints eerder als vonnissen te laten klinken dan een workflow voor volwassenen zou moeten toestaan.

Dat is de reden waarom sterke teams een regel opstellen die bijna ouderwets aanvoelt: AI kan de hypothese opstellen, maar het artefact en de looptijd bepalen nog steeds het antwoord.

Een pakketopname verslaat een verhaal. Een herhaling verslaat een theorie. Een geheugenspoor verslaat een zelfverzekerde paragraaf. Een dynamische hook verslaat een charmante modeloverzicht. Een gereproduceerde staatstransitie verslaat een verdacht gepolijste verklaring die de uitvoering nooit heeft overleefd.

Dit maakt AI niet nutteloos. Het maakt het bestuurbaar. En beheersbare instrumenten zijn degenen die een permanente plaats verdienen in serieus technisch werk.

De workflow die echt werkt

De meest betrouwbare interactie tussen AI en reverse engineering is eerder cyclisch dan devotioneel.

Verzamel eerst het artefact eerlijk. Binair, pakket, trace, strings, import, capture, logs, payloads bijwerken, procesboom, systeemaanroepen, netwerkranden, decompileruitvoer. Laat het instrument niet beginnen met uitvinden voordat het bewijsmateriaal op tafel ligt.

Ten tweede: gebruik AI om de triage te versnellen. Groepeer de import. Markeer de snaren. Vat repetitieve stromen samen. Stel waarschijnlijke moduleverantwoordelijkheden op. Produceer namen van kandidaten en waarschijnlijke grenzen. Genereer kleine scripts voor repetitief gereedschapswerk. Vraag om hypothesen, niet om doctrines.

Ten derde: valideer dynamisch. Haak het pad. Speel het verkeer opnieuw af. Activeer het gedrag. Vergelijk wijzigingen in het bestandssysteem, registerwijzigingen, netwerkwijzigingen, cryptobewerkingen of de UI-status met de hypothese. Dit is waar de mooie leugens beginnen te sterven, en dat is gezond voor iedereen.

Ten vierde: schrijf de conclusie in menselijke taal die nauwkeurig onderzoek overleeft. Wat gebeurt er eigenlijk? Wat is nog onzeker? Wat is het risico? Wat kan er vervolgens veranderd worden? Welk bewijs ondersteunt dat bevel? Reverse engineering wordt pas commercieel nuttig als het resultaat leesbaar genoeg is om te plannen.

Deze workflow is langzamer dan fantasie en sneller dan verwarring. Dat is meestal de juiste snelheid.

Praktische gevallen die de moeite waard zijn om eerst op te lossen

Eigen AI-clientgedrag

Teams vertrouwen steeds vaker op assistenten van derden, inference wrappers, browserextensies of zakelijke klanten die beweren veilig, privé, scoped of lokaal te zijn. Reverse engineering helpt bij het verifiëren of lokaal echt lokaal betekent, of caches zich eerlijk gedragen, of bijlagen worden verwerkt zoals mensen denken, en waar de echte netwerk- en opslaggrenzen liggen.

Agenttools en plug-in-oppervlakken

Agentshells accumuleren vaak sneller tools dan dat ze governance accumuleren. Reverse engineering en dynamische inspectie helpen teams te bevestigen hoe tools worden aangeroepen, welke verborgen argumenten eraan zijn gekoppeld, waar geheugen of context is opgeslagen en of het runtime-gedrag overeenkomt met het beleidsverhaal dat iemand voor inkoop heeft geschreven.

Triage van malware en bedreigingen

Dit is het klassieke geval, en AI is hier echt nuttig als het de vroege triage versnelt zonder dat je de uiteindelijke analist mag worden. Importeren, tekenreeksen, tips voor het uitpakken, opdracht-en-controlepatronen en het gedrag van het bestandssysteem kunnen snel worden georganiseerd. De gevaarlijke stap is wanneer 'snel georganiseerd' wordt aangezien voor 'volledig begrepen'.

Oudere interoperabiliteit

Moderne AI-producten raken steeds meer gehecht aan oude bedrijventerreinen. Wanneer een oudere desktopclient, apparaatcomponent of ongedocumenteerde bridge nog steeds het pad bepaalt, herstelt reverse engineering de grens waar het project niet langer naar kan gissen.

Hoe goed eruit ziet

Goede reverse engineering in het AI-tijdperk doet drie dingen tegelijk.

Het vermindert de onduidelijkheid. Het team kan wijzen op een echt pad, een echte interface, een echte capaciteitenset of een echte risicogrens in plaats van te spreken in dure weerberichten.

Het verkort de beslissingstijd. Leiderschaps-, product-, beveiligings- of platformeigenaren leren sneller of ze een patch, een containmentstap, een herschrijfgrens, een leveranciersgesprek of een weigering om een ​​tool te vertrouwen die met verdacht enthousiaste bijvoeglijke naamwoorden is geïntroduceerd, nodig hebben.

En het vermindert het organisatietheater. Zodra het binaire bestand in kaart is gebracht, het protocol opnieuw wordt afgespeeld, de client wordt geobserveerd of de runtime is aangesloten, wordt de kamer stiller. Mensen stoppen met het luisteren naar meningen en gaan werken met bewijsmateriaal. Reverse engineering wordt deels onderschat omdat het verhelderend werkt, en verhelderend werk heeft de vervelende gewoonte om opgeblazen verhalen moeilijker vol te houden.

Hands-On Lab: bouw een kleine importtriage-helper

Laten we het lab praktisch houden. Veel reverse engineering-werk begint met een bescheiden vraag: wat voor soort binair getal probeert dit te zijn?

triage.py

from collections import Counter

IMPORT_BUCKETS = {
    "network": {"send", "recv", "connect", "WSAStartup", "InternetOpenUrlW"},
    "filesystem": {"CreateFileW", "ReadFile", "WriteFile", "DeleteFileW"},
    "registry": {"RegOpenKeyExW", "RegSetValueExW"},
    "crypto": {"CryptProtectData", "BCryptEncrypt", "BCryptDecrypt"},
    "process": {"CreateProcessW", "OpenProcess", "VirtualAllocEx", "WriteProcessMemory"},
}


def classify_imports(imports):
    counts = Counter()
    for name in imports:
        for bucket, members in IMPORT_BUCKETS.items():
            if name in members:
                counts[bucket] += 1
    return counts


if __name__ == "__main__":
    sample_imports = [
        "CreateFileW",
        "ReadFile",
        "send",
        "recv",
        "BCryptEncrypt",
        "OpenProcess",
        "VirtualAllocEx",
        "WriteProcessMemory",
    ]

    result = classify_imports(sample_imports)
    for bucket, value in result.items():
        print(f"{bucket}: {value}")

Loop

python triage.py

Waarom deze kleine oefening ertoe doet

Omdat het een nuttige gewoonte demonstreert: ga snel van artefactruis naar begrensde hypothesen. Het script bewijst niet wat het binaire bestand doet. Het geeft je een schonere eerste vraag. In het echte werk is AI erg goed in het helpen genereren en verfijnen van dit soort helpers. De mens moet nog beslissen wat de tellingen in de context betekenen.

Testtaken voor liefhebbers

  1. Breid de classificator uit met WinHTTP-, WinINet-, POSIX-socket- of libc-imports, zodat deze voor meerdere doelfamilies kan werken.
  2. Voeg tekenreekspatroongroepering toe en vergelijk hoeveel beter de first-pass-lezing wordt wanneer importen en tekenreeksen samen worden bekeken.
  3. Voer de uitvoer in een klein Ghidra- of IDA-notitiesjabloon in, zodat vroege hypothesen herbruikbare teamartefacten worden.
  4. Vraag een AI-assistent om bucketlabels voor te stellen en valideer vervolgens elk label aan de hand van het daadwerkelijke runtimepad voordat u het vertrouwt.
  5. Verschil twee importlijsten van twee versies van hetzelfde binaire bestand en schrijf een wijzigingssamenvatting van één pagina die een beveiligingsleider daadwerkelijk zou kunnen gebruiken.

Samenvatting

Reverse engineering is belangrijker in het AI-tijdperk, omdat moderne systemen ondoorzichtigere artefacten, meer verborgen grenzen en commercieel zinvoller gedrag produceren dat niet alleen op basis van documentatie kan worden vertrouwd. AI helpt het werk door de triage, annotatie en het genereren van hypothesen te versnellen. Het schaadt het werk als het te vroeg gepromoveerd wordt van assistent tot getuige.

Het winnende patroon is niet machine versus mens. Het is machinaal ondersteund bewijswerk dat wordt beheerst door menselijke validatie. Dat is de manier waarop teams de waarheid snel genoeg uit artefacten kunnen halen om de uitvoering ervan te bevorderen, zonder dat vloeiende taal het systeem dat het zou moeten uitleggen, te boven gaat.

Referenties

  1. Ghidra-projecthuis: https://ghidra-sre.org/
  2. Frida-documentatie: https://frida.re/docs/home/
  3. angr-documentatie: https://docs.angr.io/
  4. Wireshark-documentatie: https://www.wireshark.org/docs/
  5. Demontageframe van Capstone: https://www.capstone-engine.org/
Yevhen R.

Yevhen R. – Software-ingenieur en AI onderzoeker

Terug naar Blogs

Contact

Begin het gesprek

Een paar duidelijke lijnen zijn voldoende. Beschrijf het systeem, de druk en de beslissing die wordt geblokkeerd. Of schrijf rechtstreeks naar midgard@stofu.io.

01 Wat het systeem doet
02 Wat doet het nu pijn
03 Welk besluit is geblokkeerd
04 Optioneel: logs, specificaties, sporen, diffs
0 / 10000
Geen bestand gekozen