四种网络游戏外挂的设计方法(二)

游戏外挂设计技术探讨  网络游戏盛行催生了各种外挂,让商家头痛不已,那么外挂是怎么设计的呢?看看本文就知道了   一、 前言   所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。 阅读详情
本地修改式外挂

  现在我们来看看,比动作式外挂更进一步的外挂——本地修改式外挂的整个制作过程进行一个详细的分解。

  具我所知,本地修改式外挂最典型的应用就是在“精灵”游戏上面,因为我在近一年前(“精灵”还在测试阶段),我所在的公司里有很多同事玩“精灵”,于是我看了一下游戏的数据处理方式,发现它所发送到服务器上的信息是存在于内存当中(我看后第一个感受是:修改这种游戏和修改单机版的游戏没有多大分别,换句话说就是在他向服务器提交信息之前修改了内存地址就可以了),当时我找到了地址于是修改了内存地址,果然,按我的想法修改了地址,让系统自动提交后,果然成功了~~~~~,后来“精灵”又改成了双地址校检,内存校检等等,在这里我就不废话了~~~~,OK,我们就来看看这类外挂是如何制作的:

  在做外挂之前我们要对Windows的内存有个具体的认识,而在这里我们所指的内存是指系统的内存偏移量,也就是相对内存,而我们所要对其进行修改,那么我们要对几个Windows API进行了解,OK,跟着例子让我们看清楚这种外挂的制作和API的应用(为了保证网络游戏的正常运行,我就不把找内存地址的方法详细解说了):

  1、首先我们要用FindWindow,知道游戏窗口的句柄,因为我们要通过它来得知游戏的运行后所在进程的ID,下面就是FindWindow的用法:

HWND FindWindow(

LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);


  2、我们GetWindowThreadProcessId来得到游戏窗口相对应进程的进程ID,函数用法如下:

DWORD GetWindowThreadProcessId(

HWND hWnd, // handle of window
LPDWORD lpdwProcessId // address of variable for process identifier
);

  3、得到游戏进程ID后,接下来的事是要以最高权限打开进程,所用到的函数OpenProcess的具体使用方法如下:

HANDLE OpenProcess(

DWORD dwDesiredAccess, // access flag
BOOL bInheritHandle, // handle inheritance flag
DWORD dwProcessId // process identifier
);


  在dwDesiredAccess之处就是设存取方式的地方,它可设的权限很多,我们在这里使用只要使用PROCESS_ALL_ACCESS 来打开进程就可以,其他的方式我们可以查一下MSDN。

  4、打开进程后,我们就可以用函数对存内进行操作,在这里我们只要用到WriteProcessMemory来对内存地址写入数据即可(其他的操作方式比如说:ReadProcessMemory等,我在这里就不一一介绍了),我们看一下WriteProcessMemory的用法:

BOOL WriteProcessMemory(

HANDLE hProcess, // handle to process whose memory is written to
LPVOID lpBaseAddress, // address to start writing to
LPVOID lpBuffer, // pointer to buffer to write data to
DWORD nSize, // number of bytes to write
LPDWORD lpNumberOfBytesWritten // actual number of bytes written
);


  5、下面用CloseHandle关闭进程句柄就完成了。

  这就是这类游戏外挂的程序实现部份的方法,好了,有了此方法,我们就有了理性的认识,我们看看实际例子,提升一下我们的感性认识吧,下面就是XX游戏的外挂代码,我们照上面的方法对应去研究一下吧:

const
ResourceOffset: dword = $004219F4;
resource: dword = 3113226621;
ResourceOffset1: dword = $004219F8;
resource1: dword = 1940000000;
ResourceOffset2: dword = $0043FA50;
resource2: dword = 1280185;
ResourceOffset3: dword = $0043FA54;
resource3: dword = 3163064576;
ResourceOffset4: dword = $0043FA58;
resource4: dword = 2298478592;
var
hw: HWND;
pid: dword;
h: THandle;
tt: Cardinal;
begin
hw := FindWindow('XX', nil);
if hw = 0 then
Exit;
GetWindowThreadProcessId(hw, @pid);
h := OpenProcess(PROCESS_ALL_ACCESS, false, pid);
if h = 0 then
Exit;
if flatcheckbox1.Checked=true then
begin
WriteProcessMemory(h, Pointer(ResourceOffset), @Resource, sizeof(Resource), tt);
WriteProcessMemory(h, Pointer(ResourceOffset1), @Resource1, sizeof(Resource1), tt);
end;
if flatcheckbox2.Checked=true then
begin
WriteProcessMemory(h, Pointer(ResourceOffset2), @Resource2, sizeof(Resource2), tt);
WriteProcessMemory(h, Pointer(ResourceOffset3), @Resource3, sizeof(Resource3), tt);
WriteProcessMemory(h, Pointer(ResourceOffset4), @Resource4, sizeof(Resource4), tt);
end;
MessageBeep(0);
CloseHandle(h);
close;


  这个游戏是用了多地址对所要提交的数据进行了校验,所以说这类游戏外挂制作并不是很难,最难的是要找到这些地址。

