嗨所以我只是想学习逆向工程,当我在IDA专业版中打开我的程序时,我发现这个地址为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 ++编写的控制台应用程序