• 大小: 89KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签:

资源简介

兄弟变速器源程序.zip

资源截图

代码片段和文件信息

// 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 al34h
out 43hal //写入8253控制寄存器,设置写0号定时器
mov axbx
out 40hal //写定时值低位
mov alah
out 40hal //写定时值高位
sti
iretd;
}
}

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

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

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

__asm
{
push eax
sidt [esp-2]
pop eax
mov IDTAddresseax //得到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 ebxfreq
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]; //恢复旧的中断门
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2005-03-26 03:39  兄弟变速器源程序\
     目录           0  2004-11-14 14:45  兄弟变速器源程序\www.cnzz.cn\
     目录           0  2003-10-27 17:58  兄弟变速器源程序\www.cnzz.cn\example\
     文件       28672  2001-03-12 14:13  兄弟变速器源程序\www.cnzz.cn\example\speedext.dll
     文件        1161  2001-03-12 14:33  兄弟变速器源程序\www.cnzz.cn\example\mainframe.frm
     文件          42  2001-03-12 14:38  兄弟变速器源程序\www.cnzz.cn\example\example.vbw
     文件        3904  1998-06-03 12:59  兄弟变速器源程序\www.cnzz.cn\example\zntport.sys
     文件         653  2001-03-12 14:38  兄弟变速器源程序\www.cnzz.cn\example\example.vbp
     文件       61440  2001-03-03 14:46  兄弟变速器源程序\www.cnzz.cn\example\ntport.dll
     文件        1727  2001-03-03 21:56  兄弟变速器源程序\www.cnzz.cn\SetClock.cpp
     文件         223  2004-10-04 20:06  兄弟变速器源程序\www.cnzz.cn\readme.htm
     文件       50118  2004-11-30 03:27  兄弟变速器源程序\使用说明.CHM

评论

共有 条评论

相关资源