在xp和vista中应用程序能直接访问pci设备的寄存器吗?
Windows内核调试
在xp和vista中应用程序能直接访问pci设备的寄存器吗?
ggggchen
2008-09-14, 20:32 下午
问一下,系统有提供接口吗?
比方说没有这些pci设备的驱动的源程序。但是想修改pci里面寄存器的值,或者读取这些值。
谢谢
Re: 在xp和vista中应用程序能直接访问pci设备的寄存器吗?
格蠹老雷
2008-09-14, 23:04 下午
没有正式的方法。通过未公开的NtSystemDebugControl系统服务(也就是本地内核调试接口)可以访问。但是这种方法有局限,需要管理员权限,而且基本上是只能在XP上工作。在Vista上,需要先启用系统的本地内核调试才行。
Re: 在xp和vista中应用程序能直接访问pci设备的寄存器吗?
王宇
2008-09-15, 09:12 上午
http://seclists.org/vulnwatch/2004/q1/att-0041/xploit_dbg_cpp
Re: 在xp和vista中应用程序能直接访问pci设备的寄存器吗?
MJ0011
2008-09-25, 19:14 下午
WindowsNT中可以使用如下方法直接访问硬件寄存器(包括PCI设备的寄存器)
1.提升自身进程权限,获得SeTcbPrivilege(admin必须)
2.使用ZwSetProcessInformation -> ProcessUserModeIOPL来修改进程的IOPL,使进程获得访问IO权限的
3.接下来进程就可以使用in , out 指令直接访问硬件寄存器了
当然你可以直接使用WinIo.sys来通过驱动调用Ke386SetIOPL等函数给指定进程开启访问IO权限
Re: 在xp和vista中应用程序能直接访问pci设备的寄存器吗?
王宇
2008-09-25, 19:23 下午
天呐 MJ真的来了... -___-
热烈欢迎!!! ^_^