当前位置: > 手游资讯 > 游戏攻略 > 简单游戏外挂制作教程

简单游戏外挂制作教程

作者:哪吒游戏网 来源:哪吒游戏网 2020-06-29 19:16:18

简单游戏外挂制作教程,哪吒游戏网给大家带来详细的简单游戏外挂制作教程介绍,大家可以阅读一下,希望这篇简单游戏外挂制作教程可以给你带来参考价值。

关于简单游戏外挂制作教程.doc文档,爱问共享资料拥有内容丰富的相关文档游戏外挂制作教程游戏外挂制作教程,站内每天千位行业名人共享最新资料。

在几年前我看到别人玩网络游戏用上了外挂做为程序员的我心里实在是不爽想搞清楚这到底是怎么回事。就拿了一些来研究小有心得拿出来与大家共享外挂无非就是分几种罢了(依制作难度):、动作式所谓动作式就是指用API发命令给窗口或API控制鼠标、键盘等使游戏里的人物进行流动或者攻击最早以前的“石器”外挂就是这种方式。(这种外挂完全是垃圾TMD只要会一点点API的人都知道该怎么做不过这种外挂也是入门级的好东东虽然不能提高你的战斗力但是可以提高你的士气^^)商城超多外挂教程免费玩法攻略介绍啦网址:http:storewdwdcom淘宝店铺:http:shoptaobaocom、本地修改式这种外挂跟传统上的一些游戏修改器没有两样做这种外挂在编程只需要对内存地址有一点认识并且掌握API就可以实现“精灵”的外挂这是这种方式写成的它的难点在于找到那些地址码找地址一般地要借助于别人的工具有的游戏还有双码校验正正找起来会比较困难。(这种外挂比上一种有一点点难度但是这种外挂做起来能够用也是有一定难度的啦~~这种外挂可以很快提升你对内存地址的理解及应用是你编程技术提高的好东东)、木马式这种外挂的目的是帮外挂制作者偷到用户的密码(TMD“烂”就一个字不过要知已知彼所以还是要谈一下啦~~)做这种外挂有一定的难度需要HOOK或键盘监视技术做底子才可以完成它的原理是先首截了用户的帐号或密码然后发到指定邮箱。

(我以前写过这样的东东但是从来没有用过我知道这种东东很不道德所以以后千万别用呀!~~)、加速式这种外挂可以加快游戏的速度……(对不起大家这种东东我没有实际做过所以不能妄自评惭愧~~)、封包式这种外挂是高难度外挂需要有很强的编程功力才可以写得出来。它的原理是先截取封包后修改再转发(Kao,说起来简单你做一个试试~~~~)。这种外挂适用于大多数网络游戏像WPE及一些网络游戏外挂都是用这种方式写成的编写这种外挂需要apihook技术winsock技术这几种外挂之中前三种可以用VBDELPHI等语言比较好实现后两种则要用VC等底层支持比较好的编程工具才好实现。现在就依次(制作难度)由浅到深谈谈我对外挂制作的一些认识吧~~~~首先先来谈一下动作式的外挂这也是我第一次写外挂时做的最简单的一种。记得还在“石器”时代的时候我看到别人挂着一种软件(外挂)人物就可以四外游走(当时我还不知道外挂怎么回事^^)于是找了这种软件过来研究(拿来后才听别人说这叫外挂)发现这种东东其实实现起来并不难仔佃看其实人物的行走无非就是鼠标在不同的地方点来点去而已看后就有实现这功能的冲动随后跑到MSDN上看了一些资料发现这种实现这几个功能只需要几个简单的API函数就可以搞定:VB从零开始编外挂(一)需要VBAPI函数:FindWindow←寻找窗口列表中第一个符合指定条件的顶级窗口GetWindowThreadProcessId←获取与指定窗口关联在一起的一个进程和线程标识符相关API声明:FindWindow↓PrivateDeclareFunctionFindWindowLib"user"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLongGetWindowThreadProcessId↓PrivateDeclareFunctionGetWindowThreadProcessIdLib"user"(ByValhwndAsLong,lpdwProcessIdAsLong)AsLong需要的控件:Label、Timer自定义函数:DimhwndAsLong源代码:PrivateDeclareFunctionFindWindowLib"user"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLongPrivateDeclareFunctionGetWindowThreadProcessIdLib"user"(ByValhwndAsLong,lpdwProcessIdAsLong)AsLongPrivateSubTimerTimer()DimhwndAsLong'储存FindWindow函数返回的句柄hwnd=FindWindow(vbString,"WindowsMediaPlayer")'取得进程标识符'只要把WindowsMediaPlayer换成游戏的名称就可了!Ifhwnd=ThenLabelCaption="游戏未运行"ElseLabelCaption="游戏已运行"EndIfEndSubVB从零开始编外挂(二)相信大家在制作游戏外挂的时候都会用到FPE、金山游侠、GE修改器、GameMaster等等这些软件但是如今的网络游戏基本上都加了NP下面来了解一下NP。

