Windows bAg (а не bUg?)


[ Комментарии ] [ Добавить комментарий ] [ Доска объявлений HackZone ]

Отправитель: Dmit, October 06, 1998, 08:57:50:

В ответ на: WINDOWS BAG или Бред!!!!!! (отправитель: Paranoid, October 05, 1998, 21:59:58):

Сначала напомню кусочек того сообщения - "Для тестов у меня была такая процедура"
И пронумерую строки, чтобы проще было...

00: Entry_00:
01: mov eax,0x12345678 ; Сюда положим дескриптор данных третьего кольца
02: mov ds,ax
03: mov eax,cr0
04: mov dword ptr [CurrentCR0],eax
05: mov eax,cr3
06: mov dword ptr [CurrentCR3],eax
07: retf

А теперь - посмотрим...

: :mov dword ptr [CurrentCR0],EAX это вообще полная@#$%ня!
: 1)dword ptr подразумевает обращение к 4м байтам памяти, а не к регистру
: 2)значение в квадратных скобках должно толковаться как адрес

Так у него и идет обращение к памяти. Он записывает содержимое EAX в переменную с именем CurrentCR0.

: писать в CR0 МОЖНО И В REAL MODE НО ДЕЛАЮТ ЭТО ТАК:
: MOV CR0,EAX

Так он не ПИШЕТ в CR0, а ЧИТАЕТ из него (в 3-й строке)! Кроме того, Windows 9x в REAL MODE никогда не работала. А в CR0 так пишут во всех режимах. Да я и не знаю, как это сделать по-другому... Разве что младшие 16 бит через LMSW.


: 3)Чтоб вы оба знали - в сегментный регистр помещают не дескриптор,а селектор (смещение в таблице дескрипторов) а адреса таблиц грузят в регистры GDTR и LDTR.

Вот тут ты действительно прав. Я тоже не понимаю, зачем ему в 1-ой строке 32-х битовое значение грузить в EAX, если потом только 16 бит перенесется в DS? Кроме того, в приведенном примере у него в DS будет значение 0x5678, что означает ... сегмент 2767 (0x0ACF) из GDT с RPL=0. Так что кольцо совсем даже не третье...


: 4)Кто тебе сказал ,что на 3 уровне привилегий ты сможешь менять что-то в таблице IDT?

Так он не IDT меняет, а к CR0 и CR3 обращается. А команды обращения к этим регистрам являются привилегированными, и допустимы только при PL=0. Иначе генерируется исключение 13. А если ему дают прочитать CR0, так и IDTR дадут поменять.


: 5)Сильно сомневаюсь,что чел который не смог написать
: правильно 4 команды на ASM мог чтото там сделать с
: системными таблицами.

Сильно сомневаюсь, что использование MASM еще до появления i286 является поводом для того, чтобы называть нормальную программу полным бредом.


С уважением


Комментарии:


Цитировать сообщение


[ Комментарии ] [ Доска объявлений HackZone ]