Реферат: Вызов функции в другом процессе
WORD funcIndex = -1;
if (reinterpret_cast<DWORD_PTR>(name) > 0x0000ffff)
{
// Функция экспортируется по имени. Ищем имя
int nameIndex = FindName(
hProcess,
baseAddress,
export.AddressOfNames,
export.NumberOfNames,
name);
if (nameIndex < 0)
{
// Такой функции нет
return NULL;
}
// Читаем индекс (они двухбайтные!!!)
ReadProcessMemory(
hProcess,
baseAddress + export.AddressOfNameOrdinals
+ nameIndex * sizeof(WORD),
&funcIndex,
sizeof(funcIndex),
NULL);
}
else
{
// Функция экспортируется по ординалу
WORD funcOrdinal = reinterpret_cast<DWORD>(name);
if ((funcOrdinal < export.Base)