Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запись в Kernel32 под 9х


StAL ©   (2003-06-06 12:53:00) 

Здравствуйте, ув. Мастера!

А конкретно, мне нужно подменить адрес в таблице экспорта Kernel32 под 9х

Жду ответа, заранее спасибо.


Digitman   (2003-06-16 08:46:00) [1]


> StAL


Если не переход в Ring0, тогда остается только один вариант - использование VxDCall для изменения прав доступа к страницам ВАП выше $80000000.

см. Burmistroff (06.06.03 21:02)
код, касаемый VxDCall, фигурирующий по этой ссылке - Паскаль-вариант соотв.фрагмента BO2 (process_hop.cpp).


Burmistroff   (2003-06-14 18:44:00) [2]

>StAL
Откуда же такая повышенная секретнось 0_o ?


StAL   (2003-06-14 11:20:00) [3]

2Digitman Выслал на e-mail


Digitman   (2003-06-09 10:38:00) [4]


> StAL



> на 9x он не работает


У меня нет под рукой Маздая, так что давай уже конкретно - что значит "не работает" ?
Если VirtualProtectEx() возвращает False, то что говорит GetLastError() ?


StAL   (2003-06-07 14:53:00) [5]

Спасибо за ответы!!!

2Digitman
Я переделал Ваш пример с ToolHelp, но все-же на 9x он не работает (см. NightAngel (06.06.03 15:12))

2NightAngel
Digitman прислал мне такой пример, но я так и не понял, как произвести запись. Я вообще не очень уж знаком с Ring0.

2Burmistoff
Спасибо, пошел смотреть!


Burmistroff   (2003-06-06 21:02:00) [6]

Пример:
http://maxcomputing.narod.ru/ahijack3.html


NightAngel   (2003-06-06 18:24:00) [7]

> Игорь Шевченко ©
Век живи, век учись...


:)

> Digitman © (06.06.03 15:40)
Хочешь тем самым сказать, что и VirtualProtect(), выполненная в ВАП "своего" процесса, закончится с тем же успехом в части модификации прав доступа к страницам, спроецированным на kentel32 image ?


Я ничего не хочу сказать, это на самом деле так и есть.
Дж. Рихтер в своей книге "Programming Applications for Microsoft Windows" так поясняет эту ситуацию: "On Windows 98, the main Windows DLLs (Kernel32, AdvAPI32, User32, and GDI32) are protected in such a way that an application cannot overwrite their code pages. You can get around this by writing a virtual device driver (VxD)". В Win9x в регионе памяти >2Gb находятся модули ядра, объекты ядра и пользовательские объекты, доступные всем контекстам - проекции файлов.Документированный Windows API не предоставляет средств для внесения изменений в память >2Gb.


Digitman   (2003-06-06 15:40:00) [8]


> NightAngel


Хочешь тем самым сказать, что и VirtualProtect(), выполненная в ВАП "своего" процесса, закончится с тем же успехом в части модификации прав доступа к страницам, спроецированным на kentel32 image ?


Игорь Шевченко   (2003-06-06 15:24:00) [9]

NightAngel (06.06.03 15:12)

И впрямь...Век живи, век учись...Image Base у него Bxxx xxxx...


Игорь Шевченко   (2003-06-06 15:17:00) [10]

NightAngel (06.06.03 15:12)

А что, в Windows 9x kernel32.dll загружается по адресу выше 2х GB ?


NightAngel   (2003-06-06 15:12:00) [11]

> 1. определяешь месторазмещение директории экспорта в ВАП процесса, загрузившего этот модуль

2. изменяешь параметры защиты страниц, в диапазоны адресов которых входят интересующие тебя адреса (VirtualProtect[Ex]), разрешая запись в них

3. пиши-читай на здоровье !


Это не будет работать под Win9x, т.к. В Win9x, в отличие от NT платформ, память, начиная с 2Gb, спроецирована на все контексты, присутствующие в системе и не доступна для модификации. VirtualProtect[Ex]() или WriteProcessMemory() завершатся неудачно и записать что-то в Kernel32.dll не получится.

> Запись в Kernel32 под 9х
Не мучайтесь, найдите пример перехода в Ring0 под Win9x и пишите в таблицу экспортов Kernel"а, всё, что Вам нужно.


Digitman   (2003-06-06 14:16:00) [12]

1. определяешь месторазмещение директории экспорта в ВАП процесса, загрузившего этот модуль

2. изменяешь параметры защиты страниц, в диапазоны адресов которых входят интересующие тебя адреса (VirtualProtect[Ex]), разрешая запись в них

3. пиши-читай на здоровье !


Наверх

Титульная страница Поиск, карта сайта Написать письмо