+ -
当前位置:首页 → 问答吧 → EXE注入器,把DLL注入游戏后,创建窗体的问题

EXE注入器,把DLL注入游戏后,创建窗体的问题

时间:2011-12-23

来源:互联网

我写了一个exe注入器,把shared.dll注入到一个游戏里!

我利用HOOK键盘消息SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, theApp.m_hInstance, tid);

回调函数
LRESULT CALLBACK KeyboardProc( int nCode, WPARAM wParam, LPARAM lParam )
{
if (wParam == VK_HOME)
{
创建一个窗体,窗体调用游戏的内存
}
}
我在游戏里按HOME键,就可以创建我的窗体里!!!


现在我想注入后,直接创建窗体


我用的方法(不成功): 在注入后,调用DLL的函数
Cshform *mmm;
_declspec(dllexport) BOOL WINAPI InstallHook()
{
::SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, theApp.m_hInstance, tid);
SetWindowText(GHwnd,"注入成功");

mmm=new Cshform(); ****//这两句有问题
mmm->T(); ****//这两句有问题
}

用了这两句后,虽然调用了T()函数,但是函数里的指针指向的都是exe注入器的,并不是游戏的!!!



我的问题: 我可以用什么方法,注入后自动创建关联游戏的窗体资源???

作者: q516q516   发布时间: 2011-12-23

放到 DllMain 里

作者: stjay   发布时间: 2011-12-23

MFC的话先调用两个函数初始化, AfxWinInit, AfxSetResourceHandle

作者: zzz3265   发布时间: 2011-12-23

楼上的方式可以
也可以注入后主动向注入的EXE发送一条消息来触发钩子函数的调用. 比如上面的HOMW键, 就可以模拟一条键盘消息来实现.

作者: krh2001   发布时间: 2011-12-23

在 KeyboardProc 函数里创建。

作者: Saleayas   发布时间: 2011-12-23

g_hHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)(FARPROC)HookProc_GetMessage, hModule, GetWindowThreadProcessId(hRemoteWindow, NULL));

钩住 GETMESSAGE

作者: Saleayas   发布时间: 2011-12-23

在 InstallHook 函数中的任何操作都是在自己的进程内。
必须在对方的进程内才可以。

作者: Saleayas   发布时间: 2011-12-23