· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.VIROLOGY —› ring0 под Win2003

Посл.отвђт Сообщенiе


Дата: Ноя 1, 2003 22:30:31

Собственно, решил я заняться сабжем. Все просто -открываешь '\Device\PhysicalMemory', правишь GDT...
Но возник вопрос - как записать в память ядра? Хочу, например, пропатчить NtCreateFile. Но память read-only.
Это ведь кодовый сегмет, и значит, доступ стоит на чтение и выполнениею. Есть ли способ записать туда данные?

И еще маленький вопросик - как добавить секцию к PE, если в нем нет места для новой object entry? (место между заголовком и первой секцией занято директорией bound import) Просто кильнуть директорию? или есть варианты получше?...


Дата: Ноя 1, 2003 23:15:07 · Поправил: van

Grenader

Защита памяти в win2000 отключается через реестр:
HKLM\System\CurrentControlSet\Control\Session
Manager\MemoryManagement\

поменяй значение EnforceWriteProtection

или вручную так:
mov ebx,cr0
push ebx
and ebx,010000
mov сr0,ebx
;
;здесь делаем свои дела 
;
pop ebx
mov cr0,ebx


Данный способ совсем не нов.
Также можно попробовать изменить файло(скажем
KMD драйвер)на диске, затем перезапустить
винду(предварительно потребуется sync by Russinovich).


Дата: Ноя 2, 2003 00:16:49

Большое спасибо!


Дата: Ноя 10, 2003 17:05:46

Простите за нескромный вопрос,
но
and ebx,010000 чего?
(h),(b),или принять за десятичное?


Дата: Ноя 10, 2003 18:25:03 · Поправил: Four-F

Шестнадцатеричное
and ebx, not 010000h
Это "Write Protect (bit 16 of CR0)"

[поправлено] Извиняюсь за ошибку - память подвела.

16 бит нужно сбросить, чтобы из r0 во все юзерные страницы можно было писАть.

mov eax, cr0
push eax
and eax, not 10000h


pop eax
mov cr0, eax


Дата: Ноя 11, 2003 02:51:59

Four-F
Пасиб, я-то уже разобрался, и написал
btr	ebx, 16

Но сколько еще народу может повесить себе машины AND'ом?..


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.081