RealtimeMemTracker - 3, 시스템콜 번호 확인하기

2025. 3. 23. 22:55·C프로그래밍/MemoryTracker

시스템콜 번호 확인하기

나는 ptrace로 프로세스가 호출하는 System Call을 관찰하고 싶다.

만약 프로세스A가 내부적으로 시스템콜을 호출한다면,

system call 과정

  1. User mode에서 Kernel mode로 진입.
  2. 커널상에 있는 시스템 호출 핸들러가, 시스템 호출 테이블 참조해서 어떤 시스템 콜인지 알아냄.
  3. 해당 시스템콜에 대한 커널 함수 실행.
  4. 유저 모드로 복귀

이런 과정으로 시스템 콜이 일어난다.

나는 메모리 할당, 해제에 관한 시스템콜인 brk(), mmap(), munmap()같은 시스템콜을 추적하면 된다.

현재 사용하고 있는 리눅스 버전은 6.8버전이고 시스템콜 테이블은 리눅스 깃헙에서 확인할 수 있다.

리눅스 x86버전

커널코드의 arch/x86/entry/syscalls/syscall_64.tlb파일에 있음

https://github.com/torvalds/linux/blob/v6.8/arch/x86/entry/syscalls/syscall_64.tbl

brk(): 12번

mmap(): 9번

munmap(): 11번

리눅스 arm64버전

https://github.com/torvalds/linux/blob/v6.8/include/uapi/asm-generic/unistd.h

brk(): 214

mmap(): 222

munmap(): 215

 

귀찮게도, arm64 리눅스와 x86리눅스의 시스템콜 테이블의 구성와 위치는 서로 다르다..

일단 나는 arm64 리눅스에서 구동하므로 arm64리눅스 버전으로만 작성하겠다.

 

그러면 이제 시스템 콜 넘버를 알았으니 외부 프로세스에서 생긴 시스템콜을 모두 추적하면서

214번, 222번, 215번의 시스템콜을 필터링해주면 된다.

'C프로그래밍 > MemoryTracker' 카테고리의 다른 글

RealtimeMemTracker - 개발 재개..  (0) 2025.06.24
RealtimeMemTracker - 4, ARM64 Linux에서 PTRACE_SYSCALL을 사용한 시스템 콜 트레이싱  (5) 2025.03.25
RealtimeMemTracker - 2, 현재 실행중인 프로세스 확인  (0) 2025.03.23
RealtimeMemTracker - 1, 다른 프로세스의 SystemCall 추적하기  (0) 2025.03.20
'C프로그래밍/MemoryTracker' 카테고리의 다른 글
  • RealtimeMemTracker - 개발 재개..
  • RealtimeMemTracker - 4, ARM64 Linux에서 PTRACE_SYSCALL을 사용한 시스템 콜 트레이싱
  • RealtimeMemTracker - 2, 현재 실행중인 프로세스 확인
  • RealtimeMemTracker - 1, 다른 프로세스의 SystemCall 추적하기
Minu Jin
Minu Jin
정보의 바다
  • Minu Jin
    뇌 구조가 바이너리
    Minu Jin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • C프로그래밍
        • 오류해결
        • 개인 공부
        • Programming Lab(학교수업)
        • MemoryTracker
      • C++
        • 개인 공부
      • 자료구조(Data Structure)
      • ARM arch
        • Cortex-M
        • FreeRTOS
      • 컴퓨터 공학(Computer Science)
        • OS
        • 컴퓨터 구조
      • Qualcomm 기업과제
      • Linux
        • start_contribute()
        • start_analyse()
      • Web
      • 똥글
      • 백준
      • Git 학습
        • 오류해결
        • 학습중
      • Python
        • 오류해결
        • 개인 공부
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    버퍼
    arm
    자료구조
    순환
    토발즈
    Branch
    동적메모리
    시스템콜
    yolo
    포인터
    드라이버 분석
    소수
    commit
    커널 기여
    피보나치
    rubikpi3
    리눅스
    스택
    C++
    앤드류모튼
    백준
    Git
    c언어
    커널
    파일 입출력
    rubik pi
    이진 트리
    Qualcomm
    INIT
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minu Jin
RealtimeMemTracker - 3, 시스템콜 번호 확인하기
상단으로

티스토리툴바