Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ring 0 programiranje

[es] :: Kernel i OS programiranje :: ring 0 programiranje

[ Pregleda: 3900 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon ring 0 programiranje11.09.2003. u 14:40 - pre 200 meseci
Zna li neko nesto vise o ring 0 programiranju? Da li to moze da se izvede is Deplhia, i kako to da izvedem ako je moguce?
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.vdial.verat.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: ring 0 programiranje11.09.2003. u 21:27 - pre 200 meseci
Ring0 je programiranje kao i svako drugo, samo što onda tvoj proces može da izvršava i neke „privilegovane“ instrukcije (učitavanje LDT-a, GDT-a, TSS-a, bezbrižnu šetnju po memoriji itd.).

Ne znam jedino kako pokrenuti Delphi program sa takvim privilegijama, ali da bi to imalo smisla, morao bi da koristiš pokazivače u velikoj meri, kao i razne ulazno-izlazne instrukcije pomoću asemblera ili već direktnog „ubrizgavanja“ mašinskog koda (ako to Delphi omogućava).

Na modernijim Windows operativnim sistemima je ovo nedopušteno, tako da sumnjam da ćeš imati neke vajde od toga. Zapravo, prilično je i besmisleno to raditi — Delphi je programski jezik koji ima određenu namenu, a to sigurno nije pisanje programa koji će raditi u ring0.

Što se tiče same aktivacije nultog prstena, sve što treba da uradiš je da postaviš par bitova u registrima procesora ;-)

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.vdial.verat.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: ring 0 programiranje11.09.2003. u 21:30 - pre 200 meseci
Usput, ovde imaš objašnjeno kako da dođeš do podrobnije dokumentacije: http://www.elitesecurity.org/tema/28147/
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 785
*.pexim.co.yu



+61 Profil

icon Re: ring 0 programiranje15.09.2003. u 10:08 - pre 199 meseci
Citat:
tOwk:
Ring0 je programiranje kao i svako drugo, samo što onda tvoj proces može da izvršava i neke „privilegovane“ instrukcije (učitavanje LDT-a, GDT-a, TSS-a, bezbrižnu šetnju po memoriji itd.).

Ne znam jedino kako pokrenuti Delphi program sa takvim privilegijama, ali da bi to imalo smisla, morao bi da koristiš pokazivače u velikoj meri, kao i razne ulazno-izlazne instrukcije pomoću asemblera ili već direktnog „ubrizgavanja“ mašinskog koda (ako to Delphi omogućava).

Na modernijim Windows operativnim sistemima je ovo nedopušteno, tako da sumnjam da ćeš imati neke vajde od toga. Zapravo, prilično je i besmisleno to raditi — Delphi je programski jezik koji ima određenu namenu, a to sigurno nije pisanje programa koji će raditi u ring0.

Što se tiče same aktivacije nultog prstena, sve što treba da uradiš je da postaviš par bitova u registrima procesora ;-)


Huh, otkud ovoliko nipodastavanje Delphi-ja...?
Da rascistimo, Delphi je naslednik TurboPascal-a (sa mnogim prosirenjima itd. itd.). Da li ti imas predstavu, t0wk, sta se sve nekad radilo TurboPascal-om?

Za svaciju informaciju, Delphi ima pointere (pogledajte malo VCL), pod jedan, ugradjen assembler (kljucna rec 'asm') pod dva, i pod tri, podrzava i direktno 'ukucavanje' masinskog koda u hex obliku (kljucna rec 'inline'). Delphi-jev asembler podrzava i alias-e; 'ladno mozes da pozoves iz assemblera neku funkciju koju si napravio u visem jeziku 'tu negde 20-tak linija iznad'.
I da ne zaboravim: TurboPascal-ov asembler je imao i pseudoregistre za lakse pozivanje sistemskih interapta itd. itd.; ne znam da li to radi i u Delphi-ju...
Pozdrav

Rajko
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.vdial.verat.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: ring 0 programiranje15.09.2003. u 22:18 - pre 199 meseci
Citat:
Rapaic Rajko:
Huh, otkud ovoliko nipodastavanje Delphi-ja...?
Da rascistimo, Delphi je naslednik TurboPascal-a (sa mnogim prosirenjima itd. itd.). Da li ti imas predstavu, t0wk, sta se sve nekad radilo TurboPascal-om?

Čak naprotiv, čini mi se da uopšte nisam nipodaštavao Delphi. Poznato mi je da sadrži sve pomenuto (asm, pokazivače, mašinski kod), ali i dalje Delphi nije pravljen za pisanje programa u ring0, pre svega zato što je pravljen za Windows, a Windows programi ne mogu da pristupe ring0 bez dozvole samog operativnog sistema.

Čak, čini mi se da sam sasvim lepo rekao da on generiše mašinski kod koji se svakako može iskoristiti i u ring0, a postavio sam vrlo konkretno pitanje kako to uraditi (tj. konstatovao sam da ne znam kako pokrenuti Delphi program u ring0).


Da to bude još konkretnije:
Kako izmeniti CR* i TSS tako da dobijeni Delphi program radi u ring0? Šta je potrebno od privilegija na sistemu („Administrator“ sigurno nije, valjda „System“).

Svakako da se ne bih usudio da kažem da je nemoguće koristiti mašinski kod koji generiše Delphi u ring0, ali je pitanje kako ga pokrenuti (pošto je nemoguće iz programa koji nije u ring0 preći u ring0 pa sve da unosiš i asm i mašinski kod — takvoj zaštiti ring0 i služi).

Pošto ne sumnjam da bolje poznaješ Delphi od mene, ovo su pitanja na koja treba da daš odgovor (mada, ovo može biti više vezano za Windows, nego za Delphi, pošto u Windows-u jedino drajveri mogu da uskoče u ring0).
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 785
*.pexim.co.yu



+61 Profil

icon Re: ring 0 programiranje16.09.2003. u 08:50 - pre 199 meseci
E, pa dobro, o 'ring 0' programiranju ne znam nista; samo sam 'branio' Delphi...

Takodje, znam da se ni iz jednog Borlandovog proizvoda ne mogu praviti drajveri. Neko je ovde objasnio zasto: valjda zbog drugacije strukture generisanog fajla za drajver (Microsoft, naravno; @[email protected]#%$#%) koju 'obican' kompajler ne moze da izgenerise.
Poz

Rajko
 
Odgovor na temu

[es] :: Kernel i OS programiranje :: ring 0 programiranje

[ Pregleda: 3900 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.