Signed Executables (eboot)
Wrapping raw ELF executables into signed SELF/fSELF containers runnable on target hardware.
On PlayStation platforms, executables do not run as raw ELFs; they must be enclosed in signed executable containers carrying segment digests, entry points, and privilege tags.
Recipe: Wrap an ELF into an
eboot.bin
selfish --input build/my_app.elf \
--target prospero \
--format eboot \
--output build/eboot.binWhat SELFish Does:
- ELF Validation: Inspects program headers
(
PT_LOAD) and verifies all segments are 4KB-aligned. - Container Header: Writes standard 32-byte header
with generation magic (
54 14 F5 EEfor Prospero). - Digest Blocks: Computes SHA-256 block digests across all loadable segments.
- Signature Metadata: Stamps fake RSA signatures accepted by jailbroken hardware loaders and Orbistoun.
Command Flags
--privilege <app|system|root>: Controls security privilege tier (defaults toapp).--sdk <version>: Sets expected platform SDK version stamp (e.g.0x12400000for FW 12.40).