知己知彼百战不殆嘛!什么是nProtect?nProtect是设计用于保护个人电脑终端不被病毒和黑客程序感染的新概念的基于网络的反黑客和反病毒的工具。他帮助确保所有输入个人电脑终端的信息在网络上不落入黑客手中。在最终用户在执行电子贸易时可以通过将nProtect配置在那些提供电子商务、进口贸易电子贸易的金融机构的网站上来提高安全等级。nProtect怎样工作?nProtect是一种基于服务器端的解决方案并且当那些需要保护的任何网络应用被运行时而自动启动。nProtect被载入内存所以最终用户不需要安装任何应用程序只要nProtect启动就开始拒绝黑客工具和病毒的入侵!下面介绍它如何工作:用户登陆时nProtect自动启动。浏览器确认和自动安装安全模块到用户的个人电脑。扫描黑客工具和病毒通知用户目前的安全状态如果有黑客工具和病毒尝试删除在被入侵时端驻留内存来锁定黑客工具直到电脑或者nProtect关闭。可恶的韩国人把这个加进了网络游戏。我只能说:“呸!”下面讲讲躲过NP的扫描的几个方法:一、FPE篇台湾人开发的东西哎。出名了的没办法谁叫它这么好呢!先装一个FPE把呵呵←这个是废话!不要把安装程序删除按照:开始→运行→regedit→HEKYLOCALMACHINE→SOFTWARE→jaw→FPE打开!(问:有什么用?答:修改呀!)运行FPE然后在搜索里面输入'jaw'(一定要家'')一般是个地址然后全部都选中输入:c(意思就是两边多输入就是!)不要关FPE!(关了就完了!)修改注册表把注册表里面的jaw、FPE(FPE的是全改)关闭FPE出现对话框。

(什么鸟语不认识!呵呵)将现在FPE的文件夹修改为(原来是FPE撒)把FPEexe修改为exe然后重新安装一次FPE也把那个DLL文件复制到你修改过的FPE文件目录下!(呵呵!)开FPE进游戏里面乱来拉!哈哈二、任务管理器篇比尔·盖茨那崽儿设计的东西还可以在这上面派上用场!(问:是什么东西?答WINDOWS自带的撒!呵呵!)首先用快捷键CtrlAltDelete打开任务管理器查看进程一般垃圾点的网络游戏会出现多的进程。你就杀了就行了!没有多的进程怎么办?BIN这个是大多数网络游戏都有的把官方的登陆器和私服的登陆器一样的都是调用BIN进入游戏。登陆器打开后更新完毕。点击运行游戏间隔几秒杀掉登陆器的进程(这个要看你自己的计算机配置如何了可能是秒、可能是秒!反正不超过秒)这样就可以闭屏NP拉!呵呵又可以乱来了!三、直接篇直接篇说白了就不用任何东西!怎么做?跟着我眼镜来撒!《封神榜》知道把?(答:不知道!反答:去死!)它的保护是有的官方都已经公布了但是有些人说《封神榜》没NP(注意:NP现在就是保护的代名词了!)别听那些人的!首先运行登陆器(更新的那个)进入游戏。关闭用登陆器进入的游戏马上运行Gameexe呵呵没NP了。

