我已经成功将DLL注入目标进程中,并且也能够Hook住目标进程中的MessageBox,我现在想Hook目标进程肯定会调用的函数却失败!!!
求高高手。。。。
LUA_API lua_State *(*lua_newstate_p) (lua_Alloc f, void *ud) =lua_newstate ;
LUA_API lua_State* real_luaL_newstate (lua_Alloc f, void *ud)
{
OutputDebugString("XXXXXXXXXXXXXX real_luaL_newstate");
return 0;
}
int (WINAPI *MessageBoxAPointer)(HWND hWnd, LPCSTR lpText, LPCSTR Caption, UINT uTypee) = MessageBoxA;
int WINAPI My_MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, INT uType)
{
OutputDebugString("XXXXXXXXXXXXXX My_MessageBoxA");
return MessageBoxAPointer(NULL, "", "HOOK成功", MB_OK);
}
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
static CMyMutex Mutex(FALSE,_T("Zhujnt@163.com"),NULL);
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
DetourRestoreAfterWith();
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)lua_newstate_p, real_luaL_newstate);
DetourAttach(&(PVOID&)MessageBoxAPointer, My_MessageBoxA);
DetourTransactionCommit();
}
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
{
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)lua_newstate_p, real_luaL_newstate);
DetourAttach(&(PVOID&)MessageBoxAPointer, My_MessageBoxA);
DetourTransactionCommit();
}
break;
}
return TRUE;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课