来自用户空间的 int 指令

2023-11-29

我的印象是 x86 上的“int”指令没有特权。所以,我认为我们应该能够从用户空间应用程序执行这条指令。但似乎并非如此。

我正在尝试从 Windows 上的用户应用程序执行 int 。我知道这样做可能不对。但我想找点乐子。但 Windows 正在杀死我的应用程序。

我认为问题是由于条件 cpl


通常,用户模式代码转换到内核模式以调用内核服务的旧调度程序机制是通过int 2Eh(现在替换为sysenter). Also int 3直到今天仍然保留断点。

基本上,内核为某些中断设置陷阱(但不记得是否为所有中断),并且根据陷阱代码,它们将为用户模式调用程序执行某些服务,或者如果不可能,您的应用程序将被杀死,因为它尝试特权操作。

无论如何,详细信息取决于您尝试调用的确切中断。功能DbgBreakPoint (ntdll.dll) and DebugBreak (kernel32.dll)除了调用之外什么都不做int 3(或者实际上是特定的操作码int3), 例如。

Edit 1:在较新的 Windows 版本(XP SP2 及更高版本,IIRC)上sysenter取代int 2Eh正如我在回答中所写。它被终止的一个可能原因 - 尽管您应该能够通过异常处理来捕获它 - 是因为您没有传递它在堆栈上期望的参数。基本上,本机 API 的用户模式部分将您调用的系统服务的参数放入堆栈中,然后将服务编号(系统服务调度程序表的索引 - SSDT,有时是 SDT)放入特定的寄存器中,然后调用在较新的系统上sysenter在旧系统上int 2Eh.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自用户空间的 int 指令 的相关文章

随机推荐

  • 如何按升序对包含星期几名称的字符串进行排序

    我有一个包含星期几名称 开始时间和结束时间的字符串列表 List
  • 为什么 Ping 超时无法正常工作?

    我有 5 台电脑 我想 ping 这台电脑是否可用 所以我使用 C Ping 类 两台电脑可用 但当我对它们执行 ping 操作时 另外 3 台电脑已关闭 我的程序等待至少 7 秒才能响应 我只想检查 1000 毫秒并返回 OK 或 ERR
  • 如何从 Kotlin 资源中读取文本文件?

    我想用 Kotlin 编写 Spek 测试 如何从 HTML 文件中读取src test resources folder class MySpec Spek describe blah blah given blah blah var f
  • 如何确定 swf 是独立播放还是在其他 swf 中加载?

    我有两个 swf 一种某种 节目 以及一个充当 节目 加载程序的 菜单 show swf 可以以其自身的方式运行 或者通过 菜单 加载 有没有办法确定 显示 是独立运行还是加载到 菜单 中 一种解决方案是提供 菜单 Loader对象在加载的
  • 在 Dart 中将子类分配给工厂构造函数

    The KeyFlutter 中的类有一个factory构造函数更像是一个变量 abstract class Key const factory Key String value ValueKey
  • 有没有办法在 SQL Server 中获取自定义格式的日期?

    在 Oracle 中 您可以使用 SELECT to char sysdate yyyy mm FROM dual 仅显示日期的年份和月份部分 此外 您还可以设置NLS DATE FORMAT更改默认返回日期的方式 我知道在 SQL Ser
  • 打开图元标签

    我使用 Facebook 应用程序 shortstack 来制作我的页面 当我使用短 URL 共享出版物时 我想对其进行个性化 我已经测试创建开放图元标记 但它不起作用 您需要在页面中添加 opengraph 元标记 例如
  • android 支持 v14 PreferenceFragment 崩溃

    我正在尝试使用 PreferenceFragment 在 Android 应用程序中显示设置android support v14 preference图书馆 但是 当我尝试打开首选项时 应用程序崩溃并出现奇怪的 NullPointerEx
  • 扩展 UserCreationForm 以包含电子邮件、名字和姓氏

    我已经被困在这个问题上有一段时间了 似乎无法弄清楚发生了什么 我刚刚开始学习 Django 我设置了登录 现在想要实现一个注册页面 我首先使用 UserCreationForm 表单 效果很好 但我想添加电子邮件 名字和姓氏字段 我想我可以
  • 为什么在 C++/Java 和类似语言中以美元符号开头的变量名不好?

    为什么在 C Java 和 PHP 中的类似变量名中以美元符号开头是不好的 编辑 有什么风险吗 在Java中 使用 in 变量是合法的 但绝对是一个坏主意 如果这样做 则存在意外使用与编译器本身或某些代码生成器使用的名称冲突的名称的风险 结
  • Firebase 在大数据集上的性能

    我正在为一个项目测试 firebase 该项目可能有相当多的密钥 可能有数百万个 我已经测试过使用节点加载几万条记录 加载性能看起来不错 然而 如果我展开根节点 FORGE Web UI 会变得极其缓慢 并且会渲染每条记录 Firebase
  • 将属性注册为 DependencyProperty

    我有一个名为 ChartView 的用户控件 我有一个 ObservableCollection 类型的属性 我已经在 ChartView 中实现了 INotifyPropertyChanged ChartEntry 的代码是 public
  • 获取 popover 的 data-content 内 HTML 标签的元素

    我正在 Bootstrap3 的 popover 中工作 我在这里放置了如下 HTML 内容 a href class btn title Test Click Here a 我无法引用 data content 属性中存在的 html 元
  • boost binary_oarchive 对于不同的编译器的工作方式不同

    我需要在客户端和服务器之间传输数据 当我将服务器从 Windows msvc140 移动到 Debian gcc 64 位 时 我的字节流类出现了问题boost 他们的档案是不同的 include
  • 如何使用 iText 将图形绘制为 PDF?

    我正在尝试完成一个绘制图形并将其写入 PDF 的示例 但我不断收到 PDF 没有页面的错误 如果我在打开后使用 document add 添加一些简单的东西 它工作正常 我只是永远看不到图形 这是我的代码 Document document
  • 用contentResolver删除短信太慢

    我想删除手机上的所有短信 除了每次对话的最后 500 条短信 这是我的代码 但速度非常慢 删除一条短信大约需要 10 秒 我如何加速这段代码 ContentResolver cr getContentResolver Uri uriConv
  • 简单的 ImageView 颜色动画

    您好 我对 Android 比较陌生 如果可能的话 我希望获得一些关于在哪里搜索以解决我的问题的指南或建议 显然 我不具备发布图像的声誉 因此我会尽力解释它 假设我有一个空瓶子 一旦调用这个片段 活动 我想引入一个动画 它将逐渐垂直地 从下
  • 从列表中获取 min() 和 max() 的有效方法? [复制]

    这个问题在这里已经有答案了 我的问题来自发布到的答案如何在python 3中找到任意列表中缺失的数字 大多数解决方案建议使用类似的东西 a 10 12 13 8 get set of full numbers allNums set x f
  • HTML5 中样式元素的“scoped”属性当前状态如何?

    这里说明了http www w3 org TR html markup style html style 允许的父元素 任何可以包含元数据元素 div noscript 的元素 节 文章 旁白 that
  • 来自用户空间的 int 指令

    我的印象是 x86 上的 int 指令没有特权 所以 我认为我们应该能够从用户空间应用程序执行这条指令 但似乎并非如此 我正在尝试从 Windows 上的用户应用程序执行 int 我知道这样做可能不对 但我想找点乐子 但 Windows 正