информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Запись в ядро 26.11.02 15:38  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ребят, подскажите как выйти из положения: есть DLL, которая загружается, как я понимаю, в область ядра (вызовы VirtualQuery возвращают 0, а GetLastError = NO_ACCESS, хотя прочесть память можно легко). Мне нужно переправить ее экспорт уже в памяти, но, ясен пень, винда не дает. Можно ли как-то залезть в ядро? Есть идеи?

P.S. Описанная ситуация происходит на WinXP. Мне нужно напсать прогу, котрая бы одинаково корректно работала бы и а XP и на прозрачной 98.

Заранее спасибо.
[Win32] Не видел ни одной dll, которая грузится в kernel-space 26.11.02 17:21  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Ребят, подскажите как выйти из положения: есть DLL, которая
> загружается, как я понимаю, в область ядра (вызовы
> VirtualQuery возвращают 0, а GetLastError = NO_ACCESS,

См в направлении AdjustTokenPrivilegies()
и Virtual<blablabla>Ex()
Но тут будут другие грабли: не забудь пофиксать dll-ку во всех контекстах и еще перехватить GetProcAddress() по крайней мере так у Рихтера сделано.
Во всех контекстах придется фиксать потому как импорты настраиваются в каждом контексте отдельно и, соответсвено, copy on write для IAT-а почти всегда срабатывает (кроме разве что при-bind-еных dll), а GetProcAddress фиксать для того, чтоб все новые экземпляры длл-ки получали тот же адрес

> хотя прочесть память можно легко). Мне нужно переправить ее
> экспорт уже в памяти, но, ясен пень, винда не дает. Можно
> ли как-то залезть в ядро? Есть идеи?

В ядро можно залезть или из драйвера. Способ перехода в 0-е кольцо без драйвера (но с нужными привилегиями) описан в 59-м phrack-е. Основан на использовании \Device\PhysicalMemory:
Ищется GDT (sgdt - непривилегированная операция) и через этот самый девайс там создается CallGate для перехода в 0-е кольцо из 3-го
>
> P.S. Описанная ситуация происходит на WinXP. Мне нужно
> напсать прогу, котрая бы одинаково корректно работала бы и
> а XP и на прозрачной 98.
>
> Заранее спасибо.
amirul, большой респект за быстрый+дельный ответ! 26.11.02 18:28  
Автор: BXS Статус: Незарегистрированный пользователь
Отредактировано 26.11.02 18:29  Количество правок: 1
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach