Есть ли способ напрямую запускать двоичные файлы 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.

Другие вопросы по тегам