리눅스 시스템 디버깅

gperftools를 이용한 메모리 Leak 체크

메모리 Leak 문제는 프로그램이 동적으로 할당한 메모리를 해제하지 않고 계속해서 사용하는 상태를 나타난다. 이로 인해 메모리 사용량이 계속 증가하며, 장기적으로는 시스템의 성능에 부정적인 영향을 미치게 된다. gperftools은 메모리 Leak을 체크하고…

Continue Readinggperftools를 이용한 메모리 Leak 체크

Stack Protector 사용법

스택 기반 버퍼 오버플로우는 지역 변수에 정해진 크기보다 많은 데이터를 써서 스택에 저장된 return address까지 덮어쓰고, 함수가 리턴할 때 공격자가 원하는 코드로 실행 흐름을 옮기는 전형적인 취약점 패턴이다. 커널은 컴파일러가…

Continue ReadingStack Protector 사용법

SysRq를 위한 pyserial-miniterm에 send_break() 기능 추가하기

임베디드 리눅스 디바이스를 개발할 때, 시리얼 콘솔을 통해 커널 디버깅 또는 긴급 명령을 보내는 경우가 있다. 그중 하나가 Magic SysRq 키 조합을 시리얼 포트를 통해 보내는 기능이다. Magic SysRq는 리눅스…

Continue ReadingSysRq를 위한 pyserial-miniterm에 send_break() 기능 추가하기

Kernel Memory Leak Detector : kmemleak 사용법

커널 개발에서 메모리 누수는 심각한 문제이다. 메모리 누수는 시스템의 성능을 저하시키고, 장기적으로는 시스템이 불안정해지는 원인이 될 수 있기 때문이다. 이를 해결하기 위해 Linux 커널은 Kernel Memory Leak Detector인 kmemleak 툴을…

Continue ReadingKernel Memory Leak Detector : kmemleak 사용법