nishi_spawn_probe.nx
buildroot/runtime/nishi_spawn_probe.nx
about
nishi_spawn_probe.nx -- verify the GUI keystone's process-spawn imports (IAT slots 20-23):
CreateFileA, CreateProcessA, WaitForSingleObject, CloseHandle + generic ReadFile (19).
Spawns nishi_fetch.exe with stdout -> a temp file, waits, reads the file back, dumps it.
If this prints example.com's rendered text, in-process navigation is unblocked.
dependencies 1 imports · 0 importers
imports: nx_syscalls.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 10 | const W_ReadFile: i64 = 19 |
| 11 | const W_CreateFileA: i64 = 20 |
| 12 | const W_CreateProcessA: i64 = 21 |
| 13 | const W_WaitForSingleObject: i64 = 22 |
| 14 | const W_CloseHandle: i64 = 23 |
functions
| 8 | func win32(id: i64, args: *i64) -> i64 { return id } |
| 16 | func w32(p: *u8, o: i64, v: i64) -> i64 called by 1: wp |
| 19 | func wp(p: *u8, o: i64, v: i64) -> i64 { w32(p,o,v); w32(p,o+4, v / 4294967296); return 0 } calls 1: w32 |
| 20 | func rd32(p: *u8, o: i64) -> i64 { return (p[o]&0xff)|((p[o+1]&0xff)<<8)|((p[o+2]&0xff)<<16)|((p[o+3]&0xff)<<24) } called by 1: rp |
| 21 | func rp(p: *u8, o: i64) -> i64 { return rd32(p,o) | (rd32(p,o+4) * 4294967296) } calls 1: rd32 |
| 22 | func scopy(dst: *u8, o: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { dst[o+i]=s[i]; i=i+1 } return o+i } called by 1: main |
| 24 | func main() -> i64 |