外挂是怎样的一种程序!是怎样编些出来的?需要具备哪些知识?
外挂是指某些人利用自己的电脑技术专门针对一个或多个网络游戏,通过改变网络游戏软件的部分程序,制作而成的作弊程序。
现在随着游戏官方对外挂的抵制,游戏本身也有了超强的自动检测外挂的功能,但制作外挂的技术也不断提高着,现在最流行的就是在游戏中用封包和抓包工具对游戏服务器提交假的数据从而改变游戏人物能力。
另外,外挂也指:单位形的作战武器系统在其原本的作战单位上添加附加的用于辅助作战单位作战的工具、器具。
外挂一般是指在电脑运行中,一个程序通过某种事件触发而得以挂接到另外一个程序的空间里(常用的触 发事件有键盘触发,鼠标触发,消息触发等),挂接的目的通常是想改变被挂接程序的运行方式。
现在的 游戏外挂就是将外挂程序挂接到游戏程序当中,通过截取并修改游戏发送到游戏服务器的数据而实现各种 功能的增强。
客户/服务器模式的通讯一般采用TCP/IP通信协议,数据交换是通过IP数据包的传输来实现的,一般来说我们客户端向服务器发出某些请求,比如移动、战斗等指令都是通过封包的形式和服务器交换数据。
那么我们把本地发出消息称为SEND,意思就是发送数据,服务器收到我们SEND的消息后,会按照既定的程序把有关的信息反馈给客户端,比如,移动的坐标,战斗的类型。
那么我们把客户端收到服务器发来的有关消息称为RECV。
知道了这个道理,接下来我们要做的工作就是分析客户端和服务器之间往来的数据(也就是封包),这样我们就可以提取到对我们有用的数据进行修改,然后模拟服务器发给客户端,或者模拟客户端发送给服务器,这样就可以实现我们修改游戏的目的。
怎么制作游戏外挂阿,那个应该很赚钱,比如说DNF外挂,我也想学制作外挂一天是不是就可以赚很多钱
外挂一般有两种写法
1. 脚本类,利用模拟键盤鼠标的方式,来欺骗电脑,用脚本来进行操作,入门容易,但是稳定度差,也容易被程序禁止。
2. 封包类,利用送出假资料封包的方式来欺骗服务器端,一般来说成功率最高,稳定度也最好,但是入门难度高,需要有封包拦截的软硬体与分析能力。
基本上都要以靠团队,一个人是很困难的。
制作辅助需要什么?
C语言可以,学会了别的语言就都会了,C语言出了个汉化版的
一、
先说一下写一个外挂需要什么条件
1
、熟练的
C
语言知识
目前的外挂大部分都是用
BC
或者是
vc
写的,拥有熟练的
C
语言知识是写外挂的基本条件
2
、具有很强的汇编基础
一般游戏都不可能有原代码的,必须靠反汇编或者跟踪的办法来探索其中的机理
,所以有强的汇编基础也是必不可少的条件
3
、熟练掌握跟踪和调试的工具
有了上面
2
个条件后,掌握一些工具也是很有必要的
跟踪的工具,
softice
当然是不二之选,至于反汇编的工具,我推荐用
IDA
PRO
这个工具反汇编出来的代码结构清晰,非常好读
如果你不具有上面的条件,还是先把基础打好,再来写外挂吧,一分耕耘,一分收获,天下
没有白掉的馅饼的
二、写外挂面临的基本技术问题
1
、修改进程的执行代码
要修改进程的执行代码,
要先取得进程的
ID,
如果是由外挂程序启动,
返回值里就有进程
ID,
如果不是的话,
需要用
findwindow
找到窗口句柄,
再用
GetWindowProcessID
取得进程
ID,
取得进程
ID
以后,
就可以用
writeprocessmemory
来修改进程的执行代码了,使程序按照我们的意愿来执行,石器外挂里
的不遇敌、寸步遇敌
就是用这样的方法来实现的
2
、截获外挂发送和接收的封包
除了通过修改代码来实现的功能以外,
很多的功能都是通过修改封包来实现的,
要修改封包,
首先要能截获它。
第一步是要跟踪出发和收的位置,
至于怎么跟踪,
我以后会提到,找到位置以后,
有
2
个办
法,一是在那个位置加一
个
jmp
语句,跳到你的处理函数位置,处理完后,再跳回来,这种方法要求比较高,需要
处理好很多事情,另一种办法
是往那个位置写条能造成例外的指令,
比如
int 3,
然后用
DebugActiveProcess
调试游戏进程,
这样每当游戏执行到那个
位
置
的
时
候
,
就
会
停
下
来
,
到
外
挂
程
序
里
面
去
,
等
外
挂
程
序
处
理
完
以
后
,
用
ContinueDebugEvent
继续运行程序。
今天先写这么多,下回将讨论外挂的具体功能该怎么实现
今天来谈谈地址的调查问题,
地址调查是写外挂中最艰辛,
最富有挑战性的事情,
很多朋友
问我要外挂的原程序,其实有了外挂原程序,如果你不会调查地址,还是没用的,
原程序和地址的关系就象武学中招式与内功的关系,
没有内功的招式,
只是一个花架子。
而
内功精深以后,
任何普通的招式,
都有可能化腐朽为神奇,
外挂中的地址分为两类,
一类是
程序地址,一类是数据地址。
象石器中的双石器,真彩,不遇敌,寸步遇敌,发送接收封包
等,
都属于第一类,
而人物坐标,
状态等,
都属于第二类。
对于第一类地址,
主要依靠
softice
来调查地址,对第二类地址,可以用一些游戏工具,比如
fpe,game
expert,game
master
等来
调查,我一直用
game expert,
因为我找不到
2000
下能用的
fpe,
各位以前用
fpe
改游戏的时候,没想过他也能用来干这个吧
对于第二类数据的调查方法,
大部分人都很熟习了,
我就不多说了,
现在主要来谈谈第一类
数据的详细调查过程,
比如我们要调查发送封包的位置,
如何着手呢,
客户端往服务器要发
很多封包,
但最简单的办法莫过从说话的封包入手,
先说一句很长的话,
最好是英文,
查起
来方便,
说完以后,
用任意一种办法进入游戏程序的进程空间
(比如先用
spy
查出游戏程序
的窗口句柄,
再切换到
softice
打入
bmsg
窗口句柄
wm_lbuttondown,
这样在游戏程序中一点
鼠标就进入了他的进程空间)
然后用
s
命令查出这句话所放的内存地址,
记下这个地址,
在
softice
中打入
bpm
刚才调查到的地址,这个指令的意思是只要有访问这个内存的动作,立
刻中断,然后再切换到游戏,说一句话,你会发现
softice
自动中断到某一个位置了,从这
个位置跟踪下去,发送封包的位置也就不远了。
上面所说的都是针对一个全新的游戏程序而言,
如果是一个老的程序,
有前辈做了大量的工
作,还可以用些别的办法,如反汇编等,来调查。
以后游戏版本的更新也是如此,只要把老
版本的地址位置附近的代码记下来,去新版本的代码里面
search
一下,就
ok
了,如果不会再私信我
网络游戏的外挂基本制作步骤是什么?
前期部分工作是对外挂的主体游戏进行分析,不同类型的外挂分析主体游戏的内容也不相同。
如外挂为上述谈到的外挂类型中的第一类时,其分析过程常是针对游戏的场景中的攻击对象的位置和分布情况进行分析,以实现外挂自动进行攻击以及位置移动。
如外挂为外挂类型中的第二类时,其分析过程常是针对游戏服务器与客户端之间通讯包数据的结构、内容以及加密算法的分析。
后期部分工作主要是根据前期对游戏的分析结果,使用大量的程序开发技术编写外挂程序以实现对游戏的控制或修改。
如外挂程序为第一类外挂时,通常会使用到鼠标模拟技术来实现游戏角色的自动位置移动,使用键盘模拟技术来实现游戏角色的自动攻击。
1、动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。
(这种外挂完全是垃圾,TMD,只要会一点点API的人都知道该怎么做,不过这种外挂也是入门级的好东东,虽然不能提高你的战斗力,但是可以提高你的士气)。
2、本地修改式,这种外挂跟传统上的一些游戏修改器没有两样,做这种外挂在编程只需要对内存地址有一点认识并且掌握API就可以实现,“精灵”的外挂这是这种方式写成的,它的难点在于找到那些地址码,找地址一般地要借助于别人的工具,有的游戏还有双码校验,正正找起来会比较困难。
(这种外挂,比上一种有一点点难度,但是这种外挂做起来能够用,也是有一定难度的啦~~,这种外挂可以很快提升你对内存地址的理解及应用,是你编程技术提高的好东东)
怎样制作网络游戏的外挂请专业人士解答一下
封包式
它的原理是先截取封包,后修改,再转发。
这种外挂适用于大多数网络游戏,像WPE及一些网络游戏外挂都是用这种方式写成的,编写这种外挂需要apihook技术,winsock技术等一些技术。
一般都是需要以下这些步骤,我简单说明下:
1 模拟键盘或鼠标的响应
2.截获消息
3.拦截socket包
4.截获api