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:
- Depanare drivere. Acest lucru este valabil mai ales pentru driverele pentru modul kernel.
- Depanarea nucleului sistemului de operare . Acest proces este înțeles ca căutarea erorilor în funcționarea nucleului, modificarea codului nucleului. În cazul sistemelor închise precum Windows, apare o nouă provocare: documentarea structurilor de date și a funcțiilor kernelului.
- Eliminarea și prevenirea BSOD . Depanatorul vă permite să vedeți codul de asamblare al unui program problematic, cum ar fi un driver și, dacă aveți cunoștințele adecvate, să faceți ajustări la acesta pentru a remedia erorile.
- Depanarea codului rău intenționat . Astfel de programe influențează destul de des în mod activ nucleul sistemului de operare și schimbă comportamentul funcțiilor sistemului. Pentru a înțelege logica unor astfel de programe, este necesar să se controleze, printre altele, comportamentul nucleului. Acest lucru se datorează faptului că depanatorul în modul utilizator se bazează numai pe API-urile oferite de sistemul de operare însuși. Aceste API-uri în sine sunt intermediari în raport cu nucleul, iar dacă un program rău intenționat sau orice alt program reușește să preia controlul asupra comportamentului funcțiilor nucleului corespunzătoare, atunci depanatorul va fi sub controlul unui astfel de program.
- Găsirea vulnerabilităților software și scrierea exploatărilor . Exploit-urile se bazează pe erori de program în timpul procesării datelor de intrare, care se manifestă numai în timpul funcționării sale. Astfel, cercetătorul se confruntă cu două probleme:
- Găsiți locul care conține vulnerabilitatea
- 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:
- Acces la memorie
- Crearea/Terminarea proceselor
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
- softICE . Un depanator proprietar dezvoltat de Numega și distribuit cu DriverStudio. Builduri neoficiale ale softICE au fost realizate de diferite grupuri de hackeri. softICE a furnizat depanarea codului pe diferite versiuni de Windows și a fost, datorită capacităților sale largi, un standard neoficial în cercurile de inginerie inversă a software -ului . Cu toate acestea, ulterior a fost abandonat. Acum este folosit din ce în ce mai puțin, deoarece nu este compatibil cu Windows Vista și 7 [2] În același timp, softICE a devenit în mare măsură fundamentul ideologiei utilizării unor astfel de instrumente. Funcționează numai pe platforma Windows
- WinDbg, KD, LiveKD. WinDbg este depanatorul oficial gratuit și cu sursă închisă inclus cu Instrumentele de depanare Microsoft pentru Windows. Este orientat pe GUI. Seturile de caractere pentru acesta vă permit să explorați nucleul Windows. KD este un alt depanator de la Microsoft care este conceput pentru a explora nucleul Windows. LiveKD este un depanator gratuit de kernel de la Sysinternals care vă permite să vă depanați sistemul fără a utiliza un al doilea computer, ceea ce necesită cele două depanatoare anterioare. Acest lucru este descris mai detaliat în cartea lui Mark Russinovici și David Solomon The Internals of Windows. [3]
- Syser. Succesor SoftICE dezvoltat de programatori chinezi. Suportă interfața în stil SoftICE. Compatibil cu noile sisteme de operare Windows, suportă sisteme multiprocesor. Produs cu sursă închisă plătit.
- KDB. Depanator la nivel de kernel pentru *nix by SGI . Activat prin aplicarea unui plasture pe miez [4] . proiect opensource.
- lineice. Un alt depanator de kernel OpenSource pentru *nix. Există unele probleme de compatibilitate cu noile nuclee Linux
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
- ↑ „Hacking: The Art of the Exploit”, pp. 135-155 - Acesta folosește depanatorul GDB user-mode , dar acest lucru nu schimbă esența metodelor.
- ↑
Chris Kaspersky, Eva Rocco „Arta dezasamblarii” p.9
- ↑ 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
- ↑ SGI - Developer Central Open Source | KDB (link descendent) . Consultat la 15 august 2010. Arhivat din original la 26 noiembrie 2010. (nedefinit)
Literatură
Link -uri