1. PC - IOS 연결 (iproxy & SSH)
먼저 USB 케이블로 (탈옥) IOS와 PC을 연결한다.
1-1. iproxy 실행 [ 따로 설치 필요 ]

Iphone의 22번 포트(SSH)를 내 PC 2222번 포트로 포워딩한다.
1-2. ssh로 연결

연결이 성공적으로 되었다면 아이폰 시스템 내부에 성공적으로 접속한 것이다.
2. frida-server 확인 [ 설치 필요 ]

프리다 서버가 동작하고 있는지 확인한다.

프리다 서버가 동작할 경우 IOS에서는 어떤 어플이 깔려있는지 출력이 가능하다.
3. 앱 바이너리 경로 탐색
복호화할 대상 앱이 설치된 경로를 찾아야 한다.
/var/containers/Bundle/Application/{UUID}
보통 이 경로 내에 위치한다.

먼저 Application 경로에 이동하여 고유 ID로 된 폴더들을 확인한다.

찾은 대상 앱 폴더 내부로 들어가 실제 실행 파일 이름을 확인한다.
4. flexdecrypt를 이용한 복호화

이제 flexdecrypt를 이용하여 암호화된 바이너리를 복호화한다.
4-1. 권한 에러 해결 방법
※ iOS 버전이나 Rootless 환경에서는 권한 문제로 Failed to find get task 에러가 발생할 수 있습니다. 이는 task_for_pid() 등의 호출을 위한 Entitlement가 부족하기 때문이다.
1. /var/jb/usr/bin/ 경로에 ent.xml 파일 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>get-task-allow</key>
<true/>
<key>task_for_pid-allow</key>
<true/>
<key>platform-application</key>
<true/>
</dict>
</plist>
2. 재서명
entitlement 내용이 출력되어야 한다.
5. 복호화된 파일 PC로 추출 (scp)
아이폰 내부에 생성된 복호화 바이너리를 분석하기 위해 PC로 가져와야 한다. 이때 scp 명령어를 사용하여 포트는 앞서 설정한 2222번을 이용한다.
scp -P 2222 root@127.0.0.1:/tmp/(복호화된 바이너리 파일) .
이 명령어는 Windows cmd에서 해야 하며 파일은 명령어를 실행한 cmd 기준 경로에 저장된다.
'Mobile_security > IOS' 카테고리의 다른 글
| 0.IOS - APP Environment (앱 환경) (0) | 2026.01.05 |
|---|
