![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нулевое кольцо защиты (Ring0) [D6, Win95/98, WinXP]
SDW-syscoder © (2004-02-23 09:36:00)Каким способом можно выполнить участки кода программы (процедуры или функции), написанные с использованием asm-вставок в этом кольце защиты, т.к. ОС Windows XP(2000) не разрешает на прямую работать с регистрами, прерываниями и портами компьютера.
Компонент TVicHW32 не впаривать:).
Ray Adams (2004-03-13 16:18:00) [1]Народ, я ответил в другом топике уже.
Ижем в google даем поиск по DLPortIO, giveio. Бесплатные дрова и исходниками и примерами на Дельфи , Си , Бейсике.
Игорь Шевченко (2004-03-02 15:35:00) [2]>Но согласись, что метод с \device\physmem вполне применим на >практике...
Может, и применим, только я не вижу, для решения каких задач.
> > > Если мне не дадут в память писать, я в MBR запишусь
> (и не
> > > известно что опаснее)..
> > Зачем ?
>
> Этим я хотел сказать, что прямая работа у физ.диском не
> менее опасна, и тем не менее документирована и разрешена.
Как ни странно, нажатие клавиш Shift+Delete в проводнике тоже разрешено...И даже документировано. Хотя в ряде случаев может быть сопоставимо с записью в MBR
Kerk (2004-03-02 14:41:00) [3]
> Кстати, насколько я помню, этот пример выполняется только
> из-под администратора ?
Абсолютно верно.
Но ведь я и не призываю все драйвера на такие проги заменять. В конце концов поведение дравера действительно куда более предсказуемо. Но согласись, что метод с \device\physmem вполне применим на практике...
> > Если мне не дадут в память писать, я в MBR запишусь (и не
> > известно что опаснее)..
> Зачем ?
Этим я хотел сказать, что прямая работа у физ.диском не менее опасна, и тем не менее документирована и разрешена.
Игорь Шевченко (2004-03-02 12:14:00) [4]Kerk © (02.03.04 11:37)
Кстати, насколько я помню, этот пример выполняется только из-под администратора ?
> Если мне не дадут в память писать, я в MBR запишусь (и не
> известно что опаснее)..
Зачем ?
Kerk (2004-03-02 11:56:00) [5]Это минус Касперского...
Нормальный вири ловить не может, а подобные ложные срабатывания мешают работе.
Digitman (2004-03-02 11:53:00) [6]
> Kerk © (02.03.04 11:37) [56]
Касперский, кстати, вполне солидарен с Игорем)... или наоборот)
Ибо смотрит на файлы с подобным кодом (в любой его ипостаси) как на файлы загаженные дерьмом под названием VirTool.Win32.FileName
Kerk (2004-03-02 11:37:00) [7]
> А предыдущий пример как раз это и показывает...Тот, который
> у всех себя ведет по-разному.
Не надо ссылаться на предыдущий пример. Там была попытка перехвата функции NtCreateFile по статически заданному адресу. А в разных ОС (и возможно разных сервис-паках) эта функция по разным адресам сидит. Потому пример и работает через раз.
> Например, запретят изменять атрибуты защиты у device\physicalmem
> из режима пользователя.
Очень и очень маловероятно. Зачем это?
Почему на \.\\PhysicalDrive[X] можно писать что хочешь и вполне легально, а в \Device\PhysMem нельзя?
С точки зрения защиты не логично. Если мне не дадут в память писать, я в MBR запишусь (и не известно что опаснее).. :-)
Kerk (2004-03-01 14:49:00) [8]2Игорь Шевченко
Чтобы не быть голословным, Игорь, приведи пример ситуации, когда данный метод не сработает.
Что должно случиться, чтобы я не смог открыть \device\physicalmemory и добавить селектор в GDT?
Игорь Шевченко (2004-02-29 22:13:00) [9]Kerk © (29.02.04 11:49)
> хакерские - не значит плохие и неправильные
Значит. Неправильность их заключается в том, что не гарантируется предсказуемый результат в различных версиях операционных систем, и даже в различных сервис-паках. Учиться надо у Sysinternals.
VMcL (2004-02-29 13:08:00) [10]>>Kerk © (29.02.04 11:49) [51]
>хакерские - не значит плохие и неправильные.
hack ~ ломать => хакерские ~ ломающие => плохие, но вполне могут быть правильными :))
Kerk (2004-02-29 11:49:00) [11]
> BiN © (28.02.04 17:05) [50]
Этой дыре уже не один год...
А про регистры я писал, потому что h0use сказал, что у негоrdmsrне работает... я ему показал, что она работает...
> Anatoly Podgoretsky © (28.02.04 12:47) [49]
хакерские - не значит плохие и неправильные.
BiN (2004-02-28 17:05:00) [12]Kerk © Система какая?
W2k SP4
Пока будешь каждый регистр тестировать, эту дыру (а это и есть дыра) прикроют. Так что удачного пищания :)
Anatoly Podgoretsky (2004-02-28 12:47:00) [13]Kerk © (28.02.04 10:18) [47]
Выводы простые, хакерские методы они и есть хакерские.
Kerk (2004-02-28 10:25:00) [14]> Игорь Шевченко © (27.02.04 15:25) [44]
Например, чтобы просто прочитать регистр MSR писать целый драйвер не удобно.
Мне кажется тут бессмысленно спорить - это дело вкуса.
Kerk (2004-02-28 10:18:00) [15]
> SDW-syscoder
насчет твоего rdmsr. я тут поэкспериментировал.
1)
mov ecx,0 // номер MSR-регистра для чтения
rdmsr
все ок.
2)
mov ecx,1
rdmsr
все ок
3)
mov ecx,2
rdmsr
"синий экран смерти"
делаем выводы...
> можно ли организовать и/или выполнить две процедуры или
> функции в Ring0
а какая разница сколько процедур выполнять?
> BiN © (27.02.04 17:28) [46]
Система какая?
BiN (2004-02-27 17:28:00) [16]Запищало на 3-й раз!!! - во время ПЕРЕЗАГРУЗКИ "№;:№%;№:%;!"?*(
:/
SDW-syscoder (2004-02-27 16:58:00) [17]// Вот написал. Переходит в Ring0 и пищит спикером.
// http://kerk-files.narod.ru/ring0.zip
Примерчик-то отличный, даже система не падает. Я пока не разбирался в коде и хочу заранее поинтересоваться: можно ли организовать и/или выполнить две процедуры или функции в Ring0.
Игорь Шевченко (2004-02-27 15:25:00) [18]Kerk © (27.02.04 15:18)
> Но иногда бывает просто не удобно из-за какой-то мелочи
> драйвер писать.
Например, из-за какой ? Судя по тому, что указанный способ не получил широкого распространения, он обладает недостатками, которые перевешивают его достоинства.
Kerk (2004-02-27 15:18:00) [19]Игорь Шевченко © (27.02.04 15:01) [42]
Тут ты все верно сказал. Но иногда бывает просто не удобно из-за какой-то мелочи драйвер писать.
Игорь Шевченко (2004-02-27 15:01:00) [20]Kerk © (27.02.04 14:48)
На досуге можно почитать в MSDN, почему и когда рекомендуется и не рекомендуется использовать Device\PhysicalMemory.
Другой вопрос, стоит ли овчинка выделки - использовать такой способ для перехода в нужный режим. Драйвером как-то стабильнее и предсказуемее получается.