—使用int 0x80
- 概念
系統調用是計算機程序請求操作系統內核服務的方式。
爲進程和操作系統提供必要的接口。
-
分類
- 進程控制
- 文件管理
- 設備管理
- 信息維護
- 通信
-
過程
-系統調用個數:200多個
-區分入口函數(可以理解成處理不同調用的函數):用系統調用號
-
步驟
- 準備參數,發出請求
- 導入參數所對應的C語言庫
- 執行系統調用
- 完成相應功能,返回值存到eax,返回中斷函數
- 系統調用返回,還原環境。
-
從彙編代碼上看系統調用
- 開始:把系統調用號存入eax
- 把函數參數存入其他寄存器(順序ebx,ecx,edx,esi,edi)其他的可以放到棧中。
- 觸發0x80(int 0x80)
demo: read()------> read(int fd,void * buffer,size_t nbytes)
mov eax,3 ;read的系統調用號爲3,自己去查詢
mov ebx,fd
mov ecx,buffer
mov edx,nbytes
int 0x80
參考鏈接:linux系統調用