관리 메뉴

개발자비행일지

모의해킹 시스템 해킹 리눅스 ELF 동적분석2 본문

▶ 모의해킹 공부

모의해킹 시스템 해킹 리눅스 ELF 동적분석2

Cyber0946 2020. 2. 20. 13:08

Process Attach

gdb를 이용하면 실행중인 프로세스를 디버깅 가능하다.  

read_write는 사용자의 입력을 받아 문자열을 출력해 주는 프로그램이다. 예제의 소스 코드는 다음과 같다.

이 프로그램을 실행 했을 때의 모습이다. 

gdb에서는  -p PID 혹은 --pid=PID를 인자로 전달하면 PID에 해당하는 프로세스에 gdb를 attach 가능하다. 먼저 우선, read_write를 실행하여 실행 중인 프로세스의 PID를 알아보겠다. 실행 중인 프로세스의 PID를 확인하는 방법은 여러 가지가 있습니다. 첫 번째 방법은 ps 프로그램을 이용하는 방법입니다.

먼저 read_write를 실행 시킨후 다른 터미널을 통해서 pid를 알아낸다. 

read_write의 프로세스의 PID는 13349이다.

자 이제 이를 활용해서 gdb로 프로세스를 디버깅 해보자. 

 이때 프로세스를 attatch 할 때는 루트 권한으로 해야 한다. 

완료된 후 다음과 같은 창이 뜬다. 

dissas main을 해보면 다음과 같이 디스어셈블리 된다. 

이제 main의 74번째 라인에서 scanf를 호출 이전과 그 이후를 브레이크 포인트로 설정하고 c 명령어를 통해서 메모리 값을 확인해 보자. 

이때, c를 통해서 진행해야한다. run이 아닌 continue이다. 

자 이제 기본적인 gdb 명령어에 대해서 알아보자