Ladicí program jádra

Ladicí program jádra  je software, který běží na úrovni jádra operačního systému a umožňuje ladit jádro a jeho součásti.

Aplikace

Ladicí programy jádra mají mnoho využití. Zde jsou některé z nich:

  1. Najděte místo, které obsahuje zranitelnost
  2. Napište kód, který dokáže zneužít nalezenou chybu zabezpečení.

Vzhledem k tomu, že software velmi často není dodáván se zdrojovým kódem, ale pouze v binární podobě, a zranitelnosti samotné jsou závislé na stroji, vyžadují tyto dva problémy speciální nástroje. Když je program staticky zkoumán nástroji, jako je disassembler , mnoho detailů chování programu zůstává nerozpoznaných, například místa v paměti, ke kterým program přistupuje, je obtížnější určit cestu provádění programového kódu. Ladicí program vám umožňuje ovládat program během provádění a zkoumat změny, které v něm nastanou v jakékoli fázi provádění. Schopnost debuggeru zobrazit stav zásobníku programu, registrů procesoru umožňuje zjistit různé informace o reakci programu na určité události, logiku provádění kódu. To nám umožňuje vyřešit první i druhý výše zmíněný problém. Příklad, jak se to dělá, lze nalézt v kapitole 3 knihy Hacking: The Art of the Exploit [1]

Základní principy činnosti

Ladicí program na úrovni jádra vyžaduje změny jádra operačního systému, aby správně fungoval. Dost často se to řeší zavedením dalších modulů do jádra. Ve skutečnosti debugger na úrovni jádra zachycuje funkce globálního systému, které jsou zodpovědné za:

Ladicí program jádra také řídí přístup k různým tabulkám jádra. Dalším důležitým bodem je správa stavu procesoru, protože procesory podporují krok za krokem trasování a body přerušení na úrovni hardwaru.

Nejznámější představitelé této třídy softwaru

Problémy s aplikací

Je velmi důležité, že debugger musí být kompatibilní s jádrem operačního systému, kde se používá, protože debugger upravuje základní struktury jádra, které mají tendenci se verze od verze měnit. Použití nesprávné verze ladicího programu může vést k nepředvídatelnému chování systému.

Dalším poměrně vážným problémem je konflikt mezi ovladači na úrovni jádra jiných aplikací a debuggerem. Příkladem je nemožnost spuštění programu Daemon Tools, když je aktivní ladicí program jádra. Některé programy odmítnou fungovat, pokud zjistí přítomnost debuggeru v systému nebo se pokusí je odladit

Viz také

Poznámky

  1. "Hacking: The Art of the Exploit", str. 135-155 - Používá ladicí program uživatelského režimu GDB , ale to nemění podstatu metod.
  2. Chris Kaspersky, Eva Rocco "Umění rozebírat" str.9
  3. M. Russinovich, D. Solomon Microsoft Windows Internals: Windows Server 2003, Windows XP, Windows 2000. str. 29-31 (symboly ladění, popis debuggerů, příklad studie), str. 82-83 další příklad
  4. SGI – Developer Central Open Source | KDB (downlink) . Získáno 15. srpna 2010. Archivováno z originálu dne 26. listopadu 2010. 

Literatura

Odkazy