linux系統調用

—使用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系統調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章