Ytimen debuggeri

Ytimen debuggeri  on ohjelmisto, joka toimii käyttöjärjestelmän ydintasolla ja jonka avulla voit korjata ytimen ja sen komponenttien vian.

Sovellus

Ytimen debuggereilla on monia käyttötarkoituksia. Tässä on joitain niistä:

  1. Etsi paikka, joka sisältää haavoittuvuuden
  2. Kirjoita koodi, joka voi hyödyntää löydettyä haavoittuvuutta.

Koska ohjelmiston mukana ei useinkaan tule lähdekoodia, vaan vain binäärimuodossa, ja itse haavoittuvuudet ovat konekohtaisia, nämä kaksi ongelmaa vaativat erikoistyökaluja. Kun ohjelmaa tarkastellaan staattisesti työkaluilla, kuten disassembler , monet ohjelman toiminnan yksityiskohdat jäävät tunnistamatta, esimerkiksi ne muistipaikat, joihin ohjelma pääsee käsiksi, on vaikeampi määrittää ohjelmakoodin suorituspolku. Debuggerin avulla voit hallita ohjelmaa suorituksen aikana ja tutkia siinä tapahtuvia muutoksia missä tahansa suoritusvaiheessa. Debuggerin kyky näyttää ohjelmapinon tila, prosessorirekisterit mahdollistaa erilaisten tietojen selvittämisen ohjelman reaktiosta tiettyihin tapahtumiin, koodin suorituslogiikasta. Näin voimme ratkaista sekä ensimmäisen että toisen edellä mainitun ongelman. Esimerkki siitä, kuinka tämä tehdään, löytyy kirjan Hacking: The Art of the Exploit [1] luvusta 3.

Toimintaperiaatteet

Ydintason debuggeri vaatii muutoksia käyttöjärjestelmän ytimeen toimiakseen oikein. Usein tämä ratkaistaan ​​lisäämällä ytimeen lisämoduuleja. Itse asiassa ytimen tason debuggeri sieppaa globaaleja järjestelmätoimintoja, jotka vastaavat:

Ytimen debuggeri hallitsee myös pääsyä erilaisiin ydintaulukoihin. Toinen tärkeä kohta on prosessorin tilan hallinta, koska prosessorit tukevat vaiheittaista jäljitystä ja keskeytyspisteitä laitteistotasolla.

Tämän ohjelmistoluokan tunnetuimmat edustajat

Sovellusongelmat

On erittäin tärkeää, että debuggeri on yhteensopiva sen käyttöjärjestelmän ytimen kanssa, jossa sitä käytetään, koska debuggeri muuttaa ytimen perusrakenteita, jotka vaihtelevat versiosta toiseen. Virheenkorjausohjelman väärän version käyttäminen voi johtaa arvaamattomaan järjestelmän toimintaan.

Toinen melko vakava ongelma on ristiriita muiden sovellusten ydintason ajurien ja debuggerin välillä. Esimerkkinä on se, että Daemon Tools -ohjelma ei voi toimia, kun ytimen virheenkorjaus on aktiivinen. Jotkut ohjelmat kieltäytyvät toimimasta, jos ne havaitsevat debuggerin järjestelmässä tai yrittävät korjata niitä

Katso myös

Muistiinpanot

  1. ↑ "Hakkerointi: The Art of the Exploit", s. 135-155 - Tämä käyttää GDB -käyttäjätilan debuggeria , mutta tämä ei muuta menetelmien olemusta.
  2. Chris Kaspersky, Eva Rocco "The Art of Disassembly" s.9
  3. M. Russinovich, D. Solomon Microsoft Windows Internals: Windows Server 2003, Windows XP, Windows 2000. s. 29-31 (virheenkorjaussymbolit, debuggerien kuvaus, tutkimusesimerkki), s. 82-83 toinen esimerkki
  4. SGI - Kehittäjäkeskuksen avoin lähdekoodi | KDB (downlink) . Haettu 15. elokuuta 2010. Arkistoitu alkuperäisestä 26. marraskuuta 2010. 

Kirjallisuus

Linkit