관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] ipa 파일 reverse engineering 시작하기 (#ghidra, NSA, National Security Agency) 본문

iOS 응용 (swift)

[iOS - swift] ipa 파일 reverse engineering 시작하기 (#ghidra, NSA, National Security Agency)

jake-kim 2024. 1. 17. 01:55

ipa 파헤치기 아이디어

  • 앱 바이너리 파일인 .ipa 형식의 파일을 준비
  • 미국 국가안보국에서 만든 오픈소스 ghidra를 활용 (무료)
  • ghidra로 .ipa파일을 읽고난 후 RAM에 있는 데이터들을 code로 변환하는것

ghidra 설치

  • ghidra github의 release에서 ghidra_11.0_PUBLIC_20231222.zip 설치

  • ghidra_11.0_PUBLIC_20231222.zip 폴더로 이동
cd ghidra_11.0_PUBLIC_20231222.zip
  • ghidra 실행
./ghidrarun

(terminal창에서 jdk 파일 위치를 물어보면 아래와 같이 입력)

/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home

.ipa 파일에서 바이너리 파일 추출

mv bitbar-ios-sample.ipa bitbar-ios-sample.zip
  • 압축해제
unzip bitbar-ios-sample.zip
  • .app 안에 있는 패키지 내용들 끄집어내기 (정확히는 binary 파일 끄집어내기)
mkdir reverse_test
mv Payload/BitbarIOSSample.app/* reverse_test

결과) 아래처럼 BitbarIOSSample이라는 실행파일 (binary file)이 나타나고 이 파일을 ghidra에서 분석이 가능

* 참고

- https://github.com/bitbar/test-samples/blob/master/apps/ios/bitbar-ios-sample.ipa

- https://medium.com/the-bkpt/setting-up-ghidra-on-macos-19b7b0becf7c

- https://github.com/NationalSecurityAgency/ghidra/releases

- https://namu.wiki/w/%EB%AF%B8%EA%B5%AD%20%EA%B5%AD%EA%B0%80%EC%95%88%EB%B3%B4%EA%B5%AD

- https://code.nsa.gov/

- https://ghidra-sre.org/

Comments