【发布时间】:2018-04-20 20:32:56
【问题描述】:
8 位和 16 位程序集是否独立于操作系统,如何编写独立于操作系统的 x64 位程序集?
具体来说,我想跳过基于操作系统的系统调用并使用 int21h 之类的中断(或在 x64 程序集上使用中断的任何特殊特技)等 x64。在这个例子中是关于如何编写手动系统调用,但我不明白。是39h中断吗?
代码:
Manual_WPM proc
mov r10, rcx
mov eax, 39h ; Syscall Index for WPM (This one is for Win8.1)
syscall
ret
Manual_WPM endp
end
【问题讨论】:
-
欢迎来到 SO。请查看此处了解如何改进您的问题(格式化、校对、提供代码等):stackoverflow.com/help/how-to-ask
-
TL:DR:没有跨操作系统的可移植 ABI 用于进行系统调用之类的操作,而且绝对没有任何绕过操作系统的东西。进程隔离的全部意义在于保护进程彼此之间,因此操作系统当然必须阻止它们做任何事情,而不是直接操作寄存器+内存,而不通过操作系统。
标签: assembly