反汇编,游戏外挂

反汇编,游戏外挂
2011年01月19日
  反汇编
    
  反汇编:把目标代码转为汇编代码的过程。
    通常,编写程序是利用高级语言如C,Pascal等高级语言进行编程的,然后再经过编译程序生成可以被计算机系统直接执行的文件。反汇编即是指将这些执行文件反编译还原成汇编语言或其他高级语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码 会发生很大的变化,非编程高手很难读懂。
    另外,有许多程序也可以 进行逆向操作即反编译以求修改,例如Flash的文件生成的SWF文件,也可以被反汇编成Flash原码,但会发现与原程序有很大变化。反汇编可以通过反汇编的一些软件实现DEBUG也能反汇编的,DEBUG文件位置-u,这样就能实现了。
    静态反汇编是从反汇编出来的程序清单上分析,从提示信息入手进行分析。目前,大多数软件在设计时,都采用了人机对话方式。所谓人机对话,即在软件运行过程中,需要由用户选择的地方,软件即显示相应的提示信息,并等待用户按键选择。而在执行完某一段程序之后,便显示一串提示信息,以反映该段程序运行后的状态,是正常运行,还是出现错误,或者提示用户进行下一步工作的帮助信息。为此,如果我们对静态反汇编出来的程序清单进行阅读,可了解软件的编程思路,以便顺利破解。 常用的静态分析工具是W32DASM、OllyDbg IDA和HIEW等。简单地讲,反汇编可以看到软件作者的编程思路,可以破解部分资源,可以将软件汉化等,例如找到它是如何注册的,从而解出它的注册码。
  外挂
  简介  所谓的外挂就是指第三方软件,现在的网络游戏多是基于Internet上客户/服务器模式,[b]服务端[/b]程序运行在游戏服务器上,游戏的设计者在其中创造一个庞大的游戏空间,各地的玩家可以通过运行[b]客户端[/b]程序同时登录到游戏中。简单地说,网络游戏实际上就是由游戏开发商提供一个游戏环境,而玩家们就是在这个环境中相对自由和开放地进行游戏操作。那么既然在网络游戏中有了服务器这个概念,我们以前传统的修改游戏方法就显得无能为力了。记得我们在单机版的游戏中,随心所欲地通过内存搜索来修改角色的各种属性,这在网络游戏中就没有任何用处了。因为我们在网络游戏中所扮演角色的各种属性及各种重要资料都存放在服务器上,在我们自己机器上(客户端)只是显示角色的状态,所以通过修改客户端内存里有关角色的各种属性是不切实际的。那么是否我们就没有办法在网络游戏中达到我们修改的目的?回答是"否"。
    目前除了修改游戏封包来实现修改游戏的目的,我们也可以修改客户端的有关程序来达到我们的要求。我们知道目前各个服务器的运算能力是有限的,特别在游戏中,游戏服务器要计算游戏中所有玩家的状况几乎是不可能的,所以有一些运算还是要依靠我们客户端来完成,这样又给了我们修改游戏提供了一些便利。比如我们可以通过将客户端程序脱壳来发现一些程序的判断分支,通过跟踪调试我们可以把一些对我们不利的判断去掉,以此来满足我们修改游戏的需求。
    另外,现在也有人主张将干扰网络程序(包括但不仅限于游戏程序)运行的第三方软件也归入外挂范畴。
  运行原理  外挂一般是指在电脑运行中,一个程序通过某种事件触发而得以挂接到另外一个程序的空间里(常用的触 发事件有键盘触发,鼠标触发,消息触发等),挂接的目的通常是想改变被挂接程序的运行方式。现在的 游戏外挂就是将外挂程序嫁接到游戏程序当中,通过截取并修改游戏发送到游戏服务器的数据而实现各种 功能的增强。Internet客户/服务器模式的通讯一般采用[b]TCP/IP通信协议[/b],数据交换是通过IP数据包的传输来实现的,一般来说我们客户端向服务器发出某些请求,比如移动、战斗等指令都是通过封包的形式和服务器交换数据。那么我们把本地发出消息称为SEND,意思就是发送数据,服务器收到我们SEND的消息后,会按照既定的程序把有关的信息反馈给客户端,比如,移动的坐标,战斗的类型。那么我们把客户端收到服务器发来的有关消息称为RECV。知道了这个道理,接下来我们要做的工作就是分析客户端和服务器之间往来的数据(也就是封包),这样我们就可以提取到对我们有用的数据进行修改,然后模拟服务器发给客户端,或者模拟客户端发送给服务器,这样就可以实现我们修改游戏的目的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值