主题:【游戏修改器制作】

主题:【游戏修改器制作】

ID:27709114

大小:111.00 KB

页数:6页

时间:2018-12-05

主题:【游戏修改器制作】_第1页
主题:【游戏修改器制作】_第2页
主题:【游戏修改器制作】_第3页
主题:【游戏修改器制作】_第4页
主题:【游戏修改器制作】_第5页
资源描述:

《主题:【游戏修改器制作】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、主题:【游戏修改器制作】对不起,我想这是不可能的,因为VB是一个如此简单的编程语咅。"如果有人这么告诉你,别去理他。我可以肯定告诉你,对于制作修改器这种简单的程序,VB完全可以胜任。然而,有个问题必须首先考虑:使用VB编写的修改器需要VB的运行库才能运行。如果考虑到有些使用者(实际上可能是大部分使用者)没有运行庳,那么在最后制作的ZIP压缩文件中就必须包含这些庞大的文件。在下面的教程里我将制作一个修改器,如果为它再制作一个安装程序,那么整个修改器的体积将超过1MB。其中包括一个很好的安装和反安装程序,但大部分还是VB40032.DLL这个文件。除了以上这点,使用VB制作

2、修改器是非常简单的。一旦制作了多次后,你会发现能很快地制作出一个修改器。而且使用VB制作的修改器能够毫无困难地解决游戏运行时的动态内存分配问题,因此即使是最新的游戏,也可以使用VB制作修改器。在本教程中将不涉及动态内存分配,因为虽然简单,但仍然属于一个高级的选项。一些背景知识不象C语咅,VB不会自动包括普通的API函数的声明,因此我们必须把他们加入我们的项目文件。在几乎所有的修改器巾会使用到6个主要的函数,讨论如卜•:1.FindWindow(ClassName,WindowTitle)-FindWindow返回符合指定的类名(ClassName)和窗口名(Window

3、Title)的窗口句柄。对我们来说,可以让ClassName为空(Null),只给出游戏的WindowTitle。函数应该这样声明:DeclareFunctionFindWindowLib”user32"Alias"FindWindowA”(ByValIpCIassNameAsString,ByValIpWindowNameAsString)AsLong2.GetWindowThreadProcessld(WindowHandle,Processld)-在这里我们把FindWindow蚋数中得到的句柄作为参数,来获得进程标识符(Processld)。声明如下:Decla

4、reFunctionGetWindowThreadProcessIdLib"user32”(ByValhwndAsLong,IpdwProcessIdAsLong)AsLong3.OpenProcess(DesiredAccess,Inherit,Processld)-这个函数将返回一个我们目标进程的句柄,可以用来对目标进行读写操作。DesiredAccess参数的值决定了句柄对进程的存収权利,对我们来说,要使用PROCESS_ALL_ACCESS(完企存取权限)。Inherit应该总是False。Processld是从GetWindowThreadProcessld函

5、数屮取得的。DedareFunctionOpenProcessLib"kernel32"(ByValdwDesiredAccessAsLong,ByValblnheritHandleAsLong,ByValdwProcessIdAsLong)AsLong4.CloseHandle(ProcessHandle)-每一个打开的句柄必须呼叫这个函数來关闭。DeclareFunctionCloseHandieLib"kernel32"(ByValhObjectAsLong)AsLong5.WriteProcessMemory(ProcessHandle,Address,Valu

6、e,SizeofValue,BytesWritten)-把指定的值Value写入巾Address指定的目标地址。DecIareFunctionWriteProcessMemoryLib"kernel32.’(ByValhProcessAsLong,ByValIpBaseAddressAsAny,ByValIpBufferAsAny,ByValnSizeAsLongJpNumberOfBytesWrittenAsLong)AsLong6.ReadProcessMemory(ProcessHandle,Address,Value,SizeofValue,BytesWritt

7、en)-把Address指定的R标地址的位存入Value位置的变量中。DeclareFunctionWriteProcessMemoryLib"kernel32"(ByValhProcessAsLong,ByValIpBaseAddressAsAny,ByValIpBufferAsAny,ByVaInSizeAsLong,IpNumberOfBytesWrittenAsLong)AsLong这些函数一•环扣一环,缺一不可。更详细的内容可以参考VB的帮助文件。一个简单的修改器范例如何使上面介绍的这些函数一起工作,制作出我们耑要的修改器呢?T

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

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

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