<보안 study>/리버싱

[iOS] iOS 어플 IDA로 원격 디버깅 하기

gosoeungduk 2022. 5. 20. 03:21
반응형

#iOS #ipa #IDA #어플


IDA 로 iOS ipa 파일 원격디버깅 붙는 법을 서술하겠습니다.

1. 준비물

  1. 탈옥 된 아이폰 (작성자 기준 iPhone 7, iOS 14.4.2)
  2. USB 8핀 케이블 (컴퓨터랑 연결할 용도)
  3. Decrypt 된 ipa 어플 파일 (Decrypt 과정은 생략. EASY 함)

2. 순서

2-1. PC 와 iPhone usb 로 연결

2-2. iPhone Wi-Fi 연결

이 부분에서 ip 알아내어 ssh 연결을 해야한다.

2-3. iPhone ssh 연결 후, debugserver 로 포트오픈

우선 cydia 에서 debugserver-10 을 설치 한다.

그리고 ssh 로 iPhone 에 접속해서 위와 같이 23946 포트를 열어 통신 대기를 한다. 물론 이 때도 USB 연결은 함께 되어있어야한다.

debugserver-10 0.0.0.0:23946

2-4. 윈도우에서 itunnel 로 usb 터널링

https://code.google.com/archive/p/iphonetunnel-usbmuxconnectbyport/downloads

그리고 이제 Windows 로 돌아와서 해당 링크를 통해 itunnel_mux_rev71.zip 을 다운 받는다. itunnel 프로그램은 iPhone 과 Windows 사이의 usb 터널링을 돕는 프로그램이다.

그리고 위 처럼 iPhone 과 2222 포트를 통해 통신망을 뚫어준다.

itunnel_mux.exe --iport 23946 --lport 2222

참고로 --iport 는 iPhone 상에서 통신대기하는 포트이고, --lport 는 현재 윈도우의 로컬 포트를 의미한다.

참고사진

혹시나 여기서

[FATAL] Could not locate 'Apple Mobile Device Support'

에러가 뜬다면,....

https://drive.google.com/file/d/1x0ICdWPQ8cDgpEGstgkN7mwteaEc4ETx/view?usp=sharing

해당 itunes 드라이버를 설치해준 뒤 다시 itunnel 을 실행하면 해결된다. iOS 12 이상에서 시도할 때 생기는 오류라고 한다.

2-5. 터널링 완료 후, IDA 로 프로세스 attach

디버거 종류를 Remote iOS debugger 로 바꾸어 놓고, 일단 터널링은 되었기 때문에 로컬 포트 2222 로 디버깅 옵션을 설정해둬야한다.

그리고 원하는 어플을 iPhone 에서 켜놓고 해당 어플 프로세스의 PID 를 구하여 IDA 의 Debugger - Attach to process 탭에서 해당 PID 를 넣음으로써 iOS 어플에 대한 Remote Debugging 을 윈도우 상에서도 진행할 수 있다.


3. 마무리

원하는데에 브레이크를 미리 잡아놓고 시작하자. 그리고 추가적인 심볼이 필요하다면 맥북 사용자의 도움을 받아 iOS 버전에 맞는 심볼을 다운 후, 아래 경로에 설정해두면 된다.

Debugger - Debugger options - Set specific options

반응형