|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Мар 10, 2004 19:25:02 Объясните пожалуйста реально ли провалиться на нулевое кольцо? |
|
|
Дата: Мар 10, 2004 21:28:41 Ты сегодня выспался? |
|
|
Дата: Мар 10, 2004 21:31:34 просто интересно!! Мне один КЕНТ толкнул инфу про это!! А мне кажется это не реальным только один СофтАйс работает на Нулевом кольце. Вот и консультируюсь с профессионалами!!! Что скажете по данному поводу? |
|
|
Дата: Мар 10, 2004 21:40:59 · Поправил: Valery emergenter Упсс..! Кроме собственных тредов ты похоже ничего не замечаешь:)) |
|
|
Дата: Мар 10, 2004 22:09:45 · Поправил: _Juicy Очень советую вам пойти в библиотеку и взять книжку, скажем, Гука по процессорам и внимательно прочитать, что такое нулевое кольцо. Затем еще хорошо бы Руссиновича... Да и в сети много информации по этому поводу. В кратце - нулевое кольцо это особый режим процессора, в котором разрешены привелигированные команды, например, прямой доступ к железу. В нем работает система, и проваливаетесь вы туда при вызове большинства системных процедур. Режим ядра - то же самое, что и нулевое кольцо. Короче, читайте. И впредь имейте ввиду, что профессионалам такие вопросы не задают.:) |
|
|
Дата: Мар 11, 2004 02:03:14 > только один СофтАйс работает на Нулевом кольце Бу-га-га, вот повеселил %))) |
|
|
Дата: Мар 12, 2004 15:13:17 Я думаю, что emergenter спрашивал насчет способа перехода в нулевое кольцо в windows 9x с помощью исправления таблицы idt или gdt, которое возможно благодаря тупости microsoft-овцев. Про этот способ можно поискать в интернете, там много на эту тему. Могу если надо привести пример своей программы, где я это дело использовал для вызова сервисов VMM (Я менял элемент idt, потому что это проще). |
|
|
Дата: Мар 12, 2004 21:25:39 · Поправил: emergenter Icebp Да! Я как раз и имел это в виду!!! Хоть один человек знает... Можно ли по подробней. Реально ли вообще это и где найти исчерпывающую документацию? |
|
|
Дата: Мар 12, 2004 21:38:03 Упсс..! Кроме собственных тредов ты похоже ничего не замечаешь:)) А ведь упрек-то тебе, уважаемый, справедливый. Ничего-то ты, кроме своих тредов, и не видишь! Что до 9х - ситуевина мне неизвестна и глубоко безразлична, а вот под nt - дело другое. Там такие фокусы запрещены - система спроектирована более грамотно. Однако старфорс и другие бяки делают следующее - ставят себе в ресурсах дровину, которая взлетает в нулевое кольцо. Там эта дровина создает колгейт, благодаря которому код 3-кольца способен оперировать с памятью кольца-0. И документировано это дело сравнительно неплохо. Только вот глазоньки бы тебе раскрыть и по форуму-то поискать. Я и линк на чтиво давал... |
|
|
Дата: Мар 13, 2004 20:43:18 Emergenter, я постараюсь найти свою программу и выложить ее здесь. Однако, как правильно сказал volodya, такой метод, работающий в windows 9x не будет работать в windows NT,2000,XP и.т.п. Поэтому выбери что тебе требуется: выйти в нулевое кольцо в windows 98 или в XP. Сейчас по памяти я не могу тебе дать работающий код, так как перед глазами нет формата таблицы дескрипторов прерываний. Приблизительно же он может выглядеть например так: sidt [IDT_table] mov ebx,[IDT_table+2] mov [ebx+xxxxxxxx],xxxxxx ; как раз здесь не могу ; сказать ; какие надо ставить значения ... int 5 ; можно вызывать и другое прерывание ; все зависит от того какой вектор ты ; модифицируеш. В вектор ты пишешь адрес ; своей процедуры для 0-ого кольца. ring0_proc: ....... ; Здесь эта процедура. ....... Если я не ошибаюсь то 5-ый вектор использовал вирус CIH (Чернобыль) для перехода в 0-ое кольцо. Кстати почитай про него где нибудь (один из интереснейших на мой взгляд). Можеш поискать его дизассемблированные листинги. Вместо int 5, кстати, можно сделать например и покрасивее: модифицируеш вектор ошибки деления на ноль и потом делиш на ноль. Например так: xor ebx,ebx div ebx |
|
|
Дата: Мар 14, 2004 03:08:19 Возможно будет небезинтересным ознакомление с Phide by 90210. http://www.wasm.ru/toollist.php?list=21#253 |
|
|
Дата: Мар 15, 2004 09:55:13 Icebp Хотелось бы разобраться для 98 виндовса! |
|
|
Дата: Мар 16, 2004 18:34:07 Emergenter, я в качестве примера даю тебе исходник своей DLL-ки. В ней используется переход в 0-ое кольцо для вызова сервисов VMM. Процедура перехода в 0-ое кольцо там так и называется ring0. В ней сохраняется старое содержимое элемента таблицы IDT для 0-го прерывания, то есть для прерывания ошибки деления на 0. Потом оно модифицируется (в него пишется адрес нашей процедуры) и выполняется деление на 0. То есть команды xor ebx,ebx и div ebx приводят к выполнению моего кода но уже не в 3-ем кольце, а в 0-ом (этому отвечает значение 28h, записанное в IDT). После своего выполнения после команды возврата iretd элемент таблицы IDT восстанавливается, чтобы потом ничего случайно не повисло. Если появятся вопросы, то спрашивай меня. 183376477__Hyper32.asm |
|
|
Дата: Мар 17, 2004 20:31:01 · Поправил: emergenter Icebp Спасибо огромное!! Можно по майлу спрашивать? или по аське? |
|
|
Дата: Мар 18, 2004 07:20:05 Мой мейл icebp@hotmail.ru так что можешь спрашивать по нему. Правда я не так часто имею выход в интернет, поэтому возможны 2-х дневные задержки (наверное это оценка ро максимуму и я постараюсь почаще смотреть свою почту). |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.097 |