进入windows核心态的通用方法

来源:互联网 发布:天使 vc pe 区别知乎 编辑:程序博客网 时间:2024/05/08 21:46

ring0一直是程序员大家的一个目标,由于其相当的复杂

性,对大部分人来说,这不是一件很容易的事。使用vxd

和vmd更加不容易。这里给出了一些东东,希望有所裨益。

     这里引用了一个WinIo Libraray,它主要由8个函数构成

1、bool _stdcall InitializeWinIo()

2、void _stdcall ShutdownWinIo()

3、bool _stdcall GetPortVal(WORD wPortAddr, PDWORD pdwPortVal, BYTE bSize);

4、bool _stdcall SetPortVal(WORD wPortAddr, DWORD dwPortVal, BYTE bSize);

5、PBYTE _stdcall MapPhysToLin(PBYTE pbPhysAddr, DWORD dwPhysSize, HANDLE *pPhysicalMemoryHandle)

6、bool _stdcall UnmapPhysicalMemory(HANDLE PhysicalMemoryHandle, PBYTE pbLinAddr)

7、bool _stdcall GetPhysLong(PBYTE pbPhysAddr, PDWORD pdwPhysVal);

8、bool _stdcall SetPhysLong(PBYTE pbPhysAddr, DWORD dwPhysVal);

    一看就知道意思,我就不哆嗦了,

而对GDT,LDT或IDT的操作,随便一本WIN32的书

都有介绍,相信对大家不是难事。

给出WinIO libraray的连接:WIN LIB