访外.挂之无参数Call的远程调用...
本文章中的示例程序下载地址:
CallTest.zip http://download.csdn.net/download/friendan/4367002
CallTest.zip http://download.csdn.net/download/friendan/4367002
RemoteCall.zip http://download.csdn.net/download/friendan/4367006
本程序完整源码下载地址:
http://download.csdn.net/download/friendan/4367038
呵呵,我一直对远程调用其它程序的功能模块很是感兴趣,
远程调用Call,用的最多的,莫过于外挂程序了。
写完这个例子,我对远程Call调用有了基本的理解,
为下一步,进行有参数Call的调用做好了准备...
效果截图如下:
主要代码如下:
//远程调用无参数Call函数 //调用时,直接传入Call的内存地址即可 //如这样调用本函数:RemoteCall(0x401620); void RemoteCall(int callAddr) { //获取窗口句柄 HWND hWnd=::FindWindow(NULL,_T("CallTest")); if (hWnd==NULL) { AfxMessageBox(_T("找不到指定窗口!")); return; } //获取窗口进程Id DWORD Pid=0; ::GetWindowThreadProcessId(hWnd,&Pid); //打开窗口进程 HANDLE hndWnd=::OpenProcess(PROCESS_ALL_ACCESS,TRUE,Pid); if (hndWnd==NULL) { AfxMessageBox(_T("打开窗口进程失败!")); return; } //远程调用Call ::CreateRemoteThread(hndWnd,NULL,0,(LPTHREAD_START_ROUTINE )(callAddr),NULL,0,NULL); }
探索代码的奥秘,享受技术的乐趣-_-!...