Реферат: Вызов функции в другом процессе

Где Base – базовое значение ординала. Как показывает практика, Base вычитать не надо.

Код

В конце концов у меня получилось три функции. Первая находит секцию экспорта:

// Определяет RVA секции экспорта

int GetExportSectionRVA(HANDLE hProcess, const void* baseAddress)

{

// Читаем DOS-заголовок

IMAGE_DOS_HEADER dos_header;

ReadProcessMemory(

hProcess,

baseAddress,

&dos_header,

sizeof(dos_header),

NULL);

// Читаем PE-заголовок

IMAGE_NT_HEADERS pe_header;

ReadProcessMemory(

hProcess,

reinterpret_cast<const BYTE*>(baseAddress) + dos_header.e_lfanew,

&pe_header,

sizeof(pe_header),

NULL);

// Смещение секции экспорта

return pe_header.OptionalHeader.DataDirectory

[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;

}

Вторая перебирает массив имён функций в поиске заданного имени:

// Ищет в массиве имён функций заданное имя, возвращает индекс или –1

int FindName(

К-во Просмотров: 373
Бесплатно скачать Реферат: Вызов функции в другом процессе