Otázka:
Dynamická binární instrumentace na úrovni jádra
joxeankoret
2013-04-16 03:27:57 UTC
view on stackexchange narkive permalink

Existuje něco jako PIN nebo DynamoRIO k vybavení na úrovni jádra? Platformy, které mě více zajímají, jsou Windows a OSX.

Linux zahrnut [zde] (http://reverseengineering.stackexchange.com/questions/1724/how-can-i-use-dynamorio-or-something-similar-in-linux-kernel-space).
Související: Odkaz, vývojáři DanamoRio se aktivně zajímají o Mac OS X : http://code.google.com/p/dynamorio/issues/detail?id=58
@joxeankoret: Navrhoval bych rozdělit otázku na dvě, jednu pro Windows a jednu pro MacOSX. vTune jasně dělá to, co žádáte, takže si myslím, že * je * možné.
@0xC0000022L Nemyslím si, že to musíme rozdělit. Odpověď pouze na jednu platformu je více než to, co upřímně očekávám. BTW, pokud vidím, vTune nepodporuje instrumentaci na úrovni jádra ve Windows, že?
Dalším zajímavým bodem pro pouhou objížďku místo rámce dbi je něco jako NCodeHook. Aby se dostal do prostoru jádra, potřebuje trochu práce, ale ne moc.
Jeden odpovědět:
Andrew
2013-04-20 12:03:32 UTC
view on stackexchange narkive permalink

Nástroje jako Qemu nebo Bochs jsou koncepčně IMO docela podobné rámcům DBI a fungují na celém systému, včetně jádra. Výzkumné snahy jako BitBlaze a S2E využily upravené verze Qemu ke sledování komponent v režimu jádra pro hledání chyb.

Myslím, že klíčovým rozdílem je, že Qemu / Bochs jako emulátory celého systému nepředstavují ve výchozím nastavení pohled na kontrolovaný program jako DBI. DBI umožňuje ve výchozím nastavení dynamickou úpravu programu. Emulátory mají primitiva potřebná k provedení DBI, umí číst a zapisovat do paměti a rozšířením programového kódu, ale neposkytují API, které PIN dělá pro modifikaci programu.

Takže to nejlepší, co můžu udělat, je, můžete použít Qemu k vytvoření DBI režimu jádra a ostatní to udělali, ale nevím o něčem použitelnějším z krabice.

To je pravda, ale jak je uvedeno v úvodu k papíru jádra DynamoRIO, jedním z hlavních důvodů, proč dělat DBI v jádře, je to, že chcete analyzovat ovladače zařízení. A QEMU atd. Emuluje poměrně omezený rozsah hardwaru. Projekt S2E v této oblasti odvedl trochu práce [pomocí symbolického provedení k předstírání chybějících vstupů zařízení] (http://dslab.epfl.ch/pubs/ddt), ale nejde o všelék. Skutečné řešení DBI jádra, které může běžet na reálném hardwaru, by bylo lepší.
Byl tam systém, který to zval Simics, mohli jste programovat ovladače zařízení v Pythonu nebo C. Zajímalo by mě, jestli je stále na prodej.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...