Реферат: Вызов функции в другом процессе
Где 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
Бесплатно скачать Реферат: Вызов функции в другом процессе
|