FPE等东西可以乱来了。魔法叠加、免负重等等都可以实现!还有一种就是DAT文件或者BIN文件直接修改为EXE。呵呵!四、编程篇(VB、VC、DELPHI等等!)怎么办呢?呵呵我不懂怎么编VC和DELPHI的。***我就喜欢VB怎么着?VB可以简单的实现虚拟nProtect的消息发送。具体的就不说了!一句话虚拟nProtect消息(你不等于没说嘛!)!呵呵这个嘛!代码就不写了麻烦。就像用WPE这些发包一样的原理VB从零开始编外挂(三)躲避了NP的扫描现在就可以模拟了!需要VBAPI函数:keybdevent←函数模拟了键盘行动相关API声明:keybdevent↓PrivateDeclareSubkeybdeventLib"user"(ByValbVkAsByte,ByValScanAsByte,ByValdwFlagsAsLong,ByValdwExtraInfoAsLong)需要的控件:Timer(interval不为空)代码:PrivateDeclareSubkeybdeventLib"user"(ByValbVkAsByte,ByValScanAsByte,ByValdwFlagsAsLong,ByValdwExtraInfoAsLong)PrivateSubTimerTimer()Callkeybdevent(,,,)'模拟按下"R"键EndSub其它模拟:方法一:AppActivatesTitleSendKeys""方法二:AppActivatesTitleSendKeysvbKey方法三:SendMessageHwnd,WMKEYDOWN,vbKey,SendMessageHwnd,WMKEYUP,vbKey,方法四:AppActivatesTitlekeybdevent,,,keybdevent,,KEYEVENTFKEYUP,方法五:PostMessagelHwnd,WMKEYDOWN,vbKey,PostMessagelHwnd,WMKEYUP,vbKey,VB从零开始编外挂(四)添加快捷键需要VBAPI函数:GetAsyncKeyState←判断函数调用时指定虚拟键的状态相关API声明:GetAsyncKeyState↓PrivateDeclareFunctionGetAsyncKeyStateLib"user"(ByValvkeyAsLong)AsIntegerPrivateFunctionMyHotKey(vKeyCode)AsBoolean需要的控件:Timer(interval不为空)代码:PrivateDeclareFunctionGetAsyncKeyStateLib"user"(ByValvkeyAsLong)AsIntegerPrivateFunctionMyHotKey(vKeyCode)AsBooleanMyHotKey=(GetAsyncKeyState(vKeyCode)<)EndFunction'然后在循环中或Timer的Timer事件中检测:PrivateSubTimerTimer()IfMyHotKey(vbKeyA)AndvbKeyControlThen'ctrlAEnd'关闭EndIf'其中vbkeyA是键盘〃A〃的常数其他键可按F查得。

