究竟如何改变游戏的速度???(300分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
大家看看下面的说明,究竟他是如何改变游戏的速度???

变速齿轮0.222b For Windows 9x、1.0 For Windows NT使用说明

变速齿轮是一个神奇的改变游戏速度的程序,你可以从我的主页(http://pge.yeah.net/)
上下载他的最新版本。他是免费软件,但是禁止用于商业目的。你可以免费使用或传播,但要保
持文件完整,并且不要修改他。
他是世界上第一个可以改变Windows游戏速度的程序,现在已经可以在Windows NT下运行了,
我只在Windows 2000下作了测试。他可以加快也可以减慢游戏速度。所以如果你觉得你的反应速
度够快,不需要降低速度的话,那么就在那些磨蹭的游戏中用他加快速度吧。
最近我得知有人用变速齿轮在战网上的三角洲部队(DF)中疯狂作弊。对战网及网友们造成的
不便我深表歉意。我写这个程序的本意只是为了在动作游戏中降低速度,以便自己能享受动作游
戏的乐趣,以及在磨蹭的游戏中加快速度节省时间,但是现在这把水果刀却被一些人当成了杀人
的工具。

下面是使用说明,如果你还有问题请访问我的主页,那里可能会有更多的答案。如果仍有问
题或者发现臭虫请给我伊妹儿(iampge@263.net)。请不要再用pge@telekbird.com.cn,它经常
出问题。


变速齿轮0.222b For Windows 9x使用说明

变速齿轮For Windows 9x的可执行文件名是“变速齿轮.exe”。如果你是从我的网站下载的,
那么是一个ZIP格式的压缩文件。用WinZIP等可以解压缩ZIP文件的程序把所有文件解压到任意一
个目录中。不能只是在WinZIP中双击.exe文件执行他,因为那样WinZIP只解压一个文件,所以会
提示找不到XXX.DLL的错误。启动程序后如何改变游戏的速度呢?程序刚启动时是原速,你可以用
左右键或者鼠标移动滑杆,程序会显示设定的速度,例如降低4倍或者加快8倍等等。可是好像什么
变化也没有嘛,别着急,现在你先把速度设为降低4倍,然后启动一个For Win 9X的游戏,是不是
变得很慢了?现在你有足够的时间看清飞来的子弹,然后从容地躲开。呵呵,现在我这个的游戏菜
鸟也能当世界冠军了,这可是真的哦!如果四倍还觉得不够慢,你尽可以把速度设得再慢点,最慢
可以达到256倍。如果你的反应很快,或者游戏太磨蹭了,你可以把速度加快,最快可以达到256倍。
更大的用处是在网络游戏中,练功、逃跑等都能快得出奇(但是最近又有网友告诉我有人在对战游
戏中用他加快速度杀人)。网友们告诉我石器时代、笑傲江湖、战网上的DF(三角洲部队)、UO(
创世纪?)可以改变速度。如果这个游戏的速度允许在运行中改变,那么你还可以随时改变游戏的
速度。可以切换回变速齿轮,移动滑杆改变速度,再回到游戏,也可以使用热键。总共有四个热键,
分别是两个固定速度的热键和两个加快减慢一档的热键。四个热键都可以在设定热键的对话框中任
意设定。在程序的初始设置中,加快减慢一档的热键是数字键盘区的“+”号和“-”号,固定速度1
和固定速度2的热键是数字键盘区的“*”号和“5”。为什么用“5”键,而不是“/”键呢?其实设
置为“/”键是可以的,但是不知什么原因,我的电脑热键设置为“/”键时不显示出来,不过仍然
可以使用。那么为什么不设置为另几个数字键呢?这是因为随键盘的“数字锁(Num Lock)”状态不
同,我的程序会认为按下的是不同的键,在“数字锁”灯亮的时候我的程序认为按下的是数字键盘
区上的按键,在“数字锁”灯灭的时候我的程序会认为按下的是键盘中间区域的上下左右和“Page
Up”“Page Down”等键。所以只要注意一点,你还是可以把热键设为你想要的任意键。两个固定
热键的速度也可以任意设定,这样你可以在战斗时按一个键让他慢一点,而在过场动画时按另一个
键让他快一点。

下面是一些网友或者我认为可能遇到的问题的回答

*为什么我在启动变速齿轮时提示找不到MFC42.DLL?
很多网友给我来信问到这个问题。如果你装的是Windows 97或者以下版本,请装Windows 98或者更
高的版本,如果你已经装了Windows 98,那么从我的网站上下载我的电脑上的这个文件,用他替换
你的电脑上的同名文件就可以了。

*为什么我在运行变速齿轮时只能减速不能加速?
同样请从我的网站的你问我答中下载一个MFC42.DLL,用它替换您的机器上的同名文件就可以了。

*加速器真的很好,特别是玩《石器时代》的时候,但是,突然有一天,我发现我的连接上的时间
也跟着一起加速,连接时间过的飞快,我可是一个穷玩家啊,禁受不起打击的,希望给我答案!!!
是不是加速的时候,电话费和网费也一起加速啊?
放心吧!使用变速齿轮是不会影响到电话费和网费的记费的,你看到的只是使用变速齿轮后的假象,
电信局有自己的计费时钟。

*变速齿轮真的能让我的电脑运行加快256倍吗?
当然不能,否则Intel和AMD岂不是得改行卖软件。事实上他不会改变电脑的运行速度。

*变速齿轮只能改变Windows95及以上版本游戏的速度吗?
是的,他不能改变DOS和Windows3.1游戏的速度。

*我怎么改变不了电脑移植版真侍魂的游戏速度?
由于计时方法的不同,一些游戏不能在运行中改变速度,先设定好速度再运行游戏就可以了。

*我在NeoRage模拟器中把速度降低8倍后为什么按键速度快了就做不出相应的动作,声音也完全变
成了噪音?
NeoRage并不是连续检测键盘,假设他每秒检测30次,降低8倍后每秒仅检测4次,在这4次检测之间
的键盘状态是被忽略的。所以把动作放慢一点吧。变成噪音是由于模拟器的特殊性。据我的测试,
在其他游戏中声音都是正常的。

*我把速度降低16倍后为什么看到很多游戏画面是一帧一帧变化的?
二维游戏画面每秒最多30帧,降低16倍后每秒仅有两帧,所以你能清楚地看到画面一帧一帧地变化。
三维游戏帧的速率也经常会有上限。

*我在关闭变速齿轮时死机了。
请在关闭所有程序后再关闭变速齿轮。尽量减少运行程序的数量也能减少死机的发生。



变速齿轮 1.0 For Windows NT使用说明
NT版的变速齿轮9x版的有一些不同,他只对指定的进程(也就是正在运行的程序)有效。变速
齿轮For Windows NT的可执行文件名是“齿轮NT.exe”。
有两种方法指定进程。在速度未改变的进程列表中列出了变速齿轮尚未对他改变速度的进程,
按加入键可以把他加入到速度改变的进程列表中。注意如果你加入的是记事本这样的进程而不是游
戏,可能没有任何速度改变的迹象。如果游戏不能在运行中改变速度,那么可以用浏览按钮,或者
在下拉列表框中输入文件名后按运行按钮启动他。程序中设定的速度对所有速度被改变的进程都有
效。你不能把一个已经改变速度的进程从“速度改变的进程”列表中删除,甚至在变速齿轮关闭后
也仍然有效,唯一删除他的办法是结束此进程。


版本更新
0.23b For 9x、1.1 For NT
可以更精细地调节速度,每格变化2的0.1次方倍。如果您更喜欢象以前那样每格变化2的0.5次方倍,
在变速齿轮中您可以用“Page Up”、“Page Down”键,如果用热键改变速度,您也可以选择每次
变化0.1或者0.5倍。

1.0 For NT 正式版
由于 NT 版的变速齿轮很稳定,所以我不再称他为测试版,版本号也从 0.1b 跳到了 1.0。这一版
中增加了热键支持,可以保存初始设置。

0.222b For 9X
修正了两个小臭虫。

0.221b For 9X
增加了加快减慢一档的热键。

For NT 0.1b
终于推出For NT 的变速齿轮了。

0.22b
支持热键改变速度,能保存初始设置。

0.21b
修正了部分游戏,例如MAME街机模拟器中不能改变速度的臭虫。

0.2b
重写了全部程序,最大加快、减慢可以达到256倍。改进了算法,使程序运行更快更稳定。修正了一些
臭虫。

0.1b
最初的程序。


01年1月27日
王荣
 
呵呵,你只能问他了.
他说好象找到了windows的漏洞
 
好家伙!它果然改变了GetTickCount的速度! 厉害厉害!
还好它并没有改变所有时间——GetSystemTime工作还是正常的。

procedure TForm1.Button2Click(Sender: TObject);
var
OldTime:DWord;
i:Integer;
T:SYSTEMTIME;
begin
Caption:='';
GetSystemTime(T);
Label1.Caption:=IntToStr(T.wSecond*1000+T.wMilliseconds);
OldTime:=GetTickCount;
for i:=1 to 100000000 do ;//非常耗时的循环
Caption:='共耗时:'+IntToStr(GetTickCount-OldTime)+' ms';
GetSystemTime(T);
//注意SystemTime毫秒的差值
Label1.Caption:=Label1.Caption+' '+IntToStr(T.wSecond*1000+T.wMilliseconds);
end;

大家再把
for i:=1 to 100000000 do ;//非常耗时的循环
改成:
for i:=1 to 10 do
Sleep(100);
看看它还能不能变速?哈哈哈哈哈哈哈哈!(一代超级工具,从此...)
但是,若改成:
for i:=1 to 10 do
begin
Sleep(100);
Application.ProcessMessages;
end;
运行时间没有变化,但是GetTickCount得到的数值已经被修改了。看来它的工作离不开消息。

有没有反汇编高手?反正文件不大,反汇编一下就可以了。
 
注:为节省篇幅,本文对一些计算机术语直接使用而没有作详细的解释,读者若有不熟悉之处,建议参考清华大学出版社出版,周明德编著的《微型计算机系统原理及应用》一书中关于8253/8254定时器和x86保护模式的相应章节。

“变速齿轮”研究手记

也许是我孤陋寡闻吧,说出来不怕您笑话,对于“变速齿轮”这样著名的软件,我一直到五天前,也就是2001年2月28号才第一次听说。我有几个同学很喜欢玩图形MUD,整天见了面就在一起切磋“泥”技。我对MUD本身并没有多大兴趣,但是那天早上偶尔听他们说某个MUD站点明文规定严禁使用“齿轮”,这才好奇地问他们什么是“齿轮”。别人告诉我,“齿轮”是一个软件,能对Windows下的游戏加速,他们在玩MUD时就依靠这个软件作弊。这不禁令我一头雾水,能让Windows游戏改变速度,太神奇了!
我一贯对技术很有兴趣,听说有这么一个神奇的软件,当然要想想它是怎么实现的。这个软件看起来并不复杂,我原以为一个早自习好好琢磨琢磨就行,可是我想了好几节课,始终不得其要领。说来也巧,我们这学期有一面必修课是Linux内核原理分析,这几天正好学到了进程调度,老师说,当一个时钟中断发生的时候,操作系统要做很多事情,比如必要时要重新调度进程从而实现抢先式多任务,还要更新系统时钟......慢着,我突发奇想,如果让时钟中断产生的更快,会发生什么事情呢?
我们已经学过“微机原理”这门课程,我知道让时钟中断产生的更快不是难事,以前我就用DOS下的汇编语言写过这样的程序,这是我们当时的作业。可是我以前的程序在Windows下虽然可以运行,但并不能对Windows系统加速,道理很显然:Windows9x是使用x86虚拟机的机制来兼容DOS程序的,我的程序只能改变虚拟机,就是那个黑窗口的时钟中断。
于是我试图把以前的DOS程序搬到32位环境中。用VC内嵌汇编做这件事再合适不过了,在一个VC程序框架中加上一个__asm,然后只管把以前的汇编程序往里贴就行。我满怀希望地运行这样一个拼凑出来的怪物,结果,出现了一个大家都很熟悉的“该程序执行了非法操作”,我的试验以失败告终。
后来冷静下来仔细想想,这次失败的原因是显然的。Windows作为一个复杂的32位操作系统,如果能让你随便对硬件进行操作,那也许运行不了几个程序就崩溃了。但是如何绕过操作系统去操作硬件呢?我首先想到了vxd,编写一个驱动程序肯定可以操作硬件,但是,很可惜,我不会设计驱动程序。于是我想到了以前看到的CIH的源码,CIH没有写vxd,却能操作硬件去烧毁BIOS,陈盈豪真是太伟大了,他的程序精巧之处我至今记忆犹新。于是我模仿他的技术,修改IDT表,创建一个中断门,然后发生中断,进入ring0,现在我可以做任何事情了,按照以前的DOS程序那样,往8253定时器里写一个控制字,再分两次写入新的时钟中断发生频率,一切顺利!(详细技术请您参考我的“兄弟变速器”源码)我看到VC编辑区的光标疯狂的闪烁;双击已经失效了,因为Windows认为我双击的时间间隔太长;Windows任务栏右方的时间飞快跳动,应该说,我已经成功了。
当时我想当然的以为“变速齿轮”的原理也是如此,可是当我从同学那里把“齿轮”拷来并研究时,发现Windows的时钟并不变快,而游戏速度照样可以加上去,也就是说,“齿轮”采用了与我的程序不同的技术,是什么技术呢?我决定继续研究。
我访问了“变速齿轮”的主页,这个主页上有一个“你问我答”的栏目,由“齿轮”的作者王荣先生进行技术支持。我试图在这里找到一些关于“齿轮”的技术细节,但是很可惜,没有找到,王荣先生只是告诉大家这个程序不能用VB编写等等根本连皮毛也不涉及的问题,好不容易见到一个外国人问能不能公布源代码,其实这也是我想问的,但是王荣先生明确表示不行,这不禁令我感到非常失望。
我也想过写信去索取原码,也许他不向外国人公布,中国人可不一定。但是咱们“臭老九”最爱一个面子,我实在拉不下脸去问。这时已经是晚上10点了,我决定祭出SoftIce,用一夜时间去研究他的程序。
当时使用的工具是SoftIce,WD32ASM和VC,手边两本参考书是《微型计算机系统原理及应用》和《Linux操作系统内核分析》(都是我们的课本,呵呵)。
起初,“变速齿轮”0.2版的一个叫hook.dll的文件很大程度上吸引了我的注意力,我怀疑他使用Windows消息钩子实现变速,消息钩子我很熟悉,但我把MSDN上面关于钩子的介绍看了好久,也没有想出它和变速有什么联系,这时偶然看了一下在王荣先生的主页上得到的“变速齿轮”0.1版,才发现老版本中并没有这个文件,也就是说,我只需要反汇编他的主程序就够了,于是,二话不说,用WD32ASM先把0.1版的“齿轮”给拆了,汇编代码5000多行,并不算多。
我是从这个程序的导入函数着手的,以前编程时用于定时的SetTimer,timeGetTime,timeSetEvent等等这里都导入了,看看它们被引用的地方,我发现这些函数都是集中出现的,而且大都以这样的形式出现:
* Reference To: WINMM.timeGetTime, Ord:0098h
:00401F3E 8B0D64424000 mov ecx, dword ptr [00404264]
:00401F44 8B11 mov edx, dword ptr [ecx]
也就是说,他并没有调用这些函数,只是取得了函数的入口地址,保存在ecx中,然后又根据这个入口地址得到了函数的前面几个字节,保存在edx中。
这让我想到了前些日子在CSDN上面和别人讨论的Hook API的原理,当时我还索取了一份Hook API的例程,如果我要Hook这里的函数timeGetTime,修改ecx中的地址或者修改edx处的头几条指令就行,用汇编语言写,与上面看到的这段代码类似。
为了测试“齿轮”是不是要Hook这里的timeGetTime,我自己编写了一个很简单的小程序,调用timeGetTime,每秒钟显示一个数字。用“齿轮”进行加速后,果然显示的速度快多了。再用SoftIce跟进这个timeGetTime函数,第一条指令变成一个跳转,这充分说明“齿轮”确实Hook了这几个API,不难猜测,他要改变函数的返回值,也就是说在timeGetTime结束时还要再跳入“齿轮”自身的代码,耐心跟下去,我发现回到timeGetTime时栈里多压了一个地址,这样,当timeGetTime用ret指令返回时,先返回“齿轮”的代码(这个思想确实很巧),返回值经过处理后,才跳回我的应用程序。至于怎么处理这个返回值就简单了,改到原先的2倍,应用程序速度也就提高了2倍。
回头再看WD32ASM反汇编的代码,我又发现在Hook API前面的不远处使用了一次SGDT指令和两次SLDT指令,这是x86保护方式的特有指令,用于获得全局描述符表,进一步得到局部描述符表,这段代码引起了我的兴趣,用SoftIce跟进去,往下走几步,一边跟一边猜,大致整理出了这样的思路:
1.创建一个内存映射,把自己的代码映射到0x80000000以上的地方,在Win9x下,这块虚存是所有进程共享的。
2.先得到局部描述符表的地址,然后利用这张表修改代码段的特权级。
3.用局部描述符表创建一个调用门,在x86的保护模式下要进入ring0必须通过门来进行,CIH是用中断门完成的,这里用调用门完成,异曲同工。
4.保存几个关键函数前六个字节,改为一条跳转指令,跳到自己已经映射到高端的代码。
5.发生函数调用时进入自己的代码,通过调用门进入ring0,恢复函数开头的几个字节,修改返回值。
这时已经是凌晨5点了,既然主要思想已经掌握,我也就没有细看这段代码,8点钟还要上课,睡觉去也。
回头想想,我认为王荣先生的代码还有几点值得推敲之处:
1.如果要Hook API,一定要改变函数的第一条指令吗?如果仅仅改变函数的入口地址,不是既容易编也容易调试吗?
2.即使要改变函数第一条指令,一定要进入ring0吗?
3.即使要进入ring0,使用中断门不是比用调用门更方便吗?
当然,按照王荣先生在他的主页上的说法,“变速齿轮”0.1版是他在三年前即1997年写的,那时Windows95刚刚出来两年,能有这样的技术已经难能可贵了,这里对王荣先生的钻研精神表示由衷的敬佩。
在我研究出“变速齿轮”的原理后三天,我以自己原先的研究结果为核心,编写出了“兄弟变速器”的最初版本,不用“变速齿轮”的技术是因为我认为我的技术更优越,何况也没有拾人牙慧之嫌了 ^_^
最后再次对王荣先生表示感谢,这样精彩的创意值得我们敬佩。

摘录自http://www.vrbrothers.com(感谢作者还提供源吗,我本人非常敬仰这种精神)
 
>提高速度
请注意,这个工具定位于“改变Windows游戏速度”,而不是一般的“Windows软件”。
在绝大多数游戏中,为了保持游戏速度的稳定性,都采用了延时方法——即游戏并没有
占用100%的CPU时间,而是工作-等待-工作-等待...,因此,可以通过缩短等待时间以达到
提高游戏速度的目的。在Windows中,最简单的延时方法莫过于用SetTimer或其他方式创建
一个定时器,每隔一段时间让游戏工作一次。要改变游戏的速度,只要简单的改变这个定时
器的时间间隔就可以了。因此,这一招也只能让一般的游戏加快速度而已——一般的软件可
是越快越好,不会等的。(当然,它可以改变显示出来的时间——虽然并没有真正的提速)
 
关于变速器的讨论

--------------------------------------------------------------------------------

由於有機會跟龙族的小龙喵連絡上
介绍了我们開發加速器的動機及經過..以下是部分談話內容
在这里,我们希望通过这次谈话的内容,能让大家对于网络游戏中使用变速器有个更深层次
的思考,也表明了我们工作组的立场,那就是“不支持在多人游戏中使用变速器来作弊”

很像是在採訪我們 ^^
===========================================================
(2001-04-06 21:33:40) Sophie
你們開發的變速齒輪是可以針對遊戲開發加速程式
還是都通用的呢?
(2001-04-06 21:28:30) 巴巴羅薩
這個程式(在大陸叫“程序”^_^)是通用的
(2001-04-06 21:36:24) Sophie
你們兩個人一同開發的嗎 還是有更多成員呢?
有辦法防止嗎? 台灣市面上流通的加速程序...有三種..都是大陸開發的
(2001-04-06 21:31:25) 巴巴羅薩
我單獨開發的
加速程序不太容易制止,我想過,但是沒有辦法
===========================================================
(2001-04-06 22:32:49) Sophie
我們的討論區 最近很多人在那邊抗議有玩家用變速齒輪程序的
(2001-04-06 22:35:41) Leo945
不好意思,給你們帶來麻煩了。
不過有的玩家還在不斷催我們做更新的變速器呢
(2001-04-06 22:39:47) Leo945
龍族嗎???
(2001-04-06 22:41:10) Leo945
可是我也很期待的一個大作啊!
被我很多朋友(玩圖形MUD的)都譽為最值得期待的圖形MUD
(2001-04-06 22:52:36) Leo945
龍族在台灣已經上市了嗎?
那麼大陸什麼時候開始收費?
龍族大陸玩家的數掐可以和台灣玩家的數掐進行漫游嗎?
(2001-04-06 22:53:06) Sophie
no...是分開的...所以目前對於加速程序很頭疼
(2001-04-06 23:14:21) Sophie
那如果你們想玩龍族 是否能在程式裡面加一個判斷
讓是玩龍族的不能用呢?
不然 鐵定不能好好的玩到龍族的
(2001-04-06 23:14:34) Leo945
其實,從一個玩家的角度來說,我是非常非常反對在網絡游戲中使用加速器,本
來上網玩游戲最大的吸引就是公正公平,大家在一個公平的環境中游戲、練功。
你應該知道“千年”吧,我這學期開學用我可怉的網速從網上當了一個千年,本
來准備好好玩玩圖形MUD,可是當我登上去發現上面有很多人一開始就跑得飛
快,而且網絡速度也奇慢,我上了網站一看才發現是一個叫“變速齒輪”加速的
結果。
然后我就對這個游戲失去了興趣,一個多人游戲,如果不能保証游戲的公平性,
就毫無吸引人之處(不知道你們有沒有這個感覺)。
所以,我一怒之下放棄了這個游戲。
但是當我發現網上“變速齒輪”的下載量非常驚人,我就就告訴了我們的褚瑞
(絕對的技術狂),讓他研究一下這個變速的技術。本來我們并沒有打算自己作
一個,褚瑞也只不過想了解一下這個技術,可是他到了齒輪的主頁,發現作者對
于變速的技術細節只字不提,這下褚瑞就來劲了,他對我說,一周時間,我們要
有自己的變速器。
(2001-04-06 23:19:07) Leo945
結果,當天晚上,一台電腦,一杯咖啡,一個通宵。褚瑞就把齒輪給反匯編了,
而且對于齒輪使用的技術也搞清了(在技術上我极其佩服褚瑞)
不到一周,我們的兄弟變速器就誕生了,而且用的技術和齒輪截然不同,這是因
為褚瑞不願意用別人使用過的技術。
正好我剛對工作組的主頁改版,就在宣傳主頁的同時,順便宣傳了我們的兄弟加
速器,結果出乎意料,開始反響不大,但是隨
知道的人越來越多,我們的訪問量就像滾雪球一樣越來越大,關注我們的朋友也
越來越多。
我真有種哭笑不得的感覺
………… 待續 (快完了,請耐心)呵呵
(2001-04-06 23:16:09) Sophie
那你們開發加速程序 也不過是這一學期的事嚕?
(2001-04-06 23:23:01) Leo945
你的問題剛才我發現自己已經回答了
毫不夸張的說,從知道有變速這個創意,到變速器出爐,真的只有不到一周的時
間,其實真正的開發就是那個不眠之夜

本來自己是最反對使用變速器的,可是最終我們卻自己作出了變速器。所以,我
們堅持共享了全部源代碼,目的就是讓大家知道我們的變速器是如何制作的,也
希望一些圖形MUD公司能夠利用變速的原理可以進行必要的防范措施。
不過,我還是覺得變速器是一個我們很值得驕傲的程序,而且用它來加速單機游
戲是一件很好玩的事情
(2001-04-06 23:27:47) Leo945
至于龍族(還有好多別的網絡游戲),我已經給褚瑞說了,能不能根掐具体情況
在服務器端判斷是否使用變速,但是目前來說不是很好解決。
首先,讓我們自己有種 吃了原告吃被告 的不好的感覺,^^
其次,在技術上也又很大的困難。

真的不是很好辦,就算我們可以針對自己的變速器作個判斷,但是變速齒輪我們
如何判斷?我們共享了源碼,以后出現了新的變速器我們如何判斷?所以,堵并
不是辦法
(2001-04-06 23:25:20) Sophie
我今天問過褚瑞 他說沒辦法防 ><
(2001-04-06 23:28:42) Leo945
是的 他也告訴我了
(2001-04-06 23:29:26) Sophie
那 被捉到肯定會砍帳號的
開發並且共享程式碼 是對大家都沒好處的
玩家 廠商 代理商

你們有收費的打算嗎? 你們有從中得利嗎?沒有的話
我看不出那邊有人有好處 只有投機者沒有被捉到砍帳號的有好處
好好的一個遊戲 韓國那邊沒有人用加速器 一到台灣大陸
就一堆玩家使用..蠻糟的

(2001-04-06 23:35:50) Sophie
目前的狀況是...韓國工程師有沒有去看你們的程式碼我就不知了...
在韩国工程师防止前 ...游戏本身游戏环境被破坏了而忠实玩家的心都已经碎了
(2001-04-06 23:42:00) Leo945
如果說我們從中得利的話,就是憑
這個程式我們認識了很多高手朋友,而且對于我們工作組是一個非常好的宣傳。
至于經濟方面,我們雖然很想如何利用我們的技術為我們自己和工作組帶來一定
的經濟效益,但是現在這并不是最主要的,也不是我們最關心的。
我和褚瑞的身份你也許并沒有注意
所以,目前技術﹢朋友是我們最大的也是最渴求的財富
(2001-04-06 23:43:01) Leo945
我和褚瑞在長沙一個學校,一個班的,隔壁宿舍
(2001-04-06 23:43:33) Sophie
嗯...對於懂程序的人來說是個很好的交流機會
但對那些不懂得好好玩遊戲的網友來說是個可利用的投機機會...
對他們來講 有人寫好好的程式能用就拿來用
然後一邊用還一邊罵原廠開發者無能擋不了 罵代理商無能
管不了捉不完
罵開發加速程序的人沒品無恥...被停帳號後就隨便又破口亂罵
老實玩家就只能灰心搖搖頭離開了

(2001-04-06 23:46:46) Sophie
我對程序方面都不懂..
不過龍族在大陸開放beta測試,大家如都用加速 那麼遊戲環境變糟,
就將會沒有口碑了

(2001-04-06 23:51:38) Leo945
我知道,我也在很多網站上看了這些留言,自己感覺也很沉重

你知道嗎?大陸最出名的游戲修改工具“金山游俠”最新版據說就有游戲變速的
功能。所以我只能說,我們的變速器真的是從善意的角度出發,讓單機游戲變得
更快,讓網絡游戲的商家更加重視這個問題(畢竟我們公布了源代碼,讓商家可
以根據代碼解決問題)。就算我們的變速器不出,變速齒輪也會繼續的開發下
去,到時候網絡游戲商家連破解都要自己動手了,而我可以說,褚瑞的技術是一
流的,他能很快破出來並不意味所有的商家都能很快破出變速齒輪。

(完)

http;//www.acergame.com.tw
http://www.acergame.com.cn

转贴此文请注明出处

 
上面只谈到了一类游戏:定时工作型。现在,绝大多数的3D游戏都不属于这一类,它们都属于
“满负荷”型。对这类游戏,仍然能够通过修改时间来达到变速的目的——因为这类游戏都依赖
时间间隔来计算两个画面应该有多少差别,时间间隔越长,差别越大。只要让它的时钟加快,就
可以达到加速游戏的目的。
 
我反汇编过
已经完全做出一个一模一样的
截了6个时间函数
 
可以把源代码贴出来吗???
 
可以看看第四期《程序员》里的一篇文章,作者根据变速齿轮编了个类似的程序,据说比变速齿轮
好,好象还有源代码。你可以去看看。希望对你有点帮助。
 
更好的是否就是这个啊???

兄弟变速器 1.0 中文版自 述 文 件

--------------------------------------------------------------------------------


兄弟制作组 2001.3

欢迎您访问我们的网站http://www.vrbrothers.com,获取升级信息和最新版本!

1.概述
2.软件特色
3.软件的安装和配置
4.软件功能详解
5.关于制作组
6.疑难解答


1.概述
兄弟变速器是一个可以调节Windows系统速度的神奇软件,您可以用它随意加快或放慢Windows
本身和所有应用软件的速度,同时支持热键定义,您可以随时按下热键呼出窗口,加速,减速,
或者立即调节到您设定的速度。
我们用星际争霸,红色警戒2,FIFA2001等游戏进行了测试,效果非常理想,比如,在FIFA中
您可以带球靠近球门,然后按热键减速,从容不迫地完成整个射门动作!


2.软件特色
与同类的软件(如著名的“变速齿轮”)相比,本软件具有以下优势:
1) 支持操作系统广泛,全面支持Windows95,97,98,98SE,ME,NT4,2000等多种操作系统。
2) 线性无级变速,您可以随意拖动滑块,自由调节。(“变速齿轮”最新版仅支持十几档速度)
3) 支持的软件更广泛。由于我们采用了和“变速齿轮”完全不同的技术,对整个Windows系统进
行变速,因此能够支持更多的软件。
4) 方便的界面设计,您可以设定呼出窗口,加速,减速,恢复速度,以及6个自定义热键,随时切换。
5) 软件退出后速度的改变仍然有效,直到您下一次重新启动计算机。
6) 公布了采用Visual C++编写的源代码(当然是免费的),今后还会开发出针对其他编程语言如
VB,Delphi的开发包,喜欢编程的朋友也可以定制自己的变速器。


3.软件的安装和配置
本软件是绿色软件,无需安装。对于Windows9x可以即拷即用;对于WindowsNT4和Windows2000操
作系统,只需要把文件zntport.sys拷贝到
Windows目录下的System32子目录中,即可使用。
我们提供了一个变速效果演示程序demo.exe,运行它,按照提示操作,您可以很明显的看到变速效果。
本软件公布源代码,您可以在我们的主页http://www.vrbrothers.com上找到。


4.软件功能详解
本软件的使用非常简单。在“设置速度 ”区域内,您可以拖动滑块选择速度,或者直接输入50-20000
之间的速度值,完成后,按下“确认”,速度改变生效。您也可以按“设置默认”将当前速度设为默认
值,以后按“恢复默认”即可立即调节到您设定的默认速度。
在“设置热键”区域内,您可以设置呼出窗口,加速,减速,恢复默认速度,以及六个自定义速度的热
键,对于自定义速度,还要进一步指定速度或者按“当前值”使用当前滑块值作为自定义速度。
其余主要功能包括自动校正鼠标双击速度,窗口隐藏等。对Windows加速后,双击操作将失效,因为Windows
认为您双击的时间间隔太短,如果您选择“自动校正鼠标双击速度”即可解决这一问题;按下“窗口隐藏”
后本窗口将不在任务栏出现,您可以按呼出热键或单击右下角的图标呼出窗口。
把鼠标在控件上停留数秒,会出现当前控件的简单介绍。


5.关于制作组
本软件由 Brothers 兄弟软件制作小组 创作完成。
创意:李玮 褚瑞
程序设计:褚瑞

Brothers的其他作品包括:
英语四级考试辅导1.0版(for DOS)
英语四级考试辅导2.0版(for Windows)
黑白棋1.0版
驱动器隐藏工具
Spy Brothers
程式猎人(目前最新版本1.27版)

Brothers目前的全部成员包括:
褚瑞(组长) (rchu@263.net)
乔宜臼(chinatang@yeah.net)
朱永春(zhuzhuzhu@netease.com)
叶成名(yy_cc_mm@263.net)
李玮(leo1979@sina.com)
洪流(南非籍)(hongleon@crosswinds.net)

关于Brothers制作组的详细信息,欢迎您到http://www.vrbrothers.com访问。在这里您不仅可以获得
我们的全部信息,还可以下载本软件的最新版本或我们的其他作品,也可以了解我们的一些最新动态。
Brothers随时欢迎各路高手的加盟!


6.疑难解答
1) 加速是不是“软超频”,会不会对CPU造成损害?
答:“软超频”是指用软件改变CPU的工作主频,而无论是“兄弟变速器”还是著名的“变速齿轮”都
没有改变CPU的主频,事实上您的计算机速度并没有改变,只是“欺骗”了操作系统和应用软件,让它
认为时间变化了。正如“变速齿轮”的作者说的那样,如果能改变计算机的速度,那Intel或AMD干脆
改行做软件得了。
当然,加速时您的CPU会工作在较高的负载下工作,但是对于CPU来讲,它是按照满负载运行设计的,只
要不超频,就不会造成损害。

2) 加速或减速会不会毁掉我的操作系统。
答:加速或减速并没有往您的硬盘中写任何信息,因此不论您如何加速,只要重新启动一切就会复原,不
会毁坏操作系统。

3) 为什么我变速一段后发现时间不对了?
答:这是必然的,对于现在的计算机系统,时钟由操作系统维持(这样才能避免“千年虫”问题的出现),本
软件改变了系统的速度,因此会影响到时钟。重新启动就一切正常了。我们正在考虑在后续版本中加入自动修
正时钟的功能。

4) 为什么加速后我的双击操作不灵了?
答:因为Windows认为您双击的时间间隔太短,如果您选中“自动校正鼠标双击速度”即可自动解决这一问题。

5) “兄弟变速器”退出后速度的变化仍然有效,怎么办?
答:这是本软件的特色之一,如果您希望退出后恢复默认速度,按“恢复退出”就行了。

6) 有的游戏不能改变速度,怎么办?
答:由于游戏的编写方法千变万化,难免会有个别游戏不能改变速度,试试在启动游戏前先变速。

7) 在上网时变速,连接时间也会变化,这会影响到我上网的费用吗?
答:请放心,100%的不会。否则中国电信岂不要亏本经营了?

8) 我把速度加到最快,为什么游戏速度反而变慢了?
答:加速时CPU会加大工作负载,如果负载大到一定程度而您的CPU不是很快,就反而会降低系统性能(但只
要您不超频,就不会损害CPU)。因此请您在加速时量力而行。

9) 我还有其他问题...
答:请到我们的主页www.vrbrothers.com下载最新版本或者进行咨询,您也可以和作者联系:rchu@263.net

附:兄弟变速器核心代码
附:兄弟变速器核心代码

// File name : SetClock.cpp
// Function1 : SetClock9x(int)
// Function2 : SetClockNT(int)
// Chu Rui 2001.3.1

#include "stdafx.h"
#include "ntport.h"

#define FREE_INT_NO 5

void Ring0()
{ //在Windows9x下进入ring0后进行的操作
__asm
{
cli
mov al,34h
out 43h,al //写入8253控制寄存器,设置写0号定时器
mov ax,bx
out 40h,al //写定时值低位
mov al,ah
out 40h,al //写定时值高位
sti
iretd;
}
}

void SetClockNT(int freq)
{ //NT下的操作
//这里使用了NT Port库
Outport(0x43,0x34); //写入8253控制寄存器,设置写0号定时器
Outport(0x40,freq&0xff); //写定时值低位
Outport(0x40,(freq>>8)&0xff); //写定时值高位
}

void SetClock9x(int freq)
{
union Function_Pointer
{
void (*pointer)();
char bytes[sizeof(void *)];
}OldIntAddress,NewIntAddress;

int IDTAddress; //IDT表基地址
int IDTItemAddress; //要修改的中断门所在地址
char *Pointer; //要修改的中断门所在地址,指针形式

__asm
{
push eax
sidt [esp-2]
pop eax
mov IDTAddress,eax //得到IDT表基地址
}

IDTItemAddress=FREE_INT_NO*8+IDTAddress;
Pointer=(char *)IDTItemAddress;
NewIntAddress.pointer=Ring0;

OldIntAddress.bytes[0]=Pointer[0];
OldIntAddress.bytes[1]=Pointer[1];
OldIntAddress.bytes[2]=Pointer[6];
OldIntAddress.bytes[3]=Pointer[7]; //保存旧的中断门

Pointer[0]=NewIntAddress.bytes[0];
Pointer[1]=NewIntAddress.bytes[1];
Pointer[6]=NewIntAddress.bytes[2];
Pointer[7]=NewIntAddress.bytes[3]; //设置新的中断门

__asm
{
mov ebx,freq
int FREE_INT_NO //产生中断,进入ring0
}

Pointer[0]=OldIntAddress.bytes[0];
Pointer[1]=OldIntAddress.bytes[1];
Pointer[6]=OldIntAddress.bytes[2];
Pointer[7]=OldIntAddress.bytes[3]; //恢复旧的中断门
}

 
兄弟变速器不好
截函数好点
不过是VC+ASM写的
 
热血:
  那东西不可以用Delphi+asm实现吗???
  如果要截,应该截哪些函数啊???
 
delphi 也可以做,我已经成功做了一个.
 
to 白河愁
能不能把这个东东的源代码给我一份,,,,
 
可见 创意是很重要的
 
暂时还有BUG, DLL 要不要(DELPHI 版 DLL)?
 
后退
顶部