Ĺadny brzuch
Jak obejść zabezpieczenie XP zeby z poziomu systemu nadpisać MBR np poprzez int 13h ?
Musiałbyś napisać sterownik (w delphi Ci się to nie uda).
Najlepiej uzyc winapi (chyba QueryDevice, CreateFile, ReadFile+WriteFile), co nie jest mozliwe w 16 bitowym assemblerze. (no, jest, ale wymaga zewnetrznego dlla, ktory przywroci pozniej odpowiedni kontekst i pobierze argumenty - bez niego mozna by wywolac (wg mojej wiedzy) tylko funkcje winapi bez argumentow, a po zakonczeniu dzialania takiej funkcji program skoczylby w kosmos i wystapilby blad).
Mozna rowniez uzyc kodu w ring0 do obnizenia iopl (jak najbardziej mozna to napisac i w delphi, i w asmie) a wtedy uzycie int 0x13 bedzie mozliwe, ale to dosc ryzykowne i jest duza szansa ze system zaprotestuje niebieskim ekranem, albo po prostu resetem.
Jesli chcesz po prostu dostac sie do mbr, uzyj winapi w 32 bitowym programie PE. (polecam Fasm jako assembler). (albo uruchom 16 bitowy program z dyskietki dos/win9x/me)
Jesli koniecznie z jakiegos powodu musi to byc z dosu, bedziesz potrzebowal specjalnej zewnetrznej dllki.
Jak znajde u siebie na dysku katalog w ktorym mam te rzeczy to dam , jesli sie przydadza :]
Użytkownik Fr3m3n edytował ten post 06 wrzesień 2006, 12:02
Można też napisać mini OS, w trybie rzeczywistym. Masz wtedy dostęp do przerwań BIOS'a. Kod nie byłby długi, wystaczy boot loader (tylko nie GRUB , bo przełącza on do trybu chronionego) i kod jądra. Szczegółów poszukaj w necie.
A int 0x13 nie wywali #XF o_O? I niby jak obsłużyć przerwanie biosowe w trybie chronionym? NTVDM emuluje niektóre, ale nim nie nadpiszesz MBR. Skoro piszesz kod w asmie to zrzuć na dyskietkę ten kod i zbootuj nią kompa.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Musiałbyś napisać sterownik (w delphi Ci się to nie uda).
Najlepiej uzyc winapi (chyba QueryDevice, CreateFile, ReadFile+WriteFile), co nie jest mozliwe w 16 bitowym assemblerze. (no, jest, ale wymaga zewnetrznego dlla, ktory przywroci pozniej odpowiedni kontekst i pobierze argumenty - bez niego mozna by wywolac (wg mojej wiedzy) tylko funkcje winapi bez argumentow, a po zakonczeniu dzialania takiej funkcji program skoczylby w kosmos i wystapilby blad).
Mozna rowniez uzyc kodu w ring0 do obnizenia iopl (jak najbardziej mozna to napisac i w delphi, i w asmie) a wtedy uzycie int 0x13 bedzie mozliwe, ale to dosc ryzykowne i jest duza szansa ze system zaprotestuje niebieskim ekranem, albo po prostu resetem.
Jesli chcesz po prostu dostac sie do mbr, uzyj winapi w 32 bitowym programie PE. (polecam Fasm jako assembler). (albo uruchom 16 bitowy program z dyskietki dos/win9x/me)
Jesli koniecznie z jakiegos powodu musi to byc z dosu, bedziesz potrzebowal specjalnej zewnetrznej dllki.
Jak znajde u siebie na dysku katalog w ktorym mam te rzeczy to dam , jesli sie przydadza :]
Użytkownik Fr3m3n edytował ten post 06 wrzesień 2006, 12:02
Można też napisać mini OS, w trybie rzeczywistym. Masz wtedy dostęp do przerwań BIOS'a. Kod nie byłby długi, wystaczy boot loader (tylko nie GRUB , bo przełącza on do trybu chronionego) i kod jądra. Szczegółów poszukaj w necie.
A int 0x13 nie wywali #XF o_O? I niby jak obsłużyć przerwanie biosowe w trybie chronionym? NTVDM emuluje niektóre, ale nim nie nadpiszesz MBR. Skoro piszesz kod w asmie to zrzuć na dyskietkę ten kod i zbootuj nią kompa.