HOOK注入如何让另一个程序显示DLL里面的一个对话框?
首先,为了能说得更清楚,我先举个例子!!
游戏外挂大家都知道吧!大家也都见过吧!!
我的程序就类似那样的一个效果.
就是我说我在我的DLL里同创建了一个对话框资源,我想在我的程序里放一个按钮,当单击这个按钮时,我的程序执行一个HOOK注入到另一个程序,并能在那个程序窗口上弹出一个非模态的对话框!
我用的标准的MFC DLL.
我在DLL里创建了一个对话框,并创建了一个类,而DLL里本身又有一个CHookApp这个类!
我在这个类里定义一个CWnd变量用来装目标窗口类,并用安装HOOK时传进来 的一个HWND窗口句柄,调用CWnd::FromHandl()函数对这个CWnd赋值,然后就是创建对话框!
代码如下:
void CHookApp::classTest()//自定义的函数
{
myCwnd = CWnd::FromHandle(wnd);//对我自定义的CWnd变量赋值
TestDlg *my = new TestDlg();//这个就是那个对话框类
my->Create(MAKEINTRESOURCE(IDD_TestDIALOG1),myCwnd);//创建
my->ShowWindow(true};//显示
}
可是这样做当执行时会弹出一个错误提示(就是那个红X,有"终止","重试","忽略")的提示框,然后目标程序就退出了!
不知道我错在哪里了!
还有,就是MAKEINTRESOURCE(IDD_TestDIALOG1)这块,如果我直接用资源ID就报错,编译都通不过!
后来我用这样的代码试还是一样的效果!
void CHookApp::classTest()//自定义的函数
{
myCwnd = CWnd::FromHandle(wnd);//对我自定义的CWnd变量赋值
myCwnd->MessageBox("aaaa",0,0);
}
不知道为什么?请各位帮忙!