兄弟变速器核心代码// 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 5void 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]; //恢复旧的中断门
}

解决方案 »

  1.   

    兄弟制作组 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目前的全部成员包括:
    褚瑞(组长) ([email protected]
    乔宜臼([email protected]
    朱永春([email protected]
    叶成名([email protected]
    李玮([email protected]
    洪流(南非籍)([email protected])关于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下载最新版本或者进行咨询,您也可以和作者联系:[email protected]
      

  2.   

    在csdn上好像还有一片贴子也是分析这个的,找找看~~