Есть ли способ напрямую запускать двоичные файлы iOS на MacBook M1?
Поскольку MacBook M1 может запускать приложения iOS напрямую, мне интересно, есть ли способ запускать двоичные файлы iOS напрямую, вместо того, чтобы запускать их только из App Store?
Я разрабатываю приложения для iOS с C без Xcode, мой текущий рабочий процесс:
- строить с
xcrun -sdk iphonesimulator clang
- упаковать в комплект iOS
- использовать
xcrun simctl
команды для копирования и запуска на симуляторе
он работает хорошо, но было бы очень хорошо, если бы я мог каким-то образом напрямую запустить встроенный двоичный файл, если я просто запустил его напрямую, он просто говорит
% file app
app: Mach-O universal binary with 2 architectures: [arm_v7:Mach-O executable arm_v7] [arm64:Mach-O 64-bit executable arm64]
app (for architecture armv7): Mach-O executable arm_v7
app (for architecture arm64): Mach-O 64-bit executable arm64
% ./app
zsh: killed ./app
что я честно не знаю, что с этим
работающая iOS
.app
из App Store, похоже, имеют такую структуру:
iOSapp.app
├── WrappedBundle -> Wrapper/iOSapp.app
└── Wrapper
├── BundleMetadata.plist
├── iTunesMetadata.plist
└── iOSapp.app
но я понятия не имею, способствует ли какой-либо из них запуску, и не мог найти документацию по этим
1 ответ
Да, Google P0 только что нашел способ сделать это:
Таким образом, полные шаги, необходимые для запуска двоичного файла iOS в macOS:
Use the posix_spawnattr_set_platform_np API to set the target platform to PLATFORM_IOS
Execute the new process via posix_spawn(2) and start it suspended
Patch dyld to allow library interposing
In the interposed library, claim to possess the com.apple.security.cs.debugger entitlement by replacing xpc_copy_entitlements_for_self
Continue the process by sending it SIGCONT
Полная ссылка: https://googleprojectzero.blogspot.com/2021/05/fuzzing-ios-code-on-macos-at-native.html.