Kernel debugger

En kärnfelsökning  är programvara som körs på kärnnivån i ett operativsystem och låter dig felsöka kärnan och dess komponenter.

Applikation

Kerneldebuggers har många användningsområden. Här är några av dem:

  1. Hitta platsen som innehåller sårbarheten
  2. Skriv kod som kan utnyttja den hittade sårbarheten.

Eftersom mjukvaran väldigt ofta inte kommer med källkod, utan endast i binär form, och sårbarheterna i sig är maskinberoende, kräver dessa två problem specialverktyg. När ett program statiskt undersöks av verktyg som en disassembler förblir många detaljer om programmets beteende okända, till exempel de minnesplatser som programmet nås, är det svårare att fastställa sökvägen för programkodens exekvering. Debuggern låter dig styra programmet under körning och undersöka de ändringar som sker i det i vilket skede som helst av körningen. Debuggerns förmåga att visa programstackens tillstånd, processorregister låter dig ta reda på olika information om programmets reaktion på vissa händelser, logiken för kodexekvering. Detta gör att vi kan lösa både det första och det andra problemet som nämns ovan. Ett exempel på hur detta går till finns i kapitel 3 i boken Hacking: The Art of the Exploit [1]

Grundläggande funktionsprinciper

Felsökaren på kärnnivå kräver ändringar av operativsystemets kärna för att fungera korrekt. Ganska ofta löses detta genom att introducera ytterligare moduler i kärnan. Faktum är att felsökaren på kärnnivån fångar upp globala systemfunktioner som är ansvariga för:

Kärnfelsökaren kontrollerar också åtkomst till olika kärntabeller. En annan viktig punkt är hantering av processortillstånd, eftersom processorer stödjer steg-för-steg-spårning och brytpunkter på hårdvarunivå.

De mest kända representanterna för denna klass av programvara

Programproblem

Det är mycket viktigt att debuggern måste vara kompatibel med kärnan i operativsystemet där den används, eftersom debuggern modifierar kärnans grundläggande strukturer, som tenderar att ändras från version till version. Att använda fel version av felsökaren kan leda till oförutsägbart systembeteende.

Ett annat ganska allvarligt problem är konflikten mellan drivrutinerna på kärnnivå för andra applikationer och felsökaren. Ett exempel är oförmågan hos Daemon Tools-programmet att köras medan kärnfelsökaren är aktiv. Vissa program vägrar att fungera om de upptäcker närvaron av en debugger på systemet eller försöker felsöka dem

Se även

Anteckningar

  1. ↑ "Hacking: The Art of the Exploit", s. 135-155 - Detta använder GDB -användarlägesfelsökningen , men detta ändrar inte essensen av metoderna.
  2. Chris Kaspersky, Eva Rocco "Konsten att demontera" s.9
  3. M. Russinovich, D. Solomon Microsoft Windows Internals: Windows Server 2003, Windows XP, Windows 2000. s. 29-31 (felsökningssymboler, beskrivning av debuggers, studieexempel), s. 82-83 ett annat exempel
  4. SGI - Utvecklarcentral med öppen källkod | KDB (nedlänk) . Hämtad 15 augusti 2010. Arkiverad från originalet 26 november 2010. 

Litteratur

Länkar