Baru-baru ini saya telah menggunakan banyak bahasa Majelis di sistem operasi *NIX. Saya bertanya-tanya tentang domain windows.
Konvensi pemanggilan di linux:
mov $SYS_Call_NUM, %eax
mov $param1 , %ebx
mov $param2 , %ecx
int $0x80
Itu dia. Begitulah cara kita melakukan panggilan sistem di linux.
Referensi semua panggilan sistem di linux:
Mengenai $SYS_Call_NUM & parameter mana yang dapat kita gunakan referensi ini : http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html
Referensi RESMI: http://kernel.org/doc/man-pages/online/dir_section_2.html
Konvensi pemanggilan di Windows:
???
Referensi semua panggilan sistem di Windows:
???
Tidak resmi : http://www.metasploit.com/users/opcode/syscalls.html , tetapi bagaimana cara menggunakannya di Majelis kecuali saya mengetahui konvensi pemanggilannya.
RESMI : ???
- Jika Anda mengatakannya, mereka tidak mendokumentasikannya. Lalu bagaimana cara menulis libc untuk windows tanpa mengetahui panggilan sistem? Bagaimana cara melakukan pemrograman Majelis Windows? Setidaknya dalam pemrograman driver kita perlu mengetahui hal ini. Kanan?
Sekarang, ada apa dengan apa yang disebut Native API? Apakah Native API
& System calls for windows
keduanya merupakan istilah berbeda yang mengacu pada hal yang sama? Untuk mengonfirmasi, saya membandingkannya dari dua Sumber TIDAK RESMI
Panggilan Sistem: http://www.metasploit.com/users/opcode/syscalls.html
API asli: http://undocumented.ntinternals.net/aindex.html
Pengamatan saya:
- Semua panggilan sistem diawali dengan huruf
Nt
sedangkan Native API terdiri dari banyak fungsi yang tidak diawali dengan hurufNt
. System Call of windows
adalah bagian dariNative API
. Panggilan sistem hanyalah bagian dari Native API.
Adakah yang bisa mengkonfirmasi hal ini dan menjelaskannya.
EDIT:
Ada jawaban lain. Itu adalah jawaban ke-2. Saya sangat menyukainya tetapi saya tidak tahu mengapa penjawab menghapusnya. Saya memintanya untuk memposting ulang jawabannya.