Re[6]: HOWTO: Вызов функции в другом процессе
От: SergH Россия  
Дата: 13.02.05 14:33
Оценка:
Здравствуйте, Saintdmitry, Вы писали:

S>Каким образом это можно осуществить?


Теоретическое введение (NT/2000/XP/2003):
— большинство вызовов API реализовано через вызовы так называемого Native API
— реализация Native API находится в ntdll.dll
— эта реализация почти ничего не делает, только передаёт управление ядру (прерывание int 2Eh), перед этим сохраняя в регистре (EAX, по-моему) номер вызываемой функции и ещё где-то — указатель на стек с параметрами.
— В ядре есть большоя таблица функций, обработчик прерывания 2Eh по номеру функции вызывает функцию из таблицы.
— если в этой таблице поменять значение ячейки, будет вызвана не стандартная функция, а та, адрес которой записан.

Я почти не сомневаюсь, что WriteProcessMemory тоже реализована через вызов Native API...

Ещё могу посоветовать искать по сайту по комбинации слов "перехват" и "Руссинович" и читать Толстую зелёную книжку
Автор(ы): Дэвид Соломон, Марк Руссинович

Книга посвящена внутреннему устройству и алгоритмам работы основных компонентов
операционной системы Microsoft Windows 2000 (в том числе серверных версий) и
файловой системы NTFS 5. Детально рассмотрены и системные механизмы: диспетчеризация ловушек
и прерываний, DPC, APC, LPC, RPC, синхронизация, системные рабочие потоки, глобальные флаги и др.
Также описываются все этапы загрузки операционной системы и завершения ее работы.
Книга состоит из 13 глав, словаря терминов (находится на компакт-диске) и предметного указателя.
Книга предназначена системным администраторам, разработчикам серьезных приложений и всем, кто хочет
понять, как устроена операционная система Windows 2000. На прилагаемом к книге компакт-диске
содержатся системные утилиты, помогающие исследовать все аспекты внутренней работы операционной системы Microsoft Windows 2000,
в том числе специальный отладчик ядра LiveKd, позволяющий вести отладку работающей системы и не требующий второго
компьютера в отличие от стандартного отладчика ядра. Названия всех команд, диалоговых окон и других
интерфейсных элементов операционной системы приведены как на английском языке, так и на русском (по
коммерческой версии Microsoft Windows 2000 Server).
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.