Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
super-tart-vphone-writeup — Leitfaden zum Bau eines virtuellen iPhones unter Verwendung von VPHONE600AP-Komponenten aus Apples PCC-Firmware, mit Firmware-Patching, Bootchain-Modifikation und Kernel-Debugging für die iOS-Sicherheitsforschung. | Kitploit
Tools/GitHubGitHub/wh1te4ever/super-tart-vphone-writeup
iOS-SicherheitSchwachstellenanalyseExploitationReverse EngineeringDebuggerPenetrationstestsMobile SicherheitHardware- & IoT-SicherheitFirmware-Analyse

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Binary-Exploitation
GitHubwh1te4ever/super-tart-vphone-writeup

super-tart-vphone-writeup

Leitfaden zum Bau eines virtuellen iPhones unter Verwendung von VPHONE600AP-Komponenten aus Apples PCC-Firmware, mit Firmware-Patching, Bootchain-Modifikation und Kernel-Debugging für die iOS-Sicherheitsforschung.

Repository anzeigen
1.2k16823vor 7 MonatenVon Kitploit geprüft
Teilen

Erstellen eines virtuellen iPhones mit der VPHONE600AP-Komponente der kürzlich veröffentlichten PCC-Firmware

Besonderer Dank / Danksagungen

  • dlevi309 (Lieferte Ideen für die Touch-Interaktion auf dem virtuellen iPhone)
  • khanhduytran0, 34306, asdfugil, verygenericname (Lieferte weitere Ideen zum Erstellen eines virtuellen iPhones, einschließlich Cryptex, Geräteaktivierung, Ramdisk-Boot usw.)
  • ma4the, Mard, SwallowS (Testen, ob es in anderen Umgebungen gut funktioniert)

Motivation

Etwa Ende 2024 begann Apple, Private Cloud Compute einzuführen, und behauptete, einen neuen Horizont für cloudbasierte KI-Privatsphäre zu eröffnen. Dann, etwa Ende 2025, tauchten einige interessante Nachrichten auf: Apple hatte neu vphone600ap-bezogene Komponenten zur PCC-Firmware hinzugefügt, beginnend mit cloudOS 26.

Source: https://x.com/matteyeux/status/2006339694783848660/photo/1

Quelle: https://x.com/matteyeux/status/2006339694783848660/photo/1

"iPhone Research Environment Virtual Machine"?

Ist dies ein geplanter Schritt von Apple, eine virtuelle iPhone-Umgebung für andere Sicherheitsforscher zu erstellen und zu verteilen, oder war es einfach ein Fehler? Angesichts der Tatsache, dass der DEVELOPMENT/KASAN-Build-Kernel einmal in den iOS 15.0 Beta bis 15.1 Beta3 OTAs im Jahr 2021 entdeckt wurde, kann die Möglichkeit eines Ausrutschers nicht ausgeschlossen werden. Damals blieb der Kernel etwa 4 Monate lang enthalten, ungefähr von Juni bis Oktober 2021.

Dann wurde etwa im Januar dieses Jahres ein Tweet gepostet, der ein virtuelles iPhone zeigte, das unter Verwendung dieser vphone600ap-bezogenen Komponenten hochfährt.

Source: https://x.com/_inside/status/2008951845725548783

Quelle: https://x.com/_inside/status/2008951845725548783

Screenshot 2026-02-24 at 7.39.03 PM.png

Nach dem, was ich sah, funktionierte fast alles wirklich elegant. Im Vergleich zu dem QEMUAppleSilicon(Inferno) project, das ich zuvor gesehen hatte, läuft es viel flotter und geschmeidiger. Darüber hinaus schien es sogar Metal-Beschleunigung zu unterstützen. Letztendlich, völlig davon gefesselt, tauchte ich ein und begann am 31. Januar mein eigenes virtuelles iPhone zu bauen.

Screenshot 2026-02-24 at 7.46.41 PM.png

Modifizieren von super-tart, um das virtuelle iPhone zu booten

Das referenzierte Projekt ist security-pcc. Es entspricht dem Quellcode des Binärprogramms /System/Library/SecurityResearch/usr/bin/vrevm. Ein interessanter Punkt ist, dass es private Methoden verwendet, die von Virtualization.framework bereitgestellt werden. In der für die PCC-Forschung verwendeten virtuellen Maschine kann man sehen, dass die ISA und PlatformVersion während des Initialisierungsprozesses des Hardwaremodells explizit angegeben werden.

Screenshot 2026-02-24 at 8.27.01 PM.png

Für das Bootrom wird AVPBooter.vresearch1.bin verwendet (/System/Library/Frameworks/Virtualization.framework/Resources/AVPBooter.vresearch1.bin)

Screenshot 2026-02-24 at 8.32.08 PM.png

und für das SEPROM (avpsepbooter) wird AVPSEPBooter.vresearch1.bin verwendet, das separat eine SEPStorage-Datei lädt, die ähnlich wie AuxiliaryStorage funktioniert. (/System/Library/Frameworks/Virtualization.framework/Versions/A/Resources/AVPSEPBooter.vresearch1.bin)

Ein weiterer interessanter Punkt ist, dass, wenn man sich den Code zum Einstellen der Auflösung ansieht, diese auf 1290x2796 gesetzt ist, was den Geräten iPhone 14 Pro Max, 15 Plus, 15 Pro Max und 16 Plus entspricht.

Screenshot 2026-02-24 at 8.34.11 PM.png

Mit diesen Informationen sollte es mehr als genug sein, um super-tart zu modifizieren, um das virtuelle iPhone zu booten. Ich habe die Änderungen wie unten gezeigt vorgenommen.

  • /Sources/tart/VM.swift```swift ... class VM: NSObject, VZVirtualMachineDelegate, ObservableObject { ... // vzHardwareModel derives the VZMacHardwareModel config specific to the "platform type" // of the VM (currently only vresearch101 supported) static private func vzHardwareModel_VRESEARCH101() throws -> VZMacHardwareModel { var hw_model: VZMacHardwareModel

    guard let hw_descriptor = _VZMacHardwareModelDescriptor() else { fatalError("Failed to create hardware descriptor") } hw_descriptor.setPlatformVersion(3) // .appleInternal4 = 3 hw_descriptor.setBoardID(0x90) hw_descriptor.setISA(2) hw_model = VZMacHardwareModel._hardwareModel(withDescriptor: hw_descriptor)

    guard hw_model.isSupported else { fatalError("VM hardware config not supported (model.isSupported = false)") }

    return hw_model }

    static func craftConfiguration( diskURL: URL, nvramURL: URL, romURL: URL, sepromURL: URL? = nil, vmConfig: VMConfig, network: Network = NetworkShared(), additionalStorageDevices: [VZStorageDeviceConfiguration], directorySharingDevices: [VZDirectorySharingDeviceConfiguration], serialPorts: [VZSerialPortConfiguration], suspendable: Bool = false, nested: Bool = false, audio: Bool = true, clipboard: Bool = true, sync: VZDiskImageSynchronizationMode = .full, caching: VZDiskImageCachingMode? = nil ) throws -> VZVirtualMachineConfiguration { let configuration: VZVirtualMachineConfiguration = .init()

    // Boot loader let bootloader = try vmConfig.platform.bootLoader(nvramURL: nvramURL) Dynamic(bootloader)._setROMURL(romURL) configuration.bootLoader = bootloader

    // SEP ROM let homeURL = FileManager.default.homeDirectoryForCurrentUser var sepstoragePath = homeURL.appendingPathComponent(".tart/vms/vphone/SEPStorage").path let sepstorageURL = URL(fileURLWithPath: sepstoragePath) let sep_config = Dynamic._VZSEPCoprocessorConfiguration(storageURL: sepstorageURL) if let sepromURL { // default AVPSEPBooter.vresearch1.bin from VZ framework sep_config.romBinaryURL = sepromURL } sep_config.debugStub = Dynamic._VZGDBDebugStubConfiguration(port: 8001) configuration._setCoprocessors([sep_config.asObject])

    // Some vresearch101 config let pconf = VZMacPlatformConfiguration() pconf.hardwareModel = try vzHardwareModel_VRESEARCH101()

    let serial = Dynamic._VZMacSerialNumber.initWithString("AAAAAA1337") let identifier = Dynamic.VZMacMachineIdentifier._machineIdentifierWithECID(0x1111111111111111, serialNumber: serial.asObject) pconf.machineIdentifier = identifier.asObject as! VZMacMachineIdentifier

Tool herunterladen