둘둘리둘둘리둘둘리둘둘리둘둘리둘

IDA를 이용한 리눅스 원격 디버깅 본문

Linux/Reversing

IDA를 이용한 리눅스 원격 디버깅

dool2ly 2015. 12. 30. 22:32

@IDA를 이용한 리눅스 원격 디버깅


  IDA는 호스트 PC에서 구동되고 Debuggee는 리눅스 머신에서 작동하게 됩니다.

리눅스 뿐만 아니라 여러 OS에서도 가능한것 같지만 리눅스에서밖에 안써봐서 리눅스 기준으로 설명하겠습니다.  IDA 6.5기준이지만 버전별로 큰 차이는 없는것 같습니다.




1. 리눅스 머신에 서버 elf파일 구동


IDA설치폴더->dbgsrv 폴더에 OS별로 서버 파일이 있습니다.



Debuggee가 구동될 시스템으로 알맞은 서버파일을 옮기고, 테스트용 간단한 elf파일을 생성한 후 서버파일을 실행합니다.





2. Debuggee 파일을 IDA가 구동되는 시스템으로 이동시킨후 IDA 실행


테스트용으로 생성한 a.out 파일을 IDA가 설치돼있는 시스템(필자기준 윈도우)으로 옮긴후 IDA를 이용하여 a.out을 열어줍니다.





3. IDA 원격 디버깅 설정


IDA 메뉴의 Debugger - Select Debugger..(F9)에서 Remote Linux debugger로 설정해줍니다.

Debugger - Process options..에서 아래와 같이 설정해준다.


여기서 각각 경로는 Debuggee시스템에서의 경로를 설정해야한다.(Directory는 linux_server가 실행되는 디렉토리)


설정 완료후 디버깅을 시작하면 되는데 제일 처음 나오는 경고는 OK로 넘어가고 나머지 map,binary설정은 그냥 취소 눌러서 빠져나가도 무관하다.




내부에서의 입력이야 리눅스 시스템에서 입력해주면 되고,  인자로 넘겨 줘야될 경우는 서버파일을 구동시킬때 인자로 입력하면된다.

예) a.out의 인자로 10과 20을 넘길경우-> ./linux_server 10 20

'Linux > Reversing' 카테고리의 다른 글

gdb-peda 설치  (0) 2016.02.28
ROPeMe (ROP Exploit Made Easy)  (0) 2015.11.17
64비트 elf 인자전달방식  (0) 2015.10.07
칼리 리눅스에 버추얼박스 게스트 확장 설치  (0) 2015.10.07
.plt .got 동작과정  (0) 2015.08.22
Comments