开始看网络游戏外挂制作类书 一些文章﹐對你有用﹗网络游戏外挂编写初级教程 http://www.csdn.net/develop/article/21/21361.shtm网络游戏外挂制作之我所见(1) http://www.csdn.net/Develop/Read_Article.asp?Id=17641网络游戏外挂制作之我所见(2) http://www.csdn.net/Develop/Read_Articl 阅读详情

相关推荐

修改网络游戏秘籍—设计游戏外挂编写基础

 要想在修改游戏中做到百战百胜,是需要相当丰富的计算机知识的。有很多计算机高手就是从玩游戏,修改游戏中,逐步对计算机产生浓厚的兴趣,逐步成长起来的。不要在羡慕别人能够做到的,因为别人能够做的你也能够!我相信你们看了本教程后,会对游戏有一个全新的认识,呵呵,因为我是个好老师!(别拿鸡蛋砸我呀,救命啊!#¥%……*)  不过要想从修改游戏中学到知识,增加自己的计算机水平,可不能只是靠修改游戏呀!要知道

tyt2008cn的专栏 3209

四种网络游戏外挂设计方法(三)

木马式外挂  木马式外挂,可能大多像木马吧,是帮助做外挂的人偷取别人游戏的帐号及密码的东东。因为网络上有此类外挂的存在,所以今天不得不说一下(我个人是非常讨厌这类外挂的,请看过本文的朋友不要到处乱用此技术,谢谢合作)。要做此类外挂的程序实现方法很多(比如HOOK,键盘监视等技术),因为HOOK技术对程序员的技术要求比较高并且在实际应用上需要多带一个动态链接库,所以在文中我会以键盘监视技术来实现此类

682

网络游戏外挂编写初级教程

做自己喜欢的! ------ 明天你来自己做外挂 随着网络游戏的日益火爆,很多玩家都投身到游戏中。目前很多玩家都依赖于一些游戏外挂程序来进行游戏。那么做一个游戏外挂程序是否是一件很困难的事呢?回答是"否",诚然编写一些程序是需要一些基本知识的,所以我们想以最简单的语言来给你讲授编写外挂程序的一些技巧,一些方法,并提供给你一些基本的辅助工具,即使你是一个菜鸟,看了我们的教程,并技巧地使用我们提供

天之剑 1860

万字长文带你了解“游戏外挂”?零基础入门到精通,收藏这一篇就够了

而在IOS平台下,代码都在app的bin文件中,和Android中的so类似,只需要了解THUMB即可。其实核心点在于内存,在内存中是正在运行的指令以及缓存等数据,功能性外挂通常通过修改内存数据,改变其运行原理,达到其想要的效果,例如通常在游戏中会有个全局变量来记录当前移动速度,可以使用Cheat Engine、GG修改器等内存工具找到并改变这个值就可以实现加速的效果。一个rlgg,一个加验证的lua,一个改了个名的“直装”,就是所谓的“登峰造极”了,然后建个群,发些公告,圈个十块八块的网费。

Python_paipai的博客 2万+

游戏外挂怎么做?零基础入门到精通,收藏这篇就够了

破解版是通过事先静态修改后的独立的游戏客户端。玩家一般根据游戏面板中的精确数据,利用修改器搜索相应数值,再根据数值变化规律多次搜索排除定位到相应属性在内存中的位置,直接修改成夸张效果值。很多粉丝都知道,我之前写过几个游戏AI开挂的文章,这些文章主要是利用游戏内数据训练游戏AI预测敌方对手的状态,这样就可以做到让AI在即时战斗中学会执行下一步的操作。脱机挂,是外挂作者基于游戏协议的分析,自己开发的一个游戏客户端。常见外挂功能均是在游戏对局中,利用变速器加速功能,主角和怪物AI的攻击节奏加快,能快速结束战斗。

Libra1313的博客 9565

探讨游戏外挂技术

探讨游戏外挂技术[ 作者:周毅    转贴自:CBI    点击数:2570    更新时间:2004-04-03    文章录入:Lynn ]var status0_6562=;var curfontsize_6562=9;var curlineheight_6562=12;8){fo

超然楼 2443

四种网络游戏外挂设计方法

  在几年前我看到别人玩网络游戏用上了外挂,做为程序员的我心里实在是不爽,想搞清楚这到底是怎么回事。就拿了一些来研究,小有心得,拿出来与大家共享,外挂无非就是分几种罢了(依制作难度):  1、动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。(这种外挂完全是垃圾,TMD,只要会一点点API的人都知道该怎么做,

|游梦空间| 2535

转载:网络游戏外挂设计深度探索

 网络游戏外挂设计深度探索  网络游戏的繁荣使它的“寄生虫”——外挂也迅速繁荣起来,进而形成了一种畸形产业,不少开发高手在这里找到了所谓的“第一桶金”。由于外挂游戏运营商在不停的“流失营养”,当这种状况达到不堪重负的时候,网络游戏业将轰然倒下,运营商对外挂恨之入骨。  玩家们对外挂又恨又爱,爱它可以迅速提高自己的级别和很容易的获得宝物,恨它让这个级别和宝物很快贬值。  外挂如同罂粟花般灿

bbdg的专栏 3025

游戏外挂的原理

开篇之前先来点题外话,我的第一篇博客,和技术无关,不喜勿喷,除了偶尔玩玩王者之外大型的网络游戏不玩,所以文中说的不对的地方,欢迎到评论区指正。 最近这段时间看大家玩《绝地求生》玩的挺火的,还有挺多的外挂,由于遇到不明白的问题比较喜欢琢磨,所以这几天查了好多资料对外挂的原理进行了一个大概的了解 外挂(开源)具体可以实现什么操作? 还是以绝地求生为例 开源代码可以实时透

林栖者—戏梦如生 7846

网络游戏外挂编写基础(1)

要想在修改游戏中做到百战百胜,是需要相当丰富的计算机知识的。有很多计算机高手就是从玩游戏,修改游戏中,逐步对计算机产生浓厚的兴趣,逐步成长起来的。不要在羡慕别人能够做到的,因为别人能够做的你也能够!我相信你们看了本教程后,会对游戏有一个全新的认识,呵呵,因为我是个好老师!(别拿鸡蛋砸我呀,救命啊!#¥%……*)   不过要想从修改游戏中学到知识,增加自己的计算机水平,可不能只是靠修改游戏呀! 要知

Another's story 3147

网络游戏外挂编写原理()

网络游戏外挂编写原理()2007-08-21 21:25一、 前言   所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。  不管游

zhoubaocun的专栏 3059

外挂的艺术-单机游戏辅助工具-网络游戏外挂

外挂(wài guà) 又叫开挂、开外挂、辅助、第三方辅助软件,综合某些修改器的功能进行编程出的游戏修改器。一般指通过修改游戏数据而为玩家谋取利益的作弊程序或软件,即利用电脑技术针对一个或多个软件进行非原设操作,篡改游戏原本正常的设定和规则,大幅增强游戏角色的技能和超越常规的能力,从而达到轻松获取胜利、奖励和快感的好处,通过改变软件的部分程序制作而成的作弊程序。 外挂一般是指在电脑运行中,一个程序通过某种事件触发而得以挂接到另外一个程序的空间里(常用的触 发事件有键盘触发,鼠标触发,消息触发等),挂接的

打工人的自我修养 8286

网络游戏外挂设计深度探索

外挂之谜 外挂相关评论过街老鼠?温柔小猫? 外挂七宗罪火焰与海水 外挂!恨并爱着试以辩证法观点探究网游外挂 相关专题推荐 Sockets网络编程实用宝典 Delphi网络与通讯编程专辑 Visual Basic 网络编程专辑

ark1111的专栏 3547

规避网络游戏外挂检测机制

规避网络游戏外挂检测机制 译注:这是一篇发表在rootkit.com上的讨论怎么规避warden检测机制的文章,原文在这里。作者Darawk是D2的黑客。之前,暴雪通过Module32First/Module32Next对D2 1.11中的外挂进行了第一次打击,很多使用外挂的玩家尤其是netter's EasyMap的玩家损失惨重。黑客们开始思考Anti-warden的问题,这篇文章就是一些这

kingswb的博客 1万+

游戏外挂设计终极教程1

 网络游戏盛行催生了各种外挂,让商家头痛不已,那么外挂是怎么设计的呢?看看本文就知道了 一、 前言   所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。  随着网络游戏的时代的来临

wxm169的专栏 1109

游戏外挂制作 VB

为什么要学制作外挂   学习制作外挂,其实是学习一门网络技术,不是仅仅是游戏!  我们玩游戏游戏公司玩我们,你可以忍受游戏的不平衡吗?你可以忍受游戏的BUG吗,你愿意交钱去买外挂(有时后还可能上当受骗)吗?你不愿意自己做外挂自己用吗?你不愿意做几个外挂给你的朋友使用吗?你不愿意体验制作外挂的乐趣吗?你不愿意自己的游戏ID有很多钱,很好的装备,很高的等级吗?看到别人拿着外挂到处

codedream的专栏 5939

外挂制作教程一

制作外挂的可行性             首先,让我们来看一下网络游戏的工作原理:   网络游戏是这样工作的: 1.由服务器记录保存所有用户资料,所有信息的修改都是服务器完成的 2.服务器接受客户机的请求发送必要的信息给客户机,以使玩家正常游戏 3.服务器接收客户机的信息反馈,并根据反馈信息,对游戏帐号作相应修改   从以上简单的介绍,我们可以看出,网络游戏可以认为是这样工作的:   由客户机电脑

lijingli10的专栏 6721
上一篇: 真正的Java学习从入门到精通
下一篇: 四种网络游戏外挂的设计方法(三)
pcmac
博客等级 码龄22年 13粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值