C# týden ITnetwork Flashka zdarma
Akce! Pouze tento týden sleva až 80 % na kurzy C# .NET. Lze kombinovat s akcí 50 % bodů navíc na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Diskuze: Jak zjistit co se injectuje do souboru

Aktivity (1)
Avatar
Jiří Šuster:25. ledna 15:09

Dobrý den, mám exe soubor, který po spuštění čeká na spuštění programu. Až se program spustí, tak se do toho programu něco injectne. Myslím , že to funguje jako normální dll injector. Já ale potřebuji vědět co se tam injectuje. Tedy spíš vzít to co se injectuje a mít možnost to injectnout aji bez toho exe souboru. Jen se chci zeptat, jestli by šlo spustit nějaký program, který by kontroloval co se do něj injectuje a dokáže to nějakým způsobem zobrazit?

 
Odpovědět 25. ledna 15:09
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Jiří Šuster
Martin Dráb:25. ledna 20:41

Záleží, jakým způsobem ke vkládání cizích věcí do programu dochází. Pokud se jedná o to, že nějaký jiný program jej přiměje načíst DLL knihovnu (např. tím, že v něm vytvoří vlákno, která zavolá funkci LoadLibrary), mohla by pomoci funkce LdrRegisterDllNo­tification.
https://docs.microsoft.com/…notification

Zaregistruje ti callback, který se pak volá v případě, že je nějaká DLL knihovna načtena do či uvolněna z adresového prostoru procesu. Alternativně lze hooknout např. funkci LdrLoadDll v knihovně ntdll.dll (modifikovat ji tak, aby při jejím volání došlo zároveň k volání tvého kódu).

Existují ale způsoby injekce, které tímto způsobem detekovat nelze. Například pokud si injektující program provede veškeré načítání DLL knihovny ručně (tzn. nevyužije k tomu Windows Loader).

Nahoru Odpovědět 25. ledna 20:41
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.