45819 (Вызов функции в другом процессе), страница 2
Описание файла
Документ из архива "Вызов функции в другом процессе", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "45819"
Текст 2 страницы из документа "45819"
В качестве примера я написал три приложения: aggressor.exe, victim.exe и insider.dll. Victim и insider абсолютно пассивны, все действия выполняются aggressor-ом. Aggressor:
запускает victim.exe;
загружает в него insider.dll;
получает адреса трёх экспортируемых функций;
вызывает эти функции;
выгружает insider.dll из victim.exe .
ПРИМЕЧАНИЕ Чтобы это действительно работало, надо положить все три исполняемых модуля в один каталог. |
Для реализации перечисленных действий, да и вообще на будущее, в aggressor реализованы следующие полезные функции:
namespace OtherProcess { // // Вызывает функцию из заданного процесса, возвращает // описатель потока, который эту функцию выполняет HANDLE AsynchronousCall( HANDLE hProcess, void* address, void* parameter, DWORD* pid); // // Вызывает функцию из заданного процесса, дожидается завершения её работы bool SynchronousCall( HANDLE hProcess, void* address, void* parameter, DWORD* result); // // Загружает DLL в указанный процесс HMODULE LoadLibrary(HANDLE hProcess, const TCHAR* path); // // Выгружает DLL в указанном процессе void FreeLibrary(HANDLE hProcess, HMODULE hLib); // // Находит нужную функцию в указанной DLL в указанном процессе void* GetProcAddress(HANDLE hProcess, HMODULE hLib, const char* name); }; |
Предназначение функций, я надеюсь, понятно из их названий и кратких комментариев. Понимание реализации также не должно вызвать затруднений, прокомментировано всё достаточно подробно, да и сам код не такой уж головоломный. Успешных вам вызовов!
Список литературы
Джеффри Рихтер, «Programming Application for Microsoft Windows», четвёртое издание.
Тихомиров В.А. «Перехват API-функций в Windows NT/2000/XP».
Мэтт Питрек «Форматы PE и COFF объектных файлов»
Максим М. Гумеров «Загрузчик PE-файлов»
Для подготовки данной работы были использованы материалы с сайта http://www.rsdn.ru/