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

shr eax, 16d
mov word ptr [ebx 6], ax //高16位,保存在6,7位
int ZDH //中断
mov ebx, dword ptr [IDT 2] //重新定位
add ebx, 8*ZDH
mov edx, [OG]
mov word ptr [ebx], dx
shr edx, 16d
mov word ptr [ebx 6], dx //恢复被改了的向量
pop ebx
jmp @@exitasm //到exitasm处
@@Ring0: //Ring0,这个也是最最最核心的东东
mov al,$34 //写入8253控制寄存器
out $43,al
mov ax,value //写入定时值
out $40,al //写定时值低位
mov al,ah
out $40,al //写定时值高位
iretd //返回
@@exitasm:
end;
end;
  最核心的东西已经写完了,大部份读者是知其然不知其所以然吧,呵呵,不过不知其所以然也然。下面我们就试着用一下这个过程来做一个类似于“变速齿轮”的一个东东吧!

  先加一个窗口,在窗口上放上一个trackbar控件把其Max设为20,Min设为1,把Position设为10,在这个控件的Change事件里写上:

SetRing(strtoint('$' inttostr(1742 (10-trackbar1.Position)*160)));
  因为windows默认的值为$1742,所以我们把1742做为基数,又因为值越小越快,反之越慢的原理,所以写了这样一个公式,好了,这就是“变速齿轮”的一个Delphi+ASM版了(只适用于win9X),呵呵,试一下吧,这对你帮助会很大的,呵呵。

  在win2000里,我们不可能实现在直接对端口进行操作,Ring0也失了效,有的人就会想到,我们可以写驱动程序来完成呀,但在这里我告诉你,windows2000的驱动不是一个VxD就能实现的,像我这样的低手是写不出windows所用的驱动WDM的,没办法,我只有借助外力实现了,ProtTalk就是一个很好的设备驱动,他很方便的来实现对低层端口的操作,从而实现加速外挂。

  1、我们首先要下一个PortTalk驱动,他的官方网站是http://www.beyondlogic.org

  2、我们要把里面的prottalk.sys拷贝出来。

  3、建立一个Protalk.sys的接口(我想省略了,大家可以上http://www.freewebs.com/liuyue/porttalk.pas下个pas文件自己看吧)

  4、实现加速外挂。

  下面就讲一下这程序的实现方法吧,如果说用ProtTalk来操作端口就容易多了,比win98下用ring权限操作方便。

  1、新建一个工程,把刚刚下的接口文件和Protalk.sys一起拷到工程文件保存的文件夹下。

  2、我们在我们新建的工程加入我们的接口文件

uses
windows,ProtTalk……
  3、我们建立一个过程

procedure SetRing(value:word);
begin
if not OpenPortTalk then exit;
outportb($43,$34);
outportb($40,lo(Value));
outprotb($40,hi(value));
ClosePortTalk;
end;
  4、先加一个窗口,在窗口上放上一个trackbar控件把其Max设为20,Min设为1,把Position设为10,在这个控件的Change事件里写上:

SetRing(strtoint('$' inttostr(1742 (10-trackbar1.Position)*160)));
  就这么容易。

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

相关知识

网络游戏外挂编写教程
令人“头疼”的外挂——浅谈网络游戏外挂的法律问题|游戏合规
网络游戏外挂技术.doc
论网络游戏的知识产权保护——从私服和外挂谈起
游戏外挂设计技术探讨(上)
制售网络游戏外挂程序如何认定?
网络游戏永远的痛,浅谈游戏外挂发展简史
网络游戏“外挂”涉嫌多种违法
网络游戏外挂行为定罪分析——以典型刑事类案为样本
令人“头疼”的外挂

网址: 四种网络游戏外挂的设计方法(4) http://www.hyxgl.com.xishuta.cn/newsview355482.html

推荐资讯