Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: nameac am 07. December 2005, 20:07
-
hallo,
kann mir jemand ein bsp. ,in asm, wie man eine geschützte add. im protected mode ausliest indem man die descriptoren verändert, aufschreiben?
benutze win xp, msvc6, bsp. add. 0...ffff:0...e
danke
-
Das ist nicht möglich, solange du keinen Treiber schreibst, der im Kernel in Ring0 läuft.
-
kannst du mir etwas genaueres dazu sagen, ich arbeite mich grad erst in dieses thema ein
-
Als User Programm darfst du keine Deskriptoren ändern. Deswegen muss das im Kernel Modus läufen. Du kannst höchstens noch die Debugging-API von Windows probieren - die dürften hier aber nicht viele kennen ...
-
ich habe in dem "das assembler buch gelesen das bei dem aufruf einer add. der prozessor ein register ausliesst in dem die add. des ersten segmentes der deskriptorenliste und ihre größe steht. dann liest der processor einen deskriptor aus der liste den er über einen selektor der den index dieser liste liefert aus.allerdings habe ich nicht verstanden wann der prozessor auf die liste zugreift weil es ja nur für geschützte segmente sinn macht und wie der selector gewählt werden kann der sich ja irgendwie automatisch aus meiner add. ergeben muss(hab ich mir gedacht) die ich anspringen will. leider bin ich noch nicht fähig das zutesten. desshalb will ich mehr darüber wissen.
-
wie kann ich dass priority level meines programms beinflussen so das ich geschützte speicherstellen auslesen kann. fals das alles nicht geht ist es möglich den protected mode auszuschalten.
-
beides geht nicht, bzw. nur wenn du die privilegien dazu hast. als normales programm hast du sie nicht, nur (wie gesagt) als treiber.
-
wie funktioniert das einen treiber schreiben der ring0 läuft? und was tut der eigentlich? zugriffs rechte eines jeden gestarteten programms auf priority level 0 setzen aber das ist nur ne vermutung.
-
Wenn es dich im Fall von Windows interessiert, solltest du dir das WinDDK (Windows Driver Developer Kit) besorgen, da gibts Dokus und viel Beispielcode.