Привет, я просто пытался изучить реверс-инжиниринг, и когда я открываю свою программу в IDA pro, я нахожу этот адрес sub_11330 (переназначен на 0) https://gyazo.com/1c34d2c31f29583f05d0dd4d956d6f74 однако когда я пытаюсь перехватить эту функцию, адрес GetModuleHandle (NULL) + 0x11330 не работает, поэтому я просто попытался напечатать базовый адрес функции с помощью std :: cout << (DWORD) callme — (DWORD) GetModuleHandle (NULL) и когда я пытаюсь использовать этот адрес, он работает (0x1128a), почему я не могу найти его с помощью IDA? извините, если я не понял, если вы не можете понять, что я пытаюсь объяснить, я напишу свой пост.
вот как я это ловлю
int WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
std::cout << "injected" << std::endl;
Detour((PBYTE)GetModuleHandle(NULL) + 0x1128a, (PBYTE)&func);
}
return true;
}
Мой обход функции только изменяет первые 5 байт функции, и этот работает, я компилирую с vs2015 в режиме отладки, моя программа — консольное приложение, написанное на c ++
Задача ещё не решена.
Других решений пока нет …