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
**윈도우에서 실행 시 iTunesDriver64와 itunnel_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 때문에 에러가 발생한다. 이때 추가적인 프로그램을 설치해도 가능하고, 파워쉘을 이용하여 사용해도 된다.
두번째: 이전의 덤프 작업의 실패 등의 이유로 해당 폴더안에 쓰레기 데이터가 포함되어 있을 때 삭제 하지 않으면 진행되지 않는다.
'Mobile > IOS' 카테고리의 다른 글
[IOS] fridump를 이용한 메모리 덤프 (0) | 2023.05.17 |
---|---|
[IOS]프리다 후킹을 통한 탈옥 탐지 우회(서브루틴[사용자 정의 함수]) (0) | 2023.05.17 |
[IOS] 프리다 후킹을 통한 탈옥 탐지 우회(클래스, 메소드) (2) | 2023.05.17 |
[IOS] Ventoy, Odyssenyn1x을 사용한 IOS 탈옥 (0) | 2023.05.16 |