Vraag:
Ollydbg 2: verbreken na bevestiging aan een onderbroken proces
j0ker
2014-06-13 22:10:27 UTC
view on stackexchange narkive permalink

Bij het analyseren van malware kom ik packers tegen die de eigenlijke malwarecode in een nieuw voortgebracht proces injecteren en op die manier uitvoeren. Daarvoor creëren ze een proces in onderbroken staat, injecteren de code en hervatten het met ntdll.NtResumeThread op Windows.

Ik zou graag aan het onderbroken proces willen koppelen na de injectie is gedaan, om het geheugen te dumpen en het uitgepakte binaire bestand op te halen. Daarvoor breek ik op ntdll.NtResumeThread . Met Olly 2 kan ik me aansluiten bij het opgeschorte proces.

Mijn probleem is nu dat dit het proces lijkt te hervatten. Dat zou oké zijn als het zou breken bij het toegangspunt. Maar dat is niet zo. Olly breekt niet voordat het proces waaraan ik me heb verbonden, is beëindigd. Ja, ik kan het geheugen dan dumpen. Maar alleen als het niet is gewijzigd door de malware. Ik wil ook niet dat de malwarecode helemaal wordt uitgevoerd tijdens het uitpakken.

Is er dus een manier om Olly (betrouwbaar) te laten breken bij het beginpunt van het nieuwe proces?

Bij voorbaat dank!

Gebruik een kernel-debugger. Ik denk dat wat je tegenkomt ook een beperking is van de officiële foutopsporings-API, hoewel ik niet kan zeggen of OllyDbg die of zijn eigen homebrew-methode gebruikt.
Ik zal dit proberen zodra ik in de buurt ben om WinDbg te testen :)
@j0ker Hier is een link die ik een tijdje geleden schreef voor het breken op het toegangspunt van het uitgeholde / kind-proces in Ollydbg. Het zou moeten helpen. http://hooked-on-mnemonics.blogspot.com/2013/01/debugging-hollow-processes.html
Een antwoord:
Jason Geffner
2014-06-13 22:23:01 UTC
view on stackexchange narkive permalink

Ter info: de injectiemethode waarnaar u verwijst, wordt dynamisch forken of procesuitholling genoemd.

Wanneer u zich aan het onderliggende proces hecht met OllyDbg zal OllyDbg een nieuwe thread voor zichzelf maken, maar de hoofdthread (degene die zou zijn hervat met NtResumeThread () van de ouder) zal nog steeds worden onderbroken. Als je eenmaal bent verbonden met OllyDbg, kun je een breekpunt instellen op de OEP en de onderbroken thread hervatten; hierdoor zal OllyDbg dan breken bij de OEP.

Je hebt gelijk. Het kwam niet eens bij me op om naar andere discussies te zoeken. Dank je!


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...