Lightning Talks Overflow @ 35C3
December 29th, 2018
@AlexAltea
Guest and host share the same architecture: However, we need to execute privileged instructions.
Interpreters are too slow.
Recompilers are too slow.
Solution:
Target: We want an hypervisor that is:
...and the winner is Intel HAXM!
Compatible OSs: Linux, Windows, MacOS, NetBSD. Compatible CPUs: Intel (...AMD SVM support planned).
Our contributions
Enough to run the PS4 kernel/userland software!
More at github.com/intel/haxm.
Orbital is based on QEMU, which allows us to:
AM32 CPU running Secure Modules written by Sony.
No publicly known exploitable vulnerabilities:
Essentially a black-box that handles: decryption, encryption, compression, verification, etc.
Question: How can SAMU be emulated *without keys*?
Primary focused on GFX MMIO registers. It describes the pipeline state can be modelled with Vulkan.
CP emulation: Consumes PM4 commands, which can trigger MMIO/memory accesses, draws, among other actions, which are mapped to Vulkan commands.
GCN emulation: GCN shader bytecode can be translated to SPIR-V consumed by the Vulkan drivers.
Marvell Armada SoC (ARM)
104D:908F Aeolia ACPI
104D:909E Aeolia GBE controller
104D:909F Aeolia AHCI
104D:90A0 Aeolia SDHCI
104D:90A1 Aeolia PCI Express glue
104D:90A2 Aeolia DMA controller
104D:90A3 Aeolia Memory (DDR3/SPM)
104D:90A4 Aeolia XHCI USB 3.0 controller
Most of those can be forwarded to QEMU devices.
Interesting is Aeolia PCIe glue device, which exposes registers to communicate with the Aeolia over ICC.
Although would be theoretically possible run the Aeolia software, we are simply high-level emulating it, i.e. reimplementing the handlers for each ICC query.
/mini-syscore.elf
runs successfully./SceSysAvControl.elf
runs successfully./mini-syscore.elf
detects an issue and goes to Safe Mode for recovery (supposed to happen!)./safemode.elf
runs successfully and waits for gamepad input, while submitting draw commands.Discussion at #orbital-emu
@ freenode!
Source at github.com/AlexAltea/orbital
News at twitter.com/AlexAltea
Shout-out to all PS4 devs and Orbital IRC/Discord people!