
탈옥된 iOS 11.x에서 App Store 앱을 복호화하는 유틸리티
탈옥한 iOS 11.x에서 App Store 앱을 복호화하는 유틸리티
다음은 https://github.com/BishopFox/bfinject를 사용하여 Electra로 탈옥한 iPhone에서 Reddit 앱을 복호화하는 예시입니다:
Cs-iPhone:~ root# bash bfinject -P Reddit -l dylibs/bfdecrypt.dylib
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/BCEBDD64-6738-45CE-9B3C-C6F933EA0793/Reddit.app/Reddit'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 2TDUX39LX8 and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 3218.
[bfinject4realz] Calling thread_create() on PID 3218
[bfinject4realz] Looking for ROP gadget... found at 0x1016a5110
[bfinject4realz] Fake stack frame at 0x10a06c000
[bfinject4realz] Calling _pthread_set_self() at 0x181303814...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x1810c3460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c03e1100
[+] So long and thanks for all the fish.
기기에서 다음 화면을 볼 수 있습니다:
완료되면 복호화된 IPA를 다운로드할 수 있는 서비스를 시작할지 묻는 UI 알림이 표시됩니다:
Yes를 탭하면 기기의 31336 포트에서 서비스가 시작됩니다. 해당 서비스에 연결하면 IPA의 원본 복사본이 전송되며, 다음과 같이 netcat으로 다운로드할 수 있습니다:
carl@calisto-3 /tmp $ nc 192.168.1.33 31336 > decrypted.ipa
carl@calisto-3 /tmp $ ls -l decrypted.ipa
-rw-r--r-- 1 carl wheel 14649063 Jan 25 16:57 decrypted.ipa
carl@calisto-3 /tmp $ file decrypted.ipa
decrypted.ipa: iOS App Zip archive data, at least v2.0 to extract
또는 기기의 콘솔 로그를 확인하면 복호화된 IPA가 저장된 위치를 알 수 있습니다. 예:
[dumpdecrypted] Wrote /var/mobile/Containers/Data/Application/6E6A5887-8B58-4FC5-A2F3-7870EDB5E8D1/Documents/decrypted-app.ipa
다음과 같이 파일시스템에서 IPA를 검색할 수도 있습니다:
find /var/mobile/Containers/Data/Application/ -name decrypted-app.ipa
기기에서 .ipa를 가져오려면 netcat을 사용할 수 있습니다. 노트북에서 리스너 서비스를 설정하세요:
ncat -l 0.0.0.0 12345 > decrypted.ipa
그리고 탈옥된 기기에서:
cat /path/to/decrypted.ipa > /dev/tcp/<IP_OF_YOUR_COMPUTER>/12345
.ipa는 App Store의 원본 .ipa 복제본이지만, 기본 바이너리와 함께 제공되는 모든 프레임워크 및 공유 라이브러리는 복호화됩니다. 이전에 암호화된 각 파일에서 CRYPTID 플래그는 0이 됩니다. .ipa를 가져와 앱을 추출하고, 필요에 따라 수정한 다음, 자신의 개발자 인증서로 다시 서명하고, 필요에 따라 탈옥하지 않은 기기에 배포할 수 있습니다.
Electra 및 LiberiOS에서 성공적으로 테스트되었습니다.