Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Не видел ни одной dll, которая грузится в kernel-space 26.11.02 17:21 Число просмотров: 1104
Автор: 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. > > Заранее спасибо.
|
- [Win32] Запись в ядро - BXS 26.11.02 15:38 [639]
[Win32] Не видел ни одной dll, которая грузится в... - amirul 26.11.02 17:21 [1104]
|
|
|