EndSub其它方法:比如按下"ctrlA"就退出!'可以设置Form的KeyPreview属性为True然后在FormKeyDown事件中添加代码:PrivateSubFormKeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=Asc("A")AndShift=vbCtrlMaskThenunloadme'如果ctrlA键被按下就退出EndSubVB从零开始编外挂(五)前边谈了模拟键盘下面说说模拟鼠标。需要VBAPI函数:mouseevent←模拟一次鼠标事件相关API声明:mouseevent↓PrivateDeclareSubmouseeventLib"user"(ByValdwFlagsAsLong,ByValdxAsLong,ByValdyAsLong,ByValcButtonsAsLong,ByValdwExtraInfoAsLong)定义变量:ConstMOUSEEVENTFLEFTDOWN=HConstMOUSEEVENTFLEFTUP=HConstMOUSEEVENTFMIDDLEDOWN=HConstMOUSEEVENTFMIDDLEUP=HConstMOUSEEVENTFMOVE=HConstMOUSEEVENTFABSOLUTE=HConstMOUSEEVENTFRIGHTDOWN=HConstMOUSEEVENTFRIGHTUP=HMOUSEEVENTFLEFTDOWN'鼠标左键按下MOUSEEVENTFLEFTUP'鼠标松开MOUSEEVENTFRIGHTDOWN'鼠标右键按下MOUSEEVENTFRIGHTUP'鼠标右键松开代码:PrivateDeclareSubmouseeventLib"user"(ByValdwFlagsAsLong,ByValdxAsLong,ByValdyAsLong,ByValcButtonsAsLong,ByValdwExtraInfoAsLong)ConstMOUSEEVENTFLEFTDOWN=HConstMOUSEEVENTFLEFTUP=HConstMOUSEEVENTFMIDDLEDOWN=HConstMOUSEEVENTFMIDDLEUP=HConstMOUSEEVENTFMOVE=HConstMOUSEEVENTFABSOLUTE=HConstMOUSEEVENTFRIGHTDOWN=HConstMOUSEEVENTFRIGHTUP=H'这里是鼠标左键按下和松开两个事件的组合即一次单击mouseeventMOUSEEVENTFLEFTDOWNOrMOUSEEVENTFLEFTUP,,,,'模拟鼠标右键单击事件mouseeventMOUSEEVENTFRIGHTDOWNOrMOUSEEVENTFRIGHTUP,,,,'两次连续的鼠标左键单击事件构成一次鼠标双击事件mouseeventMOUSEEVENTFLEFTDOWNOrMOUSEEVENTFLEFTUP,,,,mouseeventMOUSEEVENTFLEFTDOWNOrMOUSEEVENTFLEFTUP,,,,VB从零开始编外挂(六)应用实战需要VBAPI函数:FindWindowGetWindowThreadProcessIdOpenProcessReadProcessMemoryCloseHandle相关API声明:FindWindow↓PrivateDeclareFunctionFindWindowLib"user"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLongGetWindowThreadProcessId↓PrivateDeclareFunctionGetWindowThreadProcessIdLib"user"(ByValhwndAsLong,lpdwProcessIdAsLong)AsLongOpenProcess↓PrivateDeclareFunctionOpenProcessLib"kernel"(ByValdwDesiredAccessAsLong,ByValbInheritHandleAsLong,ByValdwProcessIdAsLong)AsLongReadProcessMemory↓PrivateDeclareFunctionReadProcessMemoryLib"kernel"(ByValhProcessAsLong,ByVallpBaseAddressAsAny,ByVallpBufferAsAny,ByValnSizeAsLong,lpNumberOfBytesWrittenAsLong)AsLongCloseHandle↓PrivateDeclareFunctionCloseHandleLib"kernel"(ByValhObjectAsLong)AsLongGetCurrentProcess↓PrivateDeclareFunctionGetCurrentProcessLib"kernel"()AsLong需要的控件:Label、Timer(interval不为空)、Text定义函数:DimSetHpAsInteger'定义设定的体力值DimSetMpAsInteger'定义设定的魔法值DimNowHpAsLong'定义目前的体力值DimNowMpAsLong'定义目前的魔法值DimMaxHpAsLong'定义角色的最高体力值DimMaxMpAsLong'定义角色的最高魔法值DimDiZhiAsLong'定义内存地址函数DimhwndAsLong'储存FindWindow函数返回的句柄代码:PrivateDeclareFunctionFindWindowLib"user"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLongPrivateDeclareFunctionGetWindowThreadProcessIdLib"user"(ByValhwndAsLong,lpdwProcessIdAsLong)AsLongPrivateDeclareFunctionOpenProcessLib"kernel"(ByValdwDesiredAccessAsLong,ByValbInheritHandleAsLong,ByValdwProcessIdAsLong)AsLongPrivateDeclareFunctionReadProcessMemoryLib"kernel"(ByValhProcessAsLong,ByVallpBaseAddressAsAny,ByVallpBufferAsAny,ByValnSizeAsLong,lpNumberOfBytesWrittenAsLong)AsLongPrivateDeclareFunctionCloseHandleLib"kernel"(ByValhObjectAsLong)AsLongPrivateDeclareFunctionGetCurrentProcessLib"kernel"()AsLongDimSetHpAsInteger'定义设定的体力值DimSetMpAsInteger'定义设定的魔法值DimNowHpAsLong'定义目前的体力值DimNowMpAsLong'定义目前的魔法值DimMaxHpAsLong'定义角色的最高体力值DimMaxMpAsLong'定义角色的最高魔法值DimDiZhiAsLong'定义内存地址函数PrivateFunctionncnr(lpADDressAsLong)AsInteger'声明一些需要的变量DimhwndAsLong'储存FindWindow函数返回的句柄DimpidAsLong'储存进程标识符(ProcessId)DimpHandleAsLong'储存进程句柄hwnd=FindWindow(vbString,"封神榜·网络版")'取得进程标识符GetWindowThreadProcessIdhwnd,pid'使用进程标识符取得进程句柄pHandle=OpenProcess(PROCESSALLACCESS,False,pid)'在内存地址中读取数据ReadProcessMemorypHandle,lpADDress,ByValVarPtr(ncnr),,'关闭进程句柄CloseHandlehProcessEndFunctionConstSTANDARDRIGHTSREQUIRED=HFConstSYNCHRONIZE=HConstSPECIFICRIGHTSALL=HFFFFConstSTANDARDRIGHTSALL=HFConstPROCESSALLACCESS=STANDARDRIGHTSREQUIREDOrSYNCHRONIZEOrHFFFConstPROCESSVMOPERATION=HConstPROCESSVMREAD=HConstPROCESSVMWRITE=HPrivateSubFormLoad()'体力:FF这里替换你所搜索到的地址魔法:F同前DiZhi=HFFTimerEnabled=TrueTimerEnabled=FalseTimerEnabled=FalseEndSubPrivateSubTimerTimer()DimhwndAsLonghwnd=FindWindow(vbString,"封神榜·网络版")Ifhwnd=ThenLabelCaption="游戏未加载"TimerEnabled=TrueTimerEnabled=FalseTimerEnabled=FalseExitSubEndIfLabelCaption="游戏已加载"SetHp=TextText'获取设定的体力值SetMp=TextText'获取设定的魔法值NowHp=ncnr(DiZhi)'获取当前的体力值NowMp=ncnr(DiZhi)'获取当前的魔法值MaxHp=ncnr(DiZhi)'获取角色的最高体力值MaxMp=ncnr(DiZhi)'获取角色的最高魔法值LabelCaption=Str(NowHp)""Str(MaxHp)'显示角色体力值状态LabelCaption=Str(NowMp)""Str(MaxMp)'显示角色魔法值状态IfCheckValueThenTimerEnabled=TrueElseTimerEnabled=FalseEndIfIfCheckValueThenTimerEnabled=TrueElseTimerEnabled=FalseEndIfEndSubPrivateSubTimerTimer()'体力值小于设定值按下数字键If(NowHp)<SetHpThenSendKeys""EndIfEndSubPrivateSubTimerTimer()'魔法值小于设定值按下数字键If(NowMp)<SetMpThenSendKeys""EndIfEndSub软件截图:VB从零开始编外挂(七)钩子:喜欢外挂的人都知道很多外挂都是在游戏当中才能呼出。这个就用到了钩子N多人说:“哎VB做钩子想都别想!去学C语言吧!”只要大家遇到这种人就别理会他。可以说他是个垃圾。在实现钩子方面VB可能没有VC快但是也不像那种人说的“想都别想”C语言我最近几天看了看。{}这些太多了。脑袋也大了!可能那些学C语言的人是接触电脑编程的时候就学的它吧!但是呢我接触电脑学的就是VB。没办法我爱它!

总结:以上内容就是针对简单游戏外挂制作教程详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,简单游戏外挂制作教程部分内容转载自互联网,有帮助可以收藏一下。



上一篇: 魔兽世界:“厨师”称号获取指南

下一篇:

本文标签:
猜你喜欢