Reverse Engineering/분석도구

OS X에서 IDA를 이용한 원격 디버깅

쿨캣7 2013. 1. 17. 23:21
728x90
반응형

 

인터넷을 검색해봐도 IDA를 이용한 원격디버깅 방법을 자세히 설명한게 없어 한번 작성해 봤습니다.

 

도움되었으면 합니다.

 

----------------

 

IDA는 원격 디버깅 기능으로 네트워크가 연결될 경우 다른 OS의 파일을 디버깅 할 수 있다. 하지만, 테스트 결과 Windows IDAMac 실행 파일을 Windows IDA로 디버깅 할 경우 오류가 잦아 Mac IDA로 디버깅 하라는 조언을 받았다. 따라서, Mac의 가상 머신(여기서는 VMware Fusion 이용)OS X을 설치하고 원격 디버깅하는 방법을 선택했다.

 

실제 Mac

 

1.     실제 Mac 시스템에 IDA Pro 설치

 

원격 Mac (가상머신)

 

원격 디버깅 대상이 되는 시스템 (여기서는 VMware Fusion OS X 10.7 Lion 설치)에 몇 가지 설정이 필요하다.

 

1.     mac_server, mac_serverx64 복사

 

본 테스트에서는 [사용자]\Util mac_server mac_serverx64를 복사했다.

해당 파일은 설치된 IDA에서 찾을 수 있다.


 

2.     권한 변경

 

OS X에서 원격 디버깅을 위해 권한 설정이 필요하다.

 

 

  

 

chgrp procmod mac_server chmod g+s mac_server으로 권한을 변경한다. 이때 관리자 권한이 필요하므로 sudo 명령 등으로 실행 한다.

 

 

 

이 과정은 한번만 하면 된다.

 

3.     mac_server로 포트 열기

 

관리자 모드에서 mac_server를 실행해(sudo ./mac_server)  외부에서 접속할 수 있게 포트를 열어둔다. 분석 대상 파일이 64 비트일 경우 mac_serverx64를 실행한다. 포트가 열릴 때까지 보통 몇 초 정도 걸린다.

 

 

 

원격 디버깅 방법

 

IDA가 설치된 실제 Mac 시스템에서 원격 디버깅 대상 시스템에 접속한다.

 

1.     IDA‘Debugger’ 메뉴에서 ‘Run’을 선택해 디버깅 대상 파일 설정

 

포트가 제대로 열렸을 경우 실제 Mac에 설치된 IDA에  Debugger Run Attach 메뉴가 활성화된다. 원격 대상 시스템이 OS X이므로 ‘Remote Mac OS X debugger’를 선택한다.

 

 

 

Application에 디버깅 대상 파일을 지정하는데 이때 디렉토리 위치까지 지정해 줘야 한다.만약 파일이름만 지정한 경우 mac_server가 실행된 디렉토리에서 파일을 찾는다.

 

 

 

2.     제대로 연결되면 디버깅 가능

 

이제부터 본인의 디버깅 능력에 달려있다.

 

 

 

 

주의 사항

 

1.     디버깅 대상 파일에 맞는 IDA 버전을 이용

 

32 비트 실행 파일은 mac_server 32비트 IDA 64 비트 파일은 mac_serverx64 64비트 IDA를 실행해야 한다.

 

만약 분석 대상이 64비트인데 mac_server를 실행 후 원격 디버깅하면 파일 종류가 맞지 않아 ‘Warning: bad file or could not find a member with matching cpu type

Error: oops! Internal error 618’ 등과 같은 오류가 발생한다.

 

 

 

 

 

 

참고자료

[1] http://www.hex-rays.com/products/ida/debugger/mac/index.shtml

728x90
반응형