c#简单游戏外挂制作

c#简单游戏外挂制作

ID:1544202

大小:61.50 KB

页数:5页

时间:2017-11-12

c#简单游戏外挂制作_第1页
c#简单游戏外挂制作_第2页
c#简单游戏外挂制作_第3页
c#简单游戏外挂制作_第4页
c#简单游戏外挂制作_第5页
资源描述:

《c#简单游戏外挂制作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#简单游戏外挂制作(以WarcraftⅢ为例)2012-01-1723:13:14来源:作者:【大中小】浏览:1026次评论:0条网上有很多游戏外挂制作的教程,大多是讲针对大型网络游戏的,主要包含一些抓包、反汇编、C++的知识综合。事实也如此,常见的外挂都是使用VC++写的,从来没有过C#或者其他.NET语言编写的外挂。作为微软.NET技术的忠实粉丝,这难免是一种遗憾。不过不要紧,下面流牛木马就教大家两招,包教包会,免收学费。其实作为游戏外挂来说,主要就是三个功能:模拟键盘操作、模拟鼠标操作、修改内存数据。修改内存数据比较难,但模拟鼠标键盘的操作却

2、很简单。很多流行游戏的外挂,都可以只通过模拟鼠标键盘来实现,例如:劲舞团、QQ音速、连连看、各类网页游戏,以及各类大型网游中的自动打怪、自动吃药等等。WarcraftⅢ,学名魔兽争霸之冰封王座,俗称魔兽,简称war3,在最近六七年风靡全球。最近两年,war3在中国又掀起了玩DOTA的新高潮。本文制作DOTA游戏中的显血、改键外挂为例,简单地介绍如何使用C#语言制作游戏外挂。最终界面如下:本示例包含两个功能:显血;将Q键改为小键盘的7键。玩war3的同学都知道,这两个功能对于war3(尤其是DOTA)相当重要。首先简单介绍一下,外挂程序模拟键盘的原理。

3、外挂程序与游戏程序是两个不同的进程。外挂程序使用Windows提供的API找到游戏程序的进程,并设置键盘钩子(什么叫做钩子?你不知道,但百度知道。)设置完钩子后,我们再监控游戏进程中用户的按键,并根据用户需求进行处理,完成某些模拟键盘动作。了解了这个过程之后,我们就可以开始整理思路了。完成外挂一共需要以下四个步骤:一、声明WindowsAPI中的函数和常量1.//键盘Hook结构函数 2.[StructLayout(LayoutKind.Sequential)] 3.public class KeyBoardHookStruct 4.{ 5.publ

4、ic int vkCode; 1.public int scanCode; 2.public int flags; 3.public int time; 4.public int dwExtraInfo; 5.} 6.#region DllImport 7.//设置钩子 8.[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 9.public static extern int SetWindowsHookEx

5、(int idHook, HookProc lpfn, IntPtr hInstance, int threadId); 10.[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 11.//抽掉钩子 12.public static extern bool UnhookWindowsHookEx(int idHook); 13.[DllImport("user32.dll", CharSet = CharSet

6、.Auto, CallingConvention = CallingConvention.StdCall)] 14.//调用下一个钩子 15.public static extern int CallNextHookEx(int idHook, int nCode, IntPtr wParam, IntPtr lParam); 16.//取得模块句柄  17.[DllImport("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)

7、] 18.private static extern IntPtr GetModuleHandle(string lpModuleName); 19.//寻找目标进程窗口 [DllImport("USER32.DLL")] 20.public static extern IntPtr FindWindow(string lpClassName, 21.string lpWindowName); 22.//设置进程窗口到最前 [DllImport("USER32.DLL")] 23.public static extern bool SetForegr

8、oundWindow(IntPtr hWnd); 1.//模拟键盘事件 [DllImport("User32

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。