본문 바로가기

[2022년 파트 - 김홍규 개발자] uftrace

honggyu 게시글 작성 시각 2022-04-02 11:37:00 게시글 조회수 2427

- 개발자 주요경력
2020년 3월 ~ (현) Arm
2013년 5월 ~ (전) LG전자

 

- 개발자 전문분야

system tracing/profiling/debugging
 

- 활동 커뮤니티

github, C++ Korea

 

- 활동 프로젝트 분야

tracing, profiling, debugging, binary analysis

 

- 프로젝트 개요

uftrace는 C/C++/Rust로 작성된 프로그램을 코드 수정 없이 함수 단위로 성능을 측정하고 실행흐름을 추적(trace)할 수 있는 분석 도구이다. 이러한 분석을 위해 어떠한 코드 수정도 필요 없이 단지 기존에 존재하는 컴파일러 옵션의 도움으로 분석이 가능하고, 또한 최근에는 full dynamic tracing 기법의 도입으로 컴파일러의 도움 없이도 바이너리 분석 및 조작을 통해서도 분석이 가능하다.


- 프로젝트 목표
다른 사용자들이 더 쉽고 안정적으로 uftrace 를 통해 다른 프로그램에 대한 분석을 쉽게 할 수 있도록 하고, 데스크탑이나 서버 환경인 x86_64 그리고 임베디드 시스템 환경에서 사용중인 ARM 이나 AArch64 환경에서 잘 동작하도록 꾸준히 개선한다.

- 프로젝트 특징

uftrace 는 소스코드에 있는 전체 함수와 라이브러리 호출 및 리눅스 커널 내부 함수에 대한 통합된 실행 흐름 추적이 가능하고, 시간의 흐름에 기반한 tracing 을 할 수 있어서 전체적인 프로그램 실행 순서에 대한 이해에 큰 도움이 될 수 있다. 또한, uftrace 는 함수의 인자 값 및 반환값도 읽을 수 있어서 이를 활용하면 특정 함수에 어떤 기대하지 않았던 인자가 전달되거나 리턴 값을 반환하는 것을 코드 수정 없이 쉽게 찾아낼 수 있어서 버그나 취약점 분석에 활용할 수 있다.

 

- 참고자료

https://uftrace.github.io/slide

맨 위로
맨 위로