ltrace는 리눅스 프로그램 디버깅시 사용 할 수 있는 유용한 툴 중 하나 이다.
ltrace에 대하여 간략히 살펴 보자.
man 페이지를 살펴 보면 ltrace의 정의는 다음과 같이 "A library call tracer (라이브러리 호출 추적)" 로 정의 되어 있다.
쉽에 이야기 하면, ltrace를 이용하여 라이브러리 들이 어떻게 호출 되고 있는지 알 수 있는 명령어 이다.
---------------------------------------------------
# ltrace
ltrace: too few arguments
Try `ltrace --help' for more information
# ltrace --help
Usage: ltrace [option ...] [command [arg ...]]
Trace library calls of a given program.
-a, --align=COLUMN secific 열에 반환 값을 정렬
-A ARRAYLEN 배열 요소의 최대 값을 출력
-c 카운트 시간, 함수 호출에 대한 요약 보고후 종료
-C, --demangle 로우레벨 심볼을 유저-레벨 이름 으로 디코딩
-D, --debug=LEVEL 디버깅 활성화
-Dh, --debug=help 디버깅 도움말 표시
-e expr 추적중인 이벤트의 수정
-f 자식( fork() 와 clone()) 을 추적
-F, --config=FILE 대체되는 설정 파일 로드. ( 반복 처리 가능 )
-h, --help 이 도움말을 표시 후 종료.
-i 라이브러리 호출시 명령 포인터 출력.
-l, --library=FILE 설정된 라이브러리로 부터 호출된 라이브러리 호출을 출력.
-L 라이브러리 호출을 표시하지 않음.
-n, --indent=NR 출력을 호출 레벨에 따라 "NR" 크기 만큼 들여써서 출력.
-o, --output=FILE 출력된 메시지를 지정한 파일에 쓴다.
-p PID 해당 PID 로 호출 되어 있는 프로세스에 ltrace를 이용하여 추적 한다. ( strace와 유사)
-r 타임 스탬프 출력.
-s STRLEN 출력 할 최대 문자열의 크기 지정.
-S 시스템 호출을 표시.
-t, -tt, -ttt 절대시간으로 타임 스탬프 출력.
-T 각각 호출시 소비한 시간 출력.
-u USERNAME 해당 사용자의 그룹ID, 사용자ID의 명령 수행.
-V, --version 버전 정보 출력.
-x NAME 라이브러리의 서브루틴 처럼 전역적으로 설정된 이름으로 처리한다.
'잡다' 카테고리의 다른 글
ReverseEngineering For CTF (0) | 2021.01.18 |
---|---|
PenetrationTest For CTF (0) | 2021.01.18 |
Digital Forensic For CTF (0) | 2021.01.18 |
CTF 문제 (0) | 2021.01.18 |
If it's not fun, why do it? (0) | 2021.01.04 |