【问题标题】:The value is sent to system call function, don't match with the valid system call code该值被发送到系统调用函数,与有效的系统调用代码不匹配
【发布时间】:2019-03-27 08:27:46
【问题描述】:

当我研究一个可执行文件时,我找到了下面的代码:

MOV EAX,11B9  
MOV EDX,7FFE0300  
CALL DWORD PTR DS:[EDX]  
RETN 10

这用于要求系统调用。到这里为止,没有问题。

我在Windows OS的整个系统调用代码中搜索,但在第一行“MOV EAX,11B9”的指令中没有一个等于11B9。

大家可以指导一下,这里到底是什么意思?

【问题讨论】:

  • ret 10 真的很奇怪;这不是 4 的倍数。这个函数是用一些 16 位推送指令调用的吗?哦,我猜你所有的数字都是十六进制的,但你漏掉了 0x 前缀或 h 后缀。
  • 我从 Olly 调试器复制了整个代码。是的,数字是十六进制的,但我关心的不是指令 ret 10!我对 11B9 系统调用值感到困惑。

标签: windows assembly x86 system-calls


【解决方案1】:

编号为 0x1XXX 的系统调用是对 win32k.sys 的调用。

Here 是由 j00ru 创建和更新的一个很棒的表,显示了不同版本 Windows 的 win32k 系统调用 ID:

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 2016-02-09
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多