2 คะแนน โดย GN⁺ 2024-10-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การทำ iOS เสมือนบน Apple Silicon

Part 0: ดินแดนที่ยังไม่รู้จัก?

  • โปรเจ็กต์ vma2pwn: โปรเจ็กต์สำหรับสร้างสายโซ่บูต vma2 macOS ที่ปรับแก้ได้สำหรับเครื่องเสมือนแบบ guest บน macOS ซึ่งเป็นงานเตรียมการล่วงหน้าสำหรับการทำ iOS เสมือน
  • ความเป็นไปได้ของการทำ iOS เสมือน: เมื่อมีการเปลี่ยนผ่านไปสู่ Apple Silicon และการเปิดตัว Mac Catalyst ทำให้ระบบปฏิบัติการ iOS และ macOS เข้าใกล้กันมากขึ้น จึงเกิดคำถามว่าสามารถทำ iOS ให้เป็นเครื่องเสมือนได้หรือไม่
  • งานวิจัยที่มีอยู่เดิม: กล่าวถึงงานที่เกี่ยวข้อง เช่น ผลิตภัณฑ์ virtual iPhone cloud ของ Corellium, qemu-t8030 และบล็อกของ Zhuowei Zhang

Part I: เริ่มต้น + การค้นพบใหม่

  • ความสามารถของสแตก Virtualization ของ Apple: พบความสามารถในการเซ็นข้อมูลตามอำเภอใจสำหรับเครื่องเสมือน
  • ความจำเป็นของ vma2pwn ลดลง: สามารถตั้งค่าอุปกรณ์เสมือนให้อยู่ในโหมด "secure" และ "non-production" ได้ผ่านการเรียก _setProductionModeEnabled(false)
  • กลยุทธ์การรัน iOS: นำสายโซ่บูตของ macOS 12.0.1 มาใช้ซ้ำ และแทนที่ด้วยอิมเมจระบบ iOS 15.0.2 เพื่อลดการแก้ไขในกระบวนการเริ่มต้นระบบให้น้อยที่สุด

Part II: นรกแห่งแพตช์

  • แพตช์เคอร์เนล: จำเป็นต้องมีแพตช์เพื่อข้ามการตรวจสอบลายเซ็น และแก้ไขให้ข้ามการตรวจสอบ PLATFORM_IOS เพื่อรันไบนารีของ iOS
  • ปัญหา system keybag: เนื่องจาก system keybag ไม่เข้ากัน จึงมีข้อความ "ปัดขึ้นเพื่ออัปเกรด" ปรากฏใน PreBoard.app
  • ขนาดโครงสร้าง IOMFB ไม่ตรงกัน: แก้ปัญหา kernel panic ที่เกิดจากขนาดไม่ตรงกันระหว่างเฟรมเวิร์กระบบของ iOS กับเคอร์เนลของ macOS
  • แพตช์ระบบ: จำเป็นต้องแพตช์ทั้ง ramdisk สำหรับการกู้คืนและไฟล์ระบบ iOS และหากรันในสถานะที่ไม่ได้เซ็นลายเซ็น ระบบจะถูกปิดการทำงาน

Part III: อนาคต

  • การแก้ปัญหา system keybag: ยังต้องการแพตช์เพิ่มเติมและความเข้าใจที่มากขึ้นเกี่ยวกับระบบ iOS และเคอร์เนล
  • ความสามารถด้านการสัมผัส: ยังไม่ยืนยันว่าฟังก์ชันสัมผัสทำงานหรือไม่ และสามารถส่งเหตุการณ์สัมผัสได้โดยใช้ private API ของ Virtualization.framework

สรุปโดย GN⁺

  • บทความนี้นำเสนอการสำรวจเชิงเทคนิคเชิงลึกเกี่ยวกับวิธีทำ iOS ให้เป็นเครื่องเสมือนบน Apple Silicon
  • เมื่อการผสานรวมระหว่าง iOS และ macOS เร่งตัวมากขึ้น โปรเจ็กต์นี้จึงมีบทบาทสำคัญในการสำรวจการทำงานร่วมกันระหว่างสองระบบปฏิบัติการ
  • โปรเจ็กต์นี้ต้องใช้เวลาและความพยายามอย่างมาก และยังต้องการการวิจัยและพัฒนาเพิ่มเติม
  • โปรเจ็กต์ที่มีความสามารถคล้ายกันมีผลิตภัณฑ์ virtual iPhone cloud ของ Corellium

1 ความคิดเห็น

 
GN⁺ 2024-10-08
ความคิดเห็นบน Hacker News
  • Corellium ชนะคดีความ ทำให้สามารถให้เช่า iOS Cloud VM เพื่อวัตถุประสงค์ด้านการวิจัยความปลอดภัยได้

    • หากสามารถทำ iOS virtualization บน MacBook ที่ใช้ Apple Silicon ได้ ความต้องการบริการ virtualize iOS เชิงพาณิชย์อาจลดลง
    • ผู้ใช้ทั่วไปมีค่าใช้จ่าย $400 ต่อเดือน ส่วนองค์กรมีค่าใช้จ่าย $60,000 ต่อปี
  • หวังว่าโจทย์ถัดไปจะเป็นการหาวิธีติดตั้ง macOS ลงบน iPad

  • รู้สึกว่าเหตุผลที่ Apple ไม่ทำ Simulator ให้เป็น Emulator เป็นเพราะไม่ต้องการให้ผู้คนเจาะลึกถึงพื้นฐานของ iOS

  • จากโปรไฟล์ GitHub ของผู้เขียน ดูเหมือนว่าในฐานะบัณฑิตจบใหม่สาขาวิทยาการคอมพิวเตอร์ เขาทำผลงานที่น่าประทับใจมาก

  • คนที่สร้าง qemu-t8030 เคยรัน springboard ได้สำเร็จ แต่ไม่ได้เผยแพร่โค้ด หากความคืบหน้านี้สามารถนำมารวมกับโปรเจ็กต์ปัจจุบันได้ก็คงยอดเยี่ยมมาก

  • แม้จะเป็นคนละประเด็นกันเล็กน้อย แต่ก็สงสัยว่ามีใคร virtualize ARM macOS บน x86-64 ได้บ้างหรือยัง

  • Apple มี iOS Simulator ให้ใช้อยู่แล้วใน Xcode เลยสงสัยว่าโปรเจ็กต์นี้มีข้อได้เปรียบอะไรเมื่อเทียบกับสิ่งที่ Apple มีให้

  • การพูดคุยเกี่ยวกับหัวข้อนี้กำลังเกิดขึ้นในเซิร์ฟเวอร์ Discord ของ nick's funny device emporium