SlavaI
Главный специалист
Offline
|
|
« Ответ #30 : 18-08-2003 05:21 » |
|
Это я был выше...
Вот и у меня на прошлой неделе что-то с автоматическим входом не так было.
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #31 : 18-08-2003 15:33 » |
|
А ты что в винде хочешь прерывание вызвать? Можно конечно свой обработчик написать и поместить на него указатель в IDT. И тогда при вызове int X будет вызван он. Но это немного против правил, так как самостоятельное изменение IDT в винде не предусмотренно, но и запретить это сделать тебе нельзя. А как должен выглядеть обработчик прерывания, что надо прописать в IDT, и что происходит со стеком при смене и без смены привилегий -читай в документации Intel. :!: При очередном билде первой версии в ноябре прошого года (надеюсь, что через несколько месяцев будет вторая) моей операционной системы (полноценная ось, но первая версия безвозвратно поибла ), я обнаружил, что из процесса с уровнем привелегий 3 в Win98 можно реально вылезти в 0 кольцо привелегий :!: без особых на то усилий.
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #32 : 18-08-2003 15:36 » |
|
да, чуть не забыл. Если понадобиться код программы для того, чтобы вылезти в нулевое кольцо CPU в Win98, обращайтесь лично
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #33 : 18-08-2003 18:27 » |
|
Давай... на каких условиях?
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #34 : 19-08-2003 05:16 » |
|
да, чуть не забыл. Если понадобиться код программы для того, чтобы вылезти в нулевое кольцо CPU в Win98, обращайтесь лично
Я в 98/95 не работаю, но точно знаю, что это уже сделано. Только на кой это нужно, кому нужна 95/98 сейчас. Там помимо этого куча других дыр, хотя бы то что все системные dll общие для всех процессов и если один изменит ее то это скажется на всех. Собственно при разработке этих систем вопрос безопасности не ставился.
|
|
|
Записан
|
|
|
|
sss
Специалист
Offline
|
|
« Ответ #35 : 19-08-2003 07:20 » |
|
Ну посмотреть все равно можно. Только вот косяк. Меня завтра в армию drag&drop , на 25 суток партизанить 8) . . Так что всем удачи !
|
|
|
Записан
|
while (8==8)
|
|
|
Anonymous
Гость
|
|
« Ответ #36 : 19-08-2003 07:38 » |
|
Меня завтра в армию drag&drop , на 25 суток партизанить
Заплатил бы 400 долларов военным и отстали бы от тебя.
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #37 : 19-08-2003 07:57 » |
|
sss, ну тогда удачи.
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
sss
Специалист
Offline
|
|
« Ответ #38 : 19-08-2003 08:09 » |
|
Спасибо Гром. А про 400$, это мой заработок за 3 месяца. А предлогают стать офицером ФСБ. Все пригодиться.
|
|
|
Записан
|
while (8==8)
|
|
|
sss
Специалист
Offline
|
|
« Ответ #39 : 19-08-2003 08:10 » |
|
PS: гость - SlavaI ?
|
|
|
Записан
|
while (8==8)
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #40 : 19-08-2003 09:01 » |
|
PS: гость - SlavaI ?
Ага, я. А вот я стал лейтенантом запаса РВСН(Ракетные Войска Стратегического Назначения). 8) :!: РВСН- это хорошо!
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #41 : 19-08-2003 09:05 » |
|
да, чуть не забыл. Если понадобиться код программы для того, чтобы вылезти в нулевое кольцо CPU в Win98, обращайтесь лично
Я в 98/95 не работаю, но точно знаю, что это уже сделано. Только на кой это нужно, кому нужна 95/98 сейчас. Там помимо этого куча других дыр, хотя бы то что все системные dll общие для всех процессов и если один изменит ее то это скажется на всех. Собственно при разработке этих систем вопрос безопасности не ставился. Любая NT(в том числе и хваленая всеми XP) стражает глюком, что можно вырубить ЛЮБОЙ процесс из третьего кольца привелегий...
|
|
|
Записан
|
|
|
|
sss
Специалист
Offline
|
|
« Ответ #42 : 19-08-2003 09:06 » |
|
РВСН- это хорошо!
|
|
|
Записан
|
while (8==8)
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #43 : 19-08-2003 09:11 » |
|
Только на кой это нужно, кому нужна 95/98 сейчас. Мне! Там есть очень удобная фишка - ДОС, он же реальный режим CPU, возможность загрузить очередной билд ОСи!!!
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #44 : 19-08-2003 09:58 » |
|
Любая NT(в том числе и хваленая всеми XP) стражает глюком, что можно вырубить ЛЮБОЙ процесс из третьего кольца привелегий...
Ну так расскажи как. Я уже один знаю- надо быть админом.
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #45 : 19-08-2003 10:00 » |
|
Мне! Там есть очень удобная фишка - ДОС, он же реальный режим CPU, возможность загрузить очередной билд ОСи!!!
Ну и что. Реальный режим- это жуткий пережиток, по нормальному его надо было убрать. А у тебя что- ось только в реальном режиме работает?
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #46 : 19-08-2003 10:40 » |
|
Ну и что. Реальный режим- это жуткий пережиток, по нормальному его надо было убрать. А у тебя что- ось только в реальном режиме работает? Не не прав! CPU загружается в защищенном режиме (начиная с i386), потом по первому прерыванию (таймера) переходит в реальный (начиная с i386 это уже фантом и пережиток прошлого). Далее ЛЮБАЯ ось защещенного режима установливаем свою адресацию и т.д. => Для того, чтобы иметь право загрузить свою ось тебе ПРИДЕТСЯ поиметь привелегии на это: Либо нулевое колечко (с творогом ) либо реальный режим, где все привелегии отсутствуют (своеобразная анархия)
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #47 : 19-08-2003 10:42 » |
|
Любая NT(в том числе и хваленая всеми XP) стражает глюком, что можно вырубить ЛЮБОЙ процесс из третьего кольца привелегий...
Ну так расскажи как. Я уже один знаю- надо быть админом. Нет этот способ онован неа том, что все функции kernel.dll в виндах имеют одни и те же линейные адреса во всех процессах
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #48 : 19-08-2003 11:39 » |
|
Нет этот способ онован неа том, что все функции kernel.dll в виндах имеют одни и те же линейные адреса во всех процессах
Ну и что? Что дальше-то. Я подобных фактов до кучи знаю. Ты мне приведи пример, когда имея права простого юзера долбанули процесс сервиса, например RPC (пример Lovesan, DebPloit не приводить). Будет еще один глюк, теперь на уровне управления памяти, а ты обессмертишь свое имя. У страниц, по которым отображены системные dll, атрибут copy on write. Фишка с изменением системных dll, как в Win95/98 не пройдет. К тому же kernel32.dll
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #49 : 19-08-2003 11:45 » |
|
Не не прав! CPU загружается в защищенном режиме (начиная с i386), потом по первому прерыванию (таймера) переходит в реальный (начиная с i386 это уже фантом и пережиток прошлого). Далее ЛЮБАЯ ось защещенного режима установливаем свою адресацию и т.д. => Для того, чтобы иметь право загрузить свою ось тебе ПРИДЕТСЯ поиметь привелегии на это: Либо нулевое колечко (с творогом ) либо реальный режим, где все привелегии отсутствуют (своеобразная анархия)
Во, блин, научил. Как же IA 64 без твоего чудного реального режима работает. Ты просто зациклился на IA 32. Наверно хватит применять мерки IA 32 ко всем процессорам на свете.
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #50 : 19-08-2003 12:45 » |
|
Во, блин, научил. Как же IA 64 без твоего чудного реального режима работает. Ты просто зациклился на IA 32. Наверно хватит применять мерки IA 32 ко всем процессорам на свете. Создавать процессор с 64-битной шиной не выгодно, если нет обратной совместитмости - его либо просто покупать не будут, либо он будет слишком дешевым - ты же не в голой винде сидишь 8), а большая часть софта - не Open-Source, даже, если и freeware.. К тому же Amd64 уже это поддерживает, а конкуренцию держать надо!
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #51 : 19-08-2003 12:54 » |
|
Создавать процессор с 64-битной шиной не выгодно, если нет обратной совместитмости - его либо просто покупать не будут, либо он будет слишком дешевым - ты же не в голой винде сидишь , а большая часть софта - не Open-Source, даже, если и freeware.. К тому же Amd64 уже это поддерживает, а конкуренцию держать надо!
Ты это Intel скажи. Московское представительство- Чапаевский переуло д14. пятый этаж, налево из лифта. С софтом там уже все в порядке- Oracl есть, IA 32 приложения работают(сам юзаю 32 разрядную VS6 с 64 разрядным компилятором). А основное применение этих процессоров- базы данных и высокопроизводительные и высокоточные вычисления с плавающей точкой(формат IEEE для чисел с плавающей точкой знаешь, если да то поймешь, почему широкие регистры лучше). С вычислениями тоже все нормально- они уже давно для 64 разрядных RISC систем делаются, так что перенос на Itanium не проблема. А у Linux вобще все хорошо- RH Advanced Server 2.1 со всем софтом уже давно есть. А причем тут шина? Определять разрядность процессора по шине не совсем верно. У Itanium нет ни одной внешней 64 разрядной шины- шина адреса меньше, а данных больше. Разрядность процессора обычно определяют по разрядности основных регистров, а уж никак не по шине.
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #52 : 19-08-2003 13:00 » |
|
Мы отклонились от темы...
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #53 : 19-08-2003 13:03 » |
|
Мы отклонились от темы...
Да, ты обещал баг в управлении памятью в NT-XP.
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #54 : 19-08-2003 13:10 » |
|
Да, ты обещал баг в управлении памятью в NT-XP.
Позже - я сейчас на работе, все-таки...
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #55 : 19-08-2003 13:11 » |
|
Мы отклонились от темы...
Если при этом вторая тема интересна - то можно... Да и как насчет бага - внимательно слежу!!!
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #56 : 19-08-2003 16:29 » |
|
да, чуть не забыл. Если понадобиться код программы для того, чтобы вылезти в нулевое кольцо CPU в Win98, обращайтесь лично Вот код программы ( по личной просьбе Грома) ;compilling ~{ ; ml /c /Cp /coff /Fo$)outdir: .586p .model flat .code begin{ ; getting IDTR{ push eax push eax sidt [esp + 02h( pop eax ; не понадобится pop ecx mov eax, offset int3_Handler ; Для теста это более безопасно. можно взять 0Dh )мой любимый:. я проверял и на нем... ;-E~ mov edx, eax shr edx, 10h xchg [ecx+18h+00h(, ax xchg [ecx+18h+06h(, dx ;забиваем адреса.. int 3 ret
int3_Handler proc mov [ecx+18h+00h(, ax mov [ecx+18h+06h(, dx ; восстанавливаем ;... do something... iretd int3_Handler endp end begin Вот такие глюки. Кстати, ради прикола, это работает под WinXP??
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #57 : 20-08-2003 05:35 » |
|
Кстати, ради прикола, это работает под WinXP??
Конечно нет! Никто тебе не даст в NT трогать таблицу IDT. Тебе надо понять - 95/98 и NT - это разные вещи. Разберем твой код. Я его перевел на С, так как на асме не компилю __declspec) naked : void int3_Handler): | __asm | mov [ecx+18h+00h(, ax ; mov [ecx+18h+06h(, dx ; iretd ; " ";
int _tmain)int argc, _TCHAR* argv[(: | __asm | push eax; push eax ; sidt [esp + 02h( ; pop eax ; pop ecx; mov eax, offset int3_Handler ; mov edx, eax ; shr edx, 10h; xchg [ecx+18h+00h(, ax ; xchg [ecx+18h+06h(, dx ; int 3 "
return 0; "
Естественно после запуска все это вылетает на строчке xchg [ecx+18h+00h], ax ; так как в ecx адрес IDT, а эта IDT находится в системном адресном пространстве, доступ к этим страницам разрешен только с CPL==0, а ты туда лезеш с CPL==3. Вот и получаешь по рукам. Ты представляешь, если бы такой баг был в NT! Тебе надо пересмотреть свое отношение к NT и не переносить баги 95/98 на NT. Таким образом я делаю вывод, что фраза Любая NT(в том числе и хваленая всеми XP) стражает глюком, что можно вырубить ЛЮБОЙ процесс из третьего кольца привелегий...
не более чем заблуждение, связанное с незнанием архитектуры NT систем.
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #58 : 20-08-2003 05:37 » |
|
А ты что оперрационку на ассемблере пишешь? По моему это ошибка.
|
|
|
Записан
|
|
|
|
.
Молодой специалист
Offline
Пол:
|
|
« Ответ #59 : 20-08-2003 08:56 » |
|
Конечно нет! Никто тебе не даст в NT трогать таблицу IDT. Тебе надо понять - 95/98 и NT - это разные вещи.
1. Я не говорил, что НТ и 98 - одинаковые. Я прекрасно знаю архитектуру первой и второй. Разберем твой код. Я его перевел на С, так как на асме не компилю Под винды на асме я пишу много, и в 98% это не отличается от программирования на Си. Поэтому я не задавался вопросом о виде этой проги на Си Тебе надо пересмотреть свое отношение к NT и не переносить баги 95/98 на NT. Я не переношу отношение к 98х на НТ. Даже об этом "приколе" я узнал очень случайно! Таким образом я делаю вывод, что фраза Любая NT(в том числе и хваленая всеми XP) стражает глюком, что можно вырубить ЛЮБОЙ процесс из третьего кольца привелегий...
не более чем заблуждение, связанное с незнанием архитектуры NT систем. Здесь ты не прав, и сейчас поясню почему. Здесь работает другая ошибка МелкоМягких - адреса процедур. 1. Во всех процессах адрес процедуры ExitProcess(...) один и тот же. 2. ты можешь установить таймер для ЛЮБОГО процесса, у которого знаешь PID Дальше, надеюсь, объяснять не надо ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ А ты что оперрационку на ассемблере пишешь? По моему это ошибка. Не совсем так. Первая версия (только машинного кода ~600K - я не говорю о возможностях) была написано полностью на ассемблере из-за лени преписать компилятор под свой формат бинарей (поддержку других форматов мне еще предстоит написать. версии, эдак, в третьей или два с половиной). Но из-за погибшего :twisted: от старости харда погибло всё, поэтому вторая версия будет уже немного с другой архитектурой и написана на Си с ассемблерными вставками, где это нужно и откомпилирована немного помучанным GNU-компилятором.
|
|
|
Записан
|
|
|
|
|