当前位置:  开发笔记 > 开发工具 > 正文

什么是特权教育?

如何解决《什么是特权教育?》经验,为你挑选了3个好方法。

我添加了一些编译干净,刚刚收到此Windows错误的代码:

---------------------------
(MonTel Administrator) 2.12.7: MtAdmin.exe - Application Error
---------------------------
The exception Privileged instruction.

 (0xc0000096) occurred in the application at location 0x00486752.

我即将继续寻找一个bug,我期待它是我所做的愚蠢的事情,这恰好产生了这个消息.代码编译干净,没有错误或警告.EXE文件的大小已经增长到1,454,132字节并且包含指向的链接ODCS.lib,但它是纯粹的C到Win32 API,DEBUG打开(在Windows 2000上的P4上运行).



1> Benoit..:

为了回答这个问题,特权指令是处理器操作码(汇编指令),它只能在"管理员"(或Ring-0)模式下执行.这些类型的指令往往用于从Windows内核访问I/O设备和受保护的数据结构.

常规程序以"用户模式"(Ring-3)执行,不允许直接访问I/O设备等...

正如其他人提到的,原因可能是损坏的堆栈或混乱的函数指针调用.



2> Daniel..:

当使用指向无效数据的函数指针时,通常会发生这种情况.如果你有代码来破坏你的返回堆栈,也会发生这种情况.跟踪这类错误有时候很难处理,因为它们通常难以重现.



3> Ana Betts..:

特权指令是IA-32指令,只允许在Ring-0(即内核模式)中执行.如果你在用户空间中遇到这种情况,你要么得到一个非常旧的EXE,要么是一个损坏的二进制文件.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有