在linux中调用约定:
mov $SYS_Call_NUM,%eax mov $param1,%ebx mov $param2,%ecx int $0x80
而已。这就是我们应该如何在linux中进行系统调用。
在linux中引用所有系统调用:
关于哪个$ SYS_Call_NUM&哪些参数我们可以使用这个参考:http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html
官方参考:http://kernel.org/doc/man-pages/online/dir_section_2.html
在Windows中调用约定:
???
在Windows中引用所有系统调用:
???
非官方的:http://www.metasploit.com/users/opcode/syscalls.html,但是如何在汇编中使用这些,除非我知道调用约定。
官方:???
>如果你说,他们没有记录。那么如何在不知道系统调用的情况下为Windows编写libc?如何做一个Windows Assembly程序设计?至少在驱动程序编程中需要知道这些。对?
现在,所谓的Native API呢? Native API&系统调用Windows都是不同的术语指的是同一件事情?为了确认我从两个UNOFFICIAL来源进行了比较
系统呼叫:http://www.metasploit.com/users/opcode/syscalls.html
Native API:@L_403_4@
我的观察:
>所有系统调用以字母Nt开头,其中Native API由许多不以字母Nt开头的函数组成。
> Windows系统调用是Native API的子集。系统调用只是Native API的一部分。
任何人都可以确认并解释。
编辑:
还有另一个答案。这是第二个答案。我真的很喜欢它,但我不知道为什么回答者删除它。我请他转发他的答复。