▶ 모의해킹 공부
모의해킹 시스템 해킹 리눅스 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 명령어에 대해서 알아보자