Archive for the ‘ C/Cpp ’ Category

DLL Injection ve Windows aplikacích

Tato technika injekce kódu do cizího procesu je dlouhodobě známá, a proto by se zdálo, že v současnosti již nepoužitelná. Přesto se jí stále hojně využívá. Na straně dobra i na straně zla. Autoři malware využívají této techniky pro ukrytí svého kódu do jiného procesu, kde následně může „nepozorovaně“ vegetovat/pracovat. V případě antivirových pracovníků a různých reverze-code-engineerů se jedná hlavně o možnost využívat/volat kód uvnitř injektované DLL knihovny (inicializační kód, veřejně přístupné funkce…) pro usnadnění práce.
Read more

DLL knihovna PE_image.dll pro práci s raw soubory na disku

Při práci s PE (Portable Executable) soubory dřív nebo později každý zjistí, že neustálé kopírování stejného kódu/funkcí (v lepším případě) nebo jeho stálé znovuvytváření (v horším případě), je vyloženě ztráta času. Proto jsem před časem vytvořil DLL knihovnu, která aktuálně obsahuje 17 funkcí pro práci s raw soubory (nespuštěné soubory uložené na disku).
Read more

Nebojme se shellcodů IV.

Tímto dílem pokračuje seriál o shellcodech pokročilými technikami, které se využívají pro vylepšení funkčnosti. Tento díl seznámí čtenáře s tvorbou generátoru zakódovaných shellcodů pomocí operátoru XOR.
Read more

Hard-Address coding aneb Jak zjistit adresy API funkcí?

Při tzv. hard-address programmingu, který je vcelku běžný například v případě shellkódu, se programátor dostane do situace, kdy potřebuje získat adresy funkcí v paměti. Výhodou tohoto stylu programování je skutečnost, že výsledný kód je mnohem menší než je tomu u dynamic-address programmingu (a to v některých případech dost podstatně menší). Tvrdou daní za takové pohodlí však platíme v podobě nepřenositelnosti takového kódu.

Read more