본문 바로가기

40./42. iOS

GikDBG iOS assembly-level debugger iOS 디버거

GikDBG iOS assembly-level debugger


GikDBG는 모바일 플레폼에서 실행 가능한 응용 프로그램(모바일 앱)을 위한 어셈블리 디버거이다. 32bit Microsoft Windows기반의 OllyDBG, GNU Project debugger의 GDB, collection of modular and reusable compiler and tool-chain technologies의 LLVM


URL : http://gikir.com


iOS 디버거와 Android 디버거를 지원하고 있지만, Android의 경우 원격 디버거가 많기 때문에 희소성 있는 iOS 디버거를 테스트를 시도했다.


gikir은 처음 다운로드 받아 압축을 해제하면 디버깅을 많이 해보신 분들을 ollydbg를 가장 먼저 눈에 보이지만, 이번엔 iOS 디버깅이니 Ollydbg보다 gikdbg.exe와 gikshl.exe에 익숙해지는 것이 좋을 것 같다.




iDevice에 설치할 GDB원격 서버는 gikdbg\iserver 폴더에 gikir_iserver.deb 패키지를 확인 가능하다. 



이 패키지를 i-funbox와 같은 툴을 이용하여 iDevice에 옮긴다.


설치

# dpkg -i gikir_iserver.deb



iDevice에 gikir_iserver 앱을 확인 가능하다.


gikdbg iphone server를 실행하면 아래와 같은 화면을 확인 가능하다.

USB 디버깅 mode를 사용한다면 user와 pype이 필요 없지만 wi-fi 디버깅 mode를 사용한다면 user가 인증 시 필요하다.



gikdbg.exe를 실행하면 gikshl.exe가 자동으로 실행되면서 접근 가능하도록 해줘야하는데 이상하게 테스트 시 접근이 불가능하거나 gikdbg.exe 프로세스가 종료된다. 그래서 먼저 gikshl.exe을 먼저 실행하고 진행하였다.

※ 주의 ifunbox와 itunes를 먼저 설치된 PC에서 진행해야합니다.


ollydbg를 사용할때는 File-Attach를 이용하여 프로세스에 접근하지만 iOS App에 접근할 때는 iDebug-Attach를 이용하여 접근한다.


Attach 가능한 프로세스(iOS app) 목록을 확인 가능하다.



그중 디버깅하고싶은 프로세스를 선택하면 아래와 같은 메시지 창을 확인 가능하다.


확인 - 확인



아래와 같이 정상적으로 실행한 모습을 확인가능하다.



아직까지는 동적 디버깅이 가능하지 않은 것 같다. 아니면 내가 못하는거..

iOS에 직접 붙어서 디버깅을 하는 것이 아니라 해당 프로세스를 덤프떠서 Windows에서 디버깅 하는 것같아 좀 아쉬웠다. IDA도 Mach-O 파일을 분석해주기 때문에 체감은 처음 이 툴을 발견했을때 기대치가 반감되었다.


참고로 중국인이 만든 툴이다. 영어와 중국어를 번역하며 사용법을 익혔지만 아직 완벽하지 않습니다. F&A와 Q&A가 모두 중국어라 구글 번역을 사용했지만 한글도 해석해야하는 수준의 번역이 나와서... 


'40. > 42. iOS' 카테고리의 다른 글

[iOS] Logify  (0) 2014.07.24
[DVIA] Damn Vulnerable iOS Application  (0) 2014.07.21
iRET  (0) 2014.07.16
[Cydia App] iDevice VNC용 Veency  (0) 2014.07.16
iOS App 정적 분석용 Class-dump-z  (0) 2014.07.15