본문 바로가기

Information Security/Hacking

Strace - System call Tracking tool

반응형

Strace 대표이미지... (타조인가?... 왜 이건지 모름)

* Strace : 진단, 디버그 등의 목적으로 시스템 호출, 신호 전달자, 프로세스 상태의 변화를 포함하는 프로세스와 리눅스 커널 간 상호 작용을 감시하는데 사용된다. strace는 ptrace라는 커널 기능을 통해 사용될 수 있다.
(다 필요 없고 그냥 디버깅 목적으로 System call 추적에 아주 용이한 툴)

 

 

 

* Strace 사용법 및 옵션 예시
(디버깅 목적이라 시간 정보를 조회 할 필요가 있으니 각자 Linux 시스템의 시간 정보 동기화를 선행하기를 추천하며, 필자는 Remnux에 이미 설치가 되어 있어 편하게 사용함 - Strace apt 설치 페이지 404 Not found 등의 문제로 그냥 귀찮아서 설치 되어 있는걸 씀...)

1. Binary 추적 : 실행 가능한 Binary 추적을 할 수 있음
- 명령어 형식 : strace [명령어 or 실행 가능한 파일]

단순 strace 명령어 (굉장히 복잡하게 출력되어 가독성 떨어짐)


2. strace -e : 조회 대상의 System call을 한정하여 출력
- 명령어 형식 : strace -e [조회를 원하는 System call] [명령어 or 실행 가능한 파일]

ls 명령어의 mmap 시스템 콜만 한정한 strace -e 옵션


3. strace -e trace= : 여러 System call을 한정하여 출력
- 명령어 형식 : strace -e trace=[조회를 원하는 System call1,call2,call3 ...] [명령어 or 실행 가능한 파일]

-e trace= 옵션을 통한 다수 system call 조회 (가독성은 좋지 못함...)


4. strace -o결과를 파일에 저장
- 명령어 형식 : strace -o [저장할 파일명] [명령어 or 실행 가능한 파일]

strace -o 옵션을 통한 결과를 파일로 저장
저장된 파일 확인 (test.txt)


5. strace -p : PID를 한정하여 해당 프로세스의 System call 추적
- 명령어 형식 : strace -p [PID]

strace -p [PID] 옵션을 통해 특정 프로세스에 대한 System call 추적(귀찮아서 그냥 su 잡음...)


6. strace -t : strace의 라인 별 시간 정보를 함께 출력함
- 명령어 형식 : strace -t [나머지 동일 명령]

strace -t 옵션을 통해 라인별 시간 정보 출력
해당 명령어 조회 시 시간 정보와 함께 정렬


7. strace -c : 조회하는 대상의 System call 통계 정보를 출력
- 명령어 형식 : strace -c [나머지 동일 명령]

strace -c 옵션을 통해 사용하는 system call의 통계 정보를 깔끔하게 출력


* 이후 추가적으로 분석에 도움이 되는 옵션이 있을 시 해당 게시글은 지속 업데이트 예정

 

반응형

'Information Security > Hacking' 카테고리의 다른 글

Windows Registry  (0) 2021.09.23
Windows PE file  (0) 2021.09.14
악성코드(Malware)유형 및 분석 유형  (0) 2021.09.14
Analysis Tool - Process Explorer  (0) 2021.07.07
Analysis Tool - Process Monitor  (0) 2021.07.07