Depanator kernel

Un depanator de nucleu  este un software care rulează la nivelul nucleului unui sistem de operare și vă permite să depanați nucleul și componentele acestuia.

Aplicație

Depanatoarele kernel au multe utilizări. Iată câteva dintre ele:

  1. Găsiți locul care conține vulnerabilitatea
  2. Scrieți cod care poate exploata vulnerabilitatea găsită.

Deoarece de foarte multe ori software-ul nu vine cu cod sursă, ci doar în formă binară, iar vulnerabilitățile în sine sunt dependente de mașină, aceste două probleme necesită instrumente speciale. Atunci când un program este examinat static de instrumente precum un dezasamblator , multe detalii ale comportamentului programului rămân nerecunoscute, de exemplu, acele locații de memorie care sunt accesate de program, este mai dificil să se stabilească calea de execuție a codului programului. Depanatorul vă permite să controlați programul în timpul execuției și să examinați modificările care apar în acesta în orice stadiu de execuție. Capacitatea depanatorului de a afișa starea stivei de programe, a registrelor procesorului vă permite să aflați diverse informații despre reacția programului la anumite evenimente, logica execuției codului. Acest lucru ne permite să rezolvăm atât prima, cât și a doua problemă menționată mai sus. Un exemplu despre cum se face acest lucru poate fi găsit în capitolul 3 al cărții Hacking: The Art of the Exploit [1]

Principii de bază de funcționare

Depanatorul la nivel de nucleu necesită modificări ale nucleului sistemului de operare pentru a funcționa corect. Destul de des, acest lucru este rezolvat prin introducerea de module suplimentare în nucleu. De fapt, depanatorul la nivel de kernel interceptează funcțiile globale ale sistemului care sunt responsabile pentru:

Depanatorul de kernel controlează, de asemenea, accesul la diferite tabele de kernel. Un alt punct important este gestionarea stării procesorului, deoarece procesoarele acceptă urmărirea pas cu pas și punctele de întrerupere la nivel hardware.

Cei mai renumiți reprezentanți ai acestei clase de software

Probleme de aplicare

Este foarte important ca depanatorul să fie compatibil cu nucleul sistemului de operare în care este utilizat, deoarece depanatorul modifică structurile de bază ale nucleului, care tind să se schimbe de la o versiune la alta. Utilizarea versiunii greșite a depanatorului poate duce la un comportament imprevizibil al sistemului.

O altă problemă destul de serioasă este conflictul dintre driverele la nivel de kernel ale altor aplicații și depanator. Un exemplu este incapacitatea programului Daemon Tools de a rula în timp ce depanatorul nucleului este activ. Unele programe refuză să funcționeze dacă detectează prezența unui depanator în sistem sau încearcă să le depaneze

Vezi și

Note

  1. ↑ „Hacking: The Art of the Exploit”, pp. 135-155 - Acesta folosește depanatorul GDB user-mode , dar acest lucru nu schimbă esența metodelor.
  2. Chris Kaspersky, Eva Rocco „Arta dezasamblarii” p.9
  3. M. Russinovich, D. Solomon Microsoft Windows Internals: Windows Server 2003, Windows XP, Windows 2000. pp. 29-31 (simboluri de depanare, descrierea depanatoarelor, exemplu de studiu), pp. 82-83 un alt exemplu
  4. SGI - Developer Central Open Source | KDB (link descendent) . Consultat la 15 august 2010. Arhivat din original la 26 noiembrie 2010. 

Literatură

Link -uri