Базовый адрес ядра ОС
Где такое можно достать?
а вообще не совсем понятно, что ты имеешь в виду, какой базовый адрес? по телепатическим прикидкам копай в сторону загрузчиков.
Код:
Вывести базовый адрес ядра ОС
сам не пойму что точно имеется ввиду,но скорее всего на адрес с которого начинается загружатся ядро
Цитата: bolt90
ну дословно задание звучит так
сам не пойму что точно имеется ввиду,но скорее всего на адрес с которого начинается загружатся ядро
Код:
Вывести базовый адрес ядра ОС
В x86 NT системах это верхние 2Гб.
Код:
int a=(2*1024*1024+64)*1024;
cout<<"Базовый адрес ядра="<<a;
cout<<"Базовый адрес ядра="<<a;
Цитата: bolt90
ну это понятно, но я думаю подозревалась более оригинальное решение, чем
Код:
int a=(2*1024*1024+64)*1024;
cout<<"Базовый адрес ядра="<<a;
cout<<"Базовый адрес ядра="<<a;
Да:
Код:
unsigned int a = 1U << 31;
Цитата: bolt90
ну это понятно, но я думаю подозревалась более оригинальное решение.
Хотите хакнуть ntldr? ;)
з.ы: hardcase, +1 :D
придется завтра узнать у препода
0x7C00?
Цитата: asmforce
0x7C00?
ну если для НТ то маловато
в 2х словах:
начинаем искать с базового адреса проецирования виртуальной памяти для ядра (от 2Гб если без ПАЕ или от 3Гб с, т.е адреса 8000 0000h, c000 0000h соответственно) сигнатуру MZ (905a4d). она должна быть вначале страницы, если нет то переходим к следущей странице.
позже напишу код и выброшу сюда
Цитата: bolt90
начинаем искать с базового адреса проецирования виртуальной памяти для ядра (от 2Гб если без ПАЕ или от 3Гб с, т.е адреса 8000 0000h, c000 0000h соответственно) сигнатуру
интересно, а кто вам туда доступ даст из ring-3?
Цитата: Phodopus
интересно, а кто вам туда доступ даст из ring-3?
Доступ на чтение есть из любого кольца, разве нет? Да и за защиту от записи, кажется, отвечает всего один ключ в реестре.