D273
- The payload round-trip is a verb too:
./bin/obscene payload
The package round-trip has been a verb (deploy) since
D269; the payload round-trip - build the unsandboxed plain-ELF
shape, run it through elfldr, read back what it wrote - was still being
assembled by hand each time as
hw logs & ; hw send ; grep. That is the exact
ad-hoc-bash trap D269 closed for the package, and it bit twice: the
wsl.exe -- bash -lc '...' form mangles inline shell
variables under Git Bash, so the assembled command
silently ran with empty paths (a T=$HOME/...; "$T" became
"" hw send), capturing nothing, twice, before the cause was
seen.
So ./bin/obscene payload now owns it, backed by
scripts/payload-run.sh. It runs make payload,
then captures both channels a payload can report on and
reads whichever spoke: the send socket, when the net sink connects back
(a run that reached that far - the first full run on 12.40 came home
this way, 36,361 records to OBS|end), and the
raw system log otherwise (raw, not the OBS-filtered
report, because a crashing payload writes no
OBS| records but the kernel writes the fatal-signal lines
there - D233, and the finding). It sends the ELF to elfldr and says
which channel spoke, so a running payload's report and a crash are told
apart rather than both reading as "nothing arrived". Everything connects
out, so unlike deploy there is no Windows half; the script
re-enters WSL itself from a Windows shell. Flags:
--build-only, --seconds, --into,
--name, and -- GEN=5 CORPUS=0 to make.
The rule is the standing one (D269, and the recurring feedback on
ad-hoc scripts): a hardware capability is a bin/obscene
verb backed by one script, never bash reassembled at the call site -
because reassembling it is where the time goes.
Status: done.