部分未公开的Windows 2000核心功能调用

这些未公开的Windows 2000核心功能调用(Windows NT 4.0一般也可以调用)是针对
Intel 80386(I386)以上CPU的,没有移植性,可能是微软公司不公开这些调用的原因 。
这些调用一般以Ke386 或者KeI386开头,部分调用相当有用,笔者只分析了一部分调用的
函数原型,以后再分析余下的调用 。

1、Ke386SetIoAccessMap

函数原型:void Ke386SetIoAccessMap(int, IOPM *);
引出符号:_Ke386SetIoAccessMap@8

2、Ke386QueryIoAccessMap

函数原型:void Ke386QueryIoAccessMap(int, IOPM *);
引出符号:_Ke386QueryIoAccessMap@8

3、Ke386IoSetAccessProcess

函数原型:void Ke386IoSetAccessProcess(PEPROCESS, int);
引出符号:_Ke386IoSetAccessProcess@8

以上3个调用可以让NT/2000像Windows 95/98一样在Ring 3随意通过in/out指令实现
硬件I/O,具体使用方法笔者将在后续文章中说明 。

4、Ke386CallBios

函数原型:不详
引出符号:_Ke386CallBios@8
调用功能:可能是BIOS功能调用

5、KeI386SetGdtSelector

函数原型:NTSTATUS KeI386SetGdtSelector(IN ULONG sels, IN PVOID desc);
引出符号:_KeI386SetGdtSelector@8
调用功能:设置一个全局描述符

6、KeI386ReleaseLid

函数原型:不详
引出符号:_KeI386ReleaseLid@8
调用功能:不详

7、KeI386ReleaseGdtSelectors

函数原型:NTSTATUS KeI386ReleaseGdtSelectors(OUT PUSHORT SelArray,
IN int NumOfSelectors);
引出符号:_KeI386ReleaseGdtSelectors@8
调用功能:释放一个全局描述符

8、KeI386MachineType

函数原型:不详
引出符号:_KeI386MachineType
调用功能:可能是取得计算机(CPU)的类型

9、KeI386GetLid

函数原型:不详
引出符号:_KeI386GetLid@20
调用功能:不详

10、KeI386FlatToGdtSelector

函数原型:不详
引出符号:_KeI386FlatToGdtSelector@12
调用功能:可能与内存地址变换有关

11、KeI386Call16BitFunction

函数原型:不详
引出符号:_KeI386Call16BitFunction@4
调用功能:可能与调用16位代码有关

12、KeI386Call16BitCStyleFunction

函数原型:不详
引出符号:_KeI386Call16BitCStyleFunction@16
调用功能:可能与调用16位代码有关

13、KeI386AllocateGdtSelectors

函数原型:NTSTATUS KeI386AllocateGdtSelectors(OUT PUSHORT SelArray,
IN int NumOfSelectors);
引出符号:_KeI386AllocateGdtSelectors@8
调用功能:分配一个全局描述符

该功能与KeI386SetGdtSelector功能、KeI386ReleaseGdtSelectors功能配合使用,可以
修改GDT,从而可以定义自己的调用门,进入真正的NT Ring 0层,从而可以直接修改GDT、
IDT、LDT,直接访问全部内存和全部硬件,功能极其强大 。

14、KeI386AbiosCall

函数原型:不详
引出符号:_KeI386AbiosCall@16
调用功能:可能与BIOS功能调用有关

15、Kii386SpinOnSpinLock

函数原型:不详
引出符号:Kii386SpinOnSpinLock@8
调用功能:不详

16、Kei386EoiHelper

函数原型:不详
引出符号:Kei386EoiHelper@0
调用功能:可能与中断处理有关

--
我们万众一心,冒着微软的炮火,前进!

Homepage:http://210.42.24.20/tbsoft

    推荐阅读