Kernel debugger

En kerne-debugger  er software, der kører på kerneniveauet af et operativsystem og giver dig mulighed for at debugge kernen og dens komponenter.

Ansøgning

Kernel debuggere har mange anvendelser. Her er nogle af dem:

  1. Find det sted, der indeholder sårbarheden
  2. Skriv kode, der kan udnytte den fundne sårbarhed.

Da softwaren meget ofte ikke kommer med kildekode, men kun i binær form, og selve sårbarhederne er maskinafhængige, kræver disse to problemer specielle værktøjer. Når et program er statisk undersøgt af værktøjer såsom en disassembler , forbliver mange detaljer om programmets opførsel uigenkendte, for eksempel de hukommelsesplaceringer, der tilgås af programmet, er det sværere at etablere stien til udførelse af programkoden. Debuggeren giver dig mulighed for at kontrollere programmet under udførelsen og undersøge de ændringer, der sker i det på et hvilket som helst tidspunkt af udførelsen. Debuggerens evne til at vise tilstanden af ​​programstakken, processorregistre giver dig mulighed for at finde ud af forskellige oplysninger om programmets reaktion på visse hændelser, logikken i kodeudførelse. Dette giver os mulighed for at løse både det første og det andet problem nævnt ovenfor. Et eksempel på, hvordan dette gøres, kan findes i kapitel 3 i bogen Hacking: The Art of the Exploit [1]

Grundlæggende principper for drift

Debuggeren på kerneniveau kræver ændringer af operativsystemkernen for at fungere korrekt. Ganske ofte løses dette ved at introducere yderligere moduler i kernen. Faktisk opsnapper fejlfinderen på kerneniveau globale systemfunktioner, der er ansvarlige for:

Kernel-debuggeren styrer også adgangen til forskellige kernetabeller. Et andet vigtigt punkt er processortilstandsstyring, da processorer understøtter trin-for-trin sporing og brudpunkter på hardwareniveau.

De mest berømte repræsentanter for denne softwareklasse

Applikationsproblemer

Det er meget vigtigt, at debuggeren skal være kompatibel med kernen i det operativsystem, hvor den bruges, da debuggeren ændrer kernens grundlæggende strukturer, som har tendens til at ændre sig fra version til version. Brug af den forkerte version af debuggeren kan føre til uforudsigelig systemadfærd.

Et andet ret alvorligt problem er konflikten mellem drivere på kerneniveau i andre applikationer og debuggeren. Et eksempel er Daemon Tools-programmets manglende evne til at køre, mens kerne-debuggeren er aktiv. Nogle programmer nægter at fungere, hvis de registrerer tilstedeværelsen af ​​en debugger på systemet eller forsøger at debugge dem

Se også

Noter

  1. ↑ "Hacking: The Art of the Exploit", s. 135-155 - Dette bruger GDB bruger-mode debugger , men dette ændrer ikke essensen af ​​metoderne.
  2. Chris Kaspersky, Eva Rocco "Kunsten at skille ad" s.9
  3. M. Russinovich, D. Solomon Microsoft Windows Internals: Windows Server 2003, Windows XP, Windows 2000. s. 29-31 (debug-symboler, beskrivelse af debuggere, undersøgelseseksempel), s. 82-83 et andet eksempel
  4. SGI - Developer Central Open Source | KDB (downlink) . Hentet 15. august 2010. Arkiveret fra originalen 26. november 2010. 

Litteratur

Links