iOS앱 실행에러
2025. 11. 9. 18:36ㆍ모바일 앱 해킹 및 보안/iOS
아래는 iPhone 단말기에서 추출한 시스템 로그 중 일부임.
| Nov 9 17:40:13 Someone's-iPhone SpringBoard(FrontBoard)[1219] <Error>: Bootstrapping failed for <FBApplicationProcess: 0x152b82330; application<cohttp://m.xxx.test.wow>:<invalid>> with error: <NSError: 0x2802547b0; domain: RBSRequestErrorDomain; code: 5; reason: "Launch failed."> { NSUnderlyingError = <NSError: 0x280254f90; domain: NSPOSIXErrorDomain; code: 85>; } |
결론부터 말하면, OS가 “대상 앱 프로세스를 띄우기도 전에 거부해서” 그냥 홈으로 튕겨버린 상황이에요.
핵심 포인트부터 말하면:
- RBSRequestErrorDomain; code: 5; reason: "Launch failed." → SpringBoard/FrontBoard가 “이 앱 프로세스는 못 띄우겠다” 하고 중간에서 막은 것.
- NSPOSIXErrorDomain; code: 85 → iOS 쪽에서 이 코드를 거의 항상 “Bad executable (or shared library)” 로 찍어요. 즉 “실행파일이거나 붙여야 할 라이브러리가 마음에 안 든다”는 뜻입니다. 이건 애플 개발자 포럼/깃허브에서도 똑같이 뜨는 패턴이라서 맞는 해석입니다.
탈옥 환경에서 이게 특히 잘 나는 이유가 몇 가지 정해져 있습니다. 아래에서 하나씩 볼게요.
- 앱 번들에 탈옥 트윅이 강제로 주입되면서 코드서명이 깨진 경우
- 모든 앱에 무조건 주입하는 트윅(SSL 우회, Frida gadget, 덤프 툴, 광고 제거 등)이 있으면, 일부 앱은 “이런 라이브러리는 못 로드해” 하고 AMFI/launchd 단계에서 거절합니다.
- 그럼 아직 앱 main()도 안 들어갔는데 SpringBoard가 “Bootstrap failed”를 찍고 끝. 지금 로그가 딱 그 모양이에요.
GitHub - IPA를 손으로 넣었거나(Filza/SCP), 재서명한 앱이 현재 iOS·기기랑 안 맞는 경우
- 권한/소유자/실행 비트가 이상하거나,
- 포함된 .dylib이나 .framework가 다시 안 서명돼 있거나,
- 오래된 툴로 재서명해서 최신 iOS가 싫어하면 code 85로 튕깁니다. 이런 보고도 같아요. - iOS가 “이 서명/프로파일은 이 디바이스에서 허용 안 한다”라고 한 경우
- 애플 포럼에도 iOS 업데이트 뒤에 기업용/MDM 빌드가 딱 이 에러로 안 떠버린 사례가 있어요. 서명 프로파일을 Xcode로 바로 설치한 빌드는 되는데 배포판은 안 되는 식이죠. 탈옥 상태에서 서명 우회 트윅과 충돌하면 더 잘 납니다. - 해당 앱이 루트리스/최신 환경에서 안 되는 오래된 트윅이랑만 부딪힌 경우
- 최근 루트리스 계열 탈옥에서 “모든 앱에 주입”을 켜두면 일부 정식 앱이 이렇게 바로 죽습니다.
해결방법
- 해당 앱만 트윅 주입 끄기
- 설치된 트윅 중에 per-app으로 비활성화할 수 있는 게 많아요.
- 대상 앱에서 전부 OFF 하고 다시 실행해보세요. 이게 제일 많이 먹힙니다. - 앱을 완전히 지웠다가 App Store에서 다시 받기
- 수동으로 깔았거나 패치된 걸 넣었다면 그대로는 계속 Bad executable로 죽을 수 있어요. 순정 소스에서 다시 받으면 번들 권한/서명이 정상으로 돌아옵니다. (AppSync 류가 있으면 잠깐 끄고 설치) - 최근에 깐 시스템 전체 주입 트윅을 하나씩 꺼보기
- “설치하고 나서부터 이 앱만 안 켜진다” 싶은 게 있으면 그게 범인일 확률이 큼.
- 특히 TLS 우회, Frida 관련, 덤프/디크립트, 광고 제거 같이 모든 프로세스에 들어가는 것부터 끄세요. - (수동 설치한 IPA라면) 다시 제대로 재서명
- TrollStore나 Sideloadly 쪽에서 최신 툴로 다시 서명해서 넣어보세요.
- 안에 포함된 extension / framework도 같이 서명돼야 하고, 퍼미션도 755로 맞아야 합니다. 안 그러면 launchd가 “실행 불가”로 바로 85 던집니다. - 그래도 안 되면 콘솔에서 바로 위 로그까지 보기
- 지금 올려준 로그 바로 위에 AMFI나 CodeSignature 관련 에러 한 줄이 더 있을 가능성이 높아요. 거기에 “profile refused”, “bad code signature”, “dylib … not valid” 같은 게 있으면 그게 진짜 원인입니다. iOS 18 계열에서도 이런 식으로 서명 거절 후에 똑같이 터져요.
'모바일 앱 해킹 및 보안 > iOS' 카테고리의 다른 글
| [iOS 취약점] 저장소 내에 중요정보 평문 저장 (0) | 2023.10.15 |
|---|---|
| iOS subroutine 함수 주소 계산방법 (0) | 2023.05.08 |
| iOS 탈옥 탐지 방안(Jail Break) (0) | 2023.05.07 |
| 메모리 내 중요정보 노출 취약점 (0) | 2023.04.23 |
| iOS 진단TWEAK (0) | 2022.08.03 |