code wiki / _hdl_build / nx_fw_boot_proof_gate.nx

nx_fw_boot_proof_gate.nx source

↩ module page · 125 lines · 5561 B

1// nx_fw_boot_proof_gate.nx -- the never-brick CAPSTONE: the recovered firmware actually BOOTS. 2// 3// Closes the loop on a REAL artifact, EXECUTED in the sovereign emu (no qemu/laptop): 4// corrupt the real nx_boot_uefi.efi mid-flash -> golden-recover -> UNWRAP -> RUN in nx_emu_uefi 5// -> it prints NISHI (exit 0). 6// 7// REC : the corrupted flash auto-recovers from golden -> FW_RECOVERED 8// EXACT : the recovered payload is byte-identical to the .efi -> in-process compare 9// BOOTS : the recovered raw .efi EXECUTES + prints NISHI -> emu fork rc == 0 10// 11// GREEN only if all three hold. ONE emu fork+exec (the proven br_guarded execve idiom, blocking 12// wait): repeated fork+execs in a single process intermittently spawn-fail in this runtime, so 13// the emu runs ONCE on the recovered image. The emu's DISCRIMINATION (it rejects corrupt code: 14// "NOS-EXEC RED") is proven by nx_emu_uefi's own tamper-gate; the recovery rigor is the in-process 15// REC + byte-EXACT checks here + nx_fw_real_flash_gate. Evidence -> knowledge/status/fw_boot_proof_gate.log. 16// The emu must be pre-built: ./_offc/nx_sov_build_run.elf nx_emu_uefi 17// Sovereign: imports the safe-flash organ (-> nx_sha256) + nx_framed_append + nx_syscalls. license_tier: ORIGINAL 18import "nx_fw_safeflash.nx" 19import "nx_framed_append.nx" 20import "nx_syscalls.nx" 21 22const BP_LOG: *u8 = "knowledge/status/fw_boot_proof_gate.log" 23const BP_EFI: *u8 = "_offc/nx_boot_uefi.efi" 24const BP_EMU_ELF: *u8 = "/tmp/nx_emu_uefi.sov.elf" 25 26// fork+exec `elf a1` muted, BLOCKING wait; returns child exit / 128+sig / 125 spawn-fail. 27func bp_run(elf: *u8, a1: *u8) -> i64 { 28 let pid: i64 = sys_fork() 29 if pid < 0 { return 125 } 30 if pid == 0 { 31 let argv: *i64 = sys_mmap(32) as *i64 32 argv[0] = elf as i64; argv[1] = a1 as i64; argv[2] = 0 33 let envp: *i64 = sys_mmap(16) as *i64; envp[0] = 0 34 let dn: i64 = sys_openat_wr("/dev/null" as *u8, 0x1a4) 35 if dn >= 0 { sys_dup3(dn, 1, 0); sys_dup3(dn, 2, 0) } 36 sys_execve(elf, argv, envp) 37 sys_exit(127) 38 } 39 let st: *i64 = sys_mmap(16) as *i64 40 let w: i64 = sys_wait4(pid, st, 0) 41 if w < 0 { return 125 } 42 let sig: i64 = st[0] & 0x7f 43 if sig != 0 { return 128 + sig } 44 return (st[0] >> 8) & 0xff 45} 46 47func bp_row(name: *u8, pass: i64) -> i64 { 48 let buf: *u8 = sys_mmap(528) 49 var o: i64 = 0 50 o = fw_cat(buf, o, "FWBP row=\x00" as *u8) 51 o = fw_cat(buf, o, name) 52 if pass == 1 { o = fw_cat(buf, o, " verdict=PASS\x00" as *u8) } else { o = fw_cat(buf, o, " verdict=FAIL\x00" as *u8) } 53 buf[o] = 0 as u8 54 fa_appendz(BP_LOG, buf, 512) 55 fw_puts(" "); fw_puts(name) 56 if pass == 1 { fw_puts(" PASS\n") } else { fw_puts(" FAIL\n") } 57 return 0 58} 59 60func main() -> i64 { 61 fw_puts("fw-boot-proof gate (recovered firmware EXECUTES + boots in nx_emu_uefi)\n") 62 let epoch: i64 = sys_now_realtime_sec() 63 let pid: i64 = __syscall(39, 0, 0, 0, 0, 0, 0) 64 65 let lb: *i64 = sys_mmap(16) as *i64; lb[0] = 0 66 let efi: *u8 = fw_read(BP_EFI, lb) 67 let efi_len: i64 = lb[0] 68 var loaded: i64 = 0 69 if (efi as i64) != 0 { if efi_len > 100 { loaded = 1 } } 70 71 var rec: i64 = 0; var exact: i64 = 0; var boots: i64 = 0; var rc: i64 = 0 - 999 72 if loaded == 1 { 73 let g: *u8 = sys_mmap(256); let a: *u8 = sys_mmap(256); let nw: *u8 = sys_mmap(256); let ra: *u8 = sys_mmap(256) 74 fw_path(g, "/tmp/bpf_g." as *u8, epoch, pid); fw_path(a, "/tmp/bpf_a." as *u8, epoch, pid) 75 fw_path(nw, "/tmp/bpf_n." as *u8, epoch, pid); fw_path(ra, "/tmp/bpf_recovered_raw." as *u8, epoch, pid) 76 77 fw_make(g, efi, efi_len); fw_make(a, efi, efi_len); fw_make(nw, efi, efi_len) 78 79 // corrupt the flash -> sha256 catches it -> auto-restore from golden 80 let s2: i64 = fw_safe_flash(a, g, nw, 1) 81 if s2 == FW_RECOVERED { rec = 1 } 82 83 // unwrap the recovered active to a raw .efi 84 fw_unwrap(a, ra) 85 86 // EXACT: the recovered raw payload is byte-identical to the original real .efi 87 let alb: *i64 = sys_mmap(16) as *i64; alb[0] = 0 88 let abuf: *u8 = fw_read(ra, alb) 89 if (abuf as i64) != 0 { 90 if alb[0] == efi_len { 91 var same: i64 = 1; var i: i64 = 0 92 while i < efi_len { if abuf[i] != efi[i] { same = 0; i = efi_len } else { i = i + 1 } } 93 exact = same 94 } 95 } 96 97 // BOOTS: execute the recovered raw .efi in the sovereign emu -> rc==0 means it printed NISHI 98 rc = bp_run(BP_EMU_ELF, ra) 99 if rc == 0 { boots = 1 } 100 fw_puts(" recovered emu rc="); fw_putn(rc); fw_puts(" (0=boots NISHI); bytes="); fw_putn(efi_len); fw_puts("\n") 101 } 102 103 var passes: i64 = 0 104 if rec == 1 { passes = passes + 1 } 105 if exact == 1 { passes = passes + 1 } 106 if boots == 1 { passes = passes + 1 } 107 var green: i64 = 0 108 if passes == 3 { green = 1 } 109 110 bp_row("REC-corrupt-auto-recovered\x00" as *u8, rec) 111 bp_row("EXACT-recovered-bytes-real\x00" as *u8, exact) 112 bp_row("BOOTS-recovered-runs-NISHI\x00" as *u8, boots) 113 114 let vb: *u8 = sys_mmap(528) 115 var o: i64 = 0 116 o = fw_cat(vb, o, "FW-BOOT-PROOF verdict=\x00" as *u8) 117 if green == 1 { o = fw_cat(vb, o, "GREEN\x00" as *u8) } else { o = fw_cat(vb, o, "RED\x00" as *u8) } 118 o = fw_cat(vb, o, " passes=\x00" as *u8); o = fw_catn(vb, o, passes); o = fw_cat(vb, o, "/3 END\x00" as *u8) 119 vb[o] = 0 as u8 120 fa_appendz(BP_LOG, vb, 512) 121 fw_puts(vb); fw_puts("\n") 122 123 if green == 1 { return 0 } 124 return 1 125}