UPX-packed programs keep their delay import directory in a section with no
data in the file (UPX0); the unpacker writes it after the program starts.
The startup scan added in cea6ca7 reads every module's delay table, so
file_span throws "PE RVA has no file-backed data" and the program exits
before it runs. 64-bit programs and DLLs hit the same check through
validate_native_image.
Treat a table that lies entirely in the virtual-only part of a section as
not present in the file yet. A table that starts in file data and runs past
it is still rejected.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: diagnosis, patch and test drafted with an AI assistant from a failing installer run; I reviewed, tested and verified them
Co-authored-by: william <[email protected]>
A console program started from a terminal gets it as its console without --stdio=inherit. CreateProcess runs .bat and .cmd
files through cmd /c, as Windows does. The console code pages start as UTF-8, since Raven has no table for code page 437.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the subsystem check, the batch-file launch, a first command processor from Microsoft's public cmd documentation and its test.