Complete CLI for Nexsiz v0.1.0. Source of truth: src/main.rs (print_usage + parse_args) and nexsiz-command.md.

nexsiz [OPTIONS]

Target

FlagDescriptionDefault
-h, --host <ADDR>Target host127.0.0.1
-p, --port <PORT>Target port80
-P, --proto, --protocol <PROTO>Transport: tcp | udptcp
-t, --cmd, --target-cmd <CMD>Spawn target for crash monitor / snapshot
-T, --timeout, --timeout-ms <MS>Per-operation timeout (ms)500

Protocol & plugins

FlagDescription
-m, --model <NAME>ftp | smtp | http | generic | dns | mqtt | smb | binary-lp | binary-lp-le | path/to/model.json
-O, --oracle <NAME>default | strict | crash | hang | coverage | differential | sanitizer | diffsan | expanded
-i, --int, --integrity <NAME>default | http | ftp | smtp | binary | binary-le | null
-e, --enc, --encryptor <NAME>null | xor | chacha20 | tls-record | chacha20+tls | xor+tls
-k, --key, --enc-key <KEY>Encryptor key (hex 0x… or raw string)

Oracle notes

NameBehaviour
differentialMulti-dimensional behavioural divergence
sanitizerASan/UBSan patterns, length anomaly, null-byte, protocol violation
diffsandifferential + sanitizer + coverage (recommended deep campaigns)
expandeddiffsan + error oracle (maximum sensitivity)

Model inference (offline)

FlagDescription
--infer-modelInfer protocol model from -s seed directory and exit
--infer-out <PATH>Write inferred model (JSON with json-model, else human dump)
nexsiz --infer-model -s seeds/ftp -v
nexsiz --infer-model -s seeds/custom --infer-out models/inferred.json

Coverage

FlagDescriptionDefault
-C, --cov, --coverage <NAME>null | map | softwarenull
-S, --shm, --coverage-shm <ID>SHM id for Frida (/nexsiz-cov-<ID>)

Environment: NEXSIZ_SHM_ID.

Campaign control

FlagDescriptionDefault
-w, --workers <N>Worker threads#cores
-s, --seed, --seed-dir <DIR>Seed directoryseeds
-o, --out, --output-dir <DIR>Output directoryoutput
-c, --config <FILE>Load key=value config file
-Y, --rpc, --python-rpc <PATH>Unix socket for Python/RPC
-n, --no-reuseDisable connection reusereuse on
-r, --rng, --rng-seed <N>Deterministic RNG seed
-L, --libaflLibAFL path (needs --features libafl)native

Snapshot

FlagDescriptionDefault
-Z, --snapshotEnable process snapshot / restoreoff
--snapshot-backend <B>null | process | criuprocess when -Z
  • process — kill + respawn (requires -t)
  • criu — needs --features criu and criu on PATH

Execution limits

FlagDescription
-x, --execs, --max-execs <N>Stop after N executions
-R, --runtime, --max-runtime <SECS>Stop after SECS seconds

NXS

FlagDescriptionDefault
--nxs <EXPR>Set: default, crash, hang, safe, intrusive, external, or concrete idsdisabled
--nxs-path <DIRS>Extra colon-separated search paths
--nxs-cooldown <SECS>Cooldown per (event, crash, nxs)30
--nxs-max-per-event <N>Cap per event (0 = unlimited)0
--nxs-max-total <N>Cap total spawns (0 = unlimited)0
--nxs-listResolve set, print found/missing, exit

Env: NEXSIZ_NXS, NEXSIZ_NXS_PATH. Default events: crash, hang.

General

FlagDescription
-v, --verboseVerbose logging
-?, --helpShow help
-V, --versionShow version

Examples

# Basic FTP
nexsiz -h 127.0.0.1 -p 21 -m ftp -s seeds/ftp -o out/ftp -v

# DNS / MQTT / SMB
nexsiz -h 10.0.0.5 -p 53  -m dns  -P tcp -v
nexsiz -h 10.0.0.5 -p 1883 -m mqtt -v
nexsiz -h 10.0.0.5 -p 445  -m smb  -v

# NXS
nexsiz -h 127.0.0.1 -p 21 -m ftp --nxs default -v
nexsiz --nxs default --nxs-list

# Coverage + RPC
nexsiz -h 127.0.0.1 -p 21 -m ftp -C map --shm demo -Y /tmp/nexsiz.sock -v

# Snapshot
nexsiz -t "./target_daemon" -Z --snapshot-backend process -m ftp -v

# LibAFL (needs --features libafl)
nexsiz -h 127.0.0.1 -p 21 -m ftp -L -v