KGPstudio
article thumbnail
Published 2023. 5. 17. 09:50
[IOS] IPA 파일 추출하는 법 Mobile/IOS
반응형

IPA 파일을 추출할 때 사용할 수 있는 방법은 여러가지가 있지만 그 중 2가지에 대해 소개한다.

**IPA파일을 추출할 때 여러 도구를 사용하는 이유는 앱스토어에 어플이 등록될 때 전부 암호화 되어 등록되기 때문에 복호화를 하여야 한다.

 

CrackerXI+를 이용한 추출(sileo는 불가능)

 

1. Cydia -> 소스 -> 오른쪽 상단 편집 -> 왼쪽 상단 추가버튼 -> htttp://cydia.iphonecake.com/소스 추가 -> 검색창에서 CrackerXI+ 검색 후 설치

2. CrackerXI+앱을 켠 후 하단의 Setting -> CrackerXI Hook옵션 활성화 -> 하단의 AppList -> 추출을 원하는 앱 선택 -> IPA 전체를 추출하고 싶다면 YES, Full IPA 선택/복호화 된 바이너리 파일만 원하면 YES, Binary Only 선택

3. 작업이 끝난 후 추출된 IPA/바이너리 파일 경로 확인 가능


Frida-ios-dump를 이용한 추출

1. frida-ios-dump 다운로드

https://github.com/AloneMonkey/frida-ios-dump

 

GitHub - AloneMonkey/frida-ios-dump: pull decrypted ipa from jailbreak device

pull decrypted ipa from jailbreak device. Contribute to AloneMonkey/frida-ios-dump development by creating an account on GitHub.

github.com

2. Frida-ios-dump 사용을 위해 패키지를 업데이트 한다.

pip install –r requirements.txt –upgrade

pip install –r requirements.txt –upgrade

**윈도우에서 실행 시 iTunesDriver64itunnel_mux-rev71가 필요하다.

 

3. 설치가 완료되었다면 dump.py 파일을 수정한다.

2    User = 'root'

3    Password = 'alpine'

4    Host = '192.168.1.183'

5    Port = 22

6    KeyFileName = None

Password = 기본 비밀번호는 alpine이고 변경하였다면 변경된 비밀번호를 작성해준다.

Host = 단말기의 ip를 작성해준다. 와이파이 설정에서 확인할 수 있다.

Port 2222에서 22로 변경해준다.

 

4. 수정이 완료 되었다면 설치된 경로로 파워 쉘을 실행한다. (**리눅스 명령어인 chmod 때문에 에러가 발생할 수 있기 때문)

 

5. 그 후 python dump.py –l 명령어로 덤프 가능한 리스트를 확인한다. (**frida가 설치되어 있다면 frida-ps -Uai로도 확인 가능 )

 

6. 관리 툴(3utools )을 사용하여 iOS기기의 터미널을 열어준 후, itunnel_mux를 사용하여 원격에서 SSH 통신을 통한 명령어 전달이 가능하도록 설정한다.

itunnel_mux.exe –iport 22 –lport 2222 (--iport: IOS기기의 open된 SSH 포트 번호, --lport: local port로, open된 ios기기의 SSH로 원격 접속할 포트 번호)

7. Dump.py로 파일을 선택하여 복호화하여 ipa파일로 추출한다.

리스트 확인 : python dump.py –l

복호화 후, IPA 추출(명령어 실행 위치에 IPA파일 생성): python dump.py [식별자 이름(xxx.xxx.xxx)]

 

**여기서 premissionError가 나올 수 있는데 두가지 이유가 있다.

첫번째: dump.py파일에서 사용하는 리눅스 명령어인 chmod 때문에 에러가 발생한다. 이때 추가적인 프로그램을 설치해도 가능하고, 파워쉘을 이용하여 사용해도 된다.

두번째: 이전의 덤프 작업의 실패 등의 이유로 해당 폴더안에 쓰레기 데이터가 포함되어 있을 때 삭제 하지 않으면 진행되지 않는다.

 

 

 

반응형
profile

KGPstudio

@KGP-Admin

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!