fe2a6db786
rust / build / test / clippy / fmt (push) Has been cancelled
Layout:
- src/ .NET 10 x64 reference: MxNativeCodec, MxNativeClient,
MxAsbClient, probes, tests, harnesses. Executable spec.
- design/ Architectural plan for the Rust port (M0–M6), error
model, protocol invariants, risks (R1–R16), adversarial
review log (review.md).
- rust/ Rust workspace. M0 skeleton + M1 codec parity.
mxaccess-codec: 215 unit tests + 2 cross-implementation
parity tests (byte-identical against .NET reference).
Other crates are M0 stubs awaiting M2+.
- captures/ Frida + netsh + pcap evidence per CLAUDE.md
("captures are evidence, not throwaway logs").
- analysis/ Decompiled C# (frida/proxy/decompiled-*),
Ghidra exports for native DLLs (`exports/` only —
working state at `projects/` and AVEVA's input
binaries at `input/` are gitignored).
- docs/ Reverse-engineering reference docs.
- tools/ Setup-LiveProbeEnv.ps1 (Infisical credential fetcher),
Compute-Crc.ps1 (.NET parity helper).
- .github/workflows/ Rust CI: fmt + build + test + clippy on Windows.
- LICENSE MIT (Joseph Doherty, 2026).
Verified:
- cargo test --workspace → 217 passed (215 unit + 2 .NET parity), 0 failed
- cargo clippy --workspace -- -D warnings → clean
- cargo fmt --all -- --check → clean
- cargo publish --dry-run -p mxaccess-codec → packages cleanly
Excluded from history (see .gitignore):
- **/bin, **/obj, **/target — build artifacts
- analysis/ghidra/projects/ — Ghidra working state (regenerable)
- analysis/ghidra/input/ — AVEVA proprietary DLLs (vendor IP)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.9 KiB
4.9 KiB
| 1 | 4470 | 10.341148800 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13297 Ack=12024 Win=10001 Len=12 |
|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 4471 | 10.341240900 | 2 | 127.0.0.1 | 57470 | 127.0.0.1 | 57477 | 12 | TCP | 57470 → 57477 [PSH, ACK] Seq=287 Ack=319 Win=10110 Len=12 |
| 3 | 4474 | 10.343385000 | 3 | 127.0.0.1 | 57608 | 127.0.0.1 | 57631 | 12 | TCP | 57608 → 57631 [PSH, ACK] Seq=5128 Ack=4124 Win=20738 Len=12 |
| 4 | 4475 | 10.343431000 | 1 | 127.0.0.1 | 57684 | 127.0.0.1 | 57745 | 12 | TCP | 57684 → 57745 [PSH, ACK] Seq=241 Ack=253 Win=10057 Len=12 |
| 5 | 4478 | 10.345373600 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12024 Ack=13309 Win=10071 Len=12 |
| 6 | 4480 | 10.345547600 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 26 | TCP | 57415 → 57433 [PSH, ACK] Seq=12036 Ack=13309 Win=10071 Len=26 |
| 7 | 4482 | 10.345839700 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13309 Ack=12062 Win=10001 Len=12 |
| 8 | 4484 | 10.346310800 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13321 Ack=12062 Win=10001 Len=12 |
| 9 | 4486 | 10.346584100 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 22 | TCP | 57433 → 57415 [PSH, ACK] Seq=13333 Ack=12062 Win=10001 Len=22 |
| 10 | 4488 | 10.347004000 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12062 Ack=13355 Win=10071 Len=12 |
| 11 | 4490 | 10.381730000 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12074 Ack=13355 Win=10071 Len=12 |
| 12 | 4492 | 10.381933200 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 101 | TCP | 57415 → 57433 [PSH, ACK] Seq=12086 Ack=13355 Win=10071 Len=101 |
| 13 | 4494 | 10.382269500 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13355 Ack=12187 Win=10001 Len=12 |
| 14 | 4496 | 10.383301400 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13367 Ack=12187 Win=10001 Len=12 |
| 15 | 4498 | 10.383494800 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 52 | TCP | 57433 → 57415 [PSH, ACK] Seq=13379 Ack=12187 Win=10001 Len=52 |
| 16 | 4500 | 10.383890000 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12187 Ack=13431 Win=10071 Len=12 |
| 17 | 4502 | 10.384693300 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12199 Ack=13431 Win=10071 Len=12 |
| 18 | 4504 | 10.384852700 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 30 | TCP | 57415 → 57433 [PSH, ACK] Seq=12211 Ack=13431 Win=10071 Len=30 |
| 19 | 4506 | 10.385149200 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13431 Ack=12241 Win=10000 Len=12 |
| 20 | 4508 | 10.385528800 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13443 Ack=12241 Win=10000 Len=12 |
| 21 | 4510 | 10.385724300 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 26 | TCP | 57433 → 57415 [PSH, ACK] Seq=13455 Ack=12241 Win=10000 Len=26 |
| 22 | 4512 | 10.385987500 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12241 Ack=13481 Win=10071 Len=12 |
| 23 | 4514 | 10.424025000 | 6 | 127.0.0.1 | 57747 | 127.0.0.1 | 57485 | 12 | TCP | 57747 → 57485 [PSH, ACK] Seq=241 Ack=241 Win=10072 Len=12 |
| 24 | 4515 | 10.424109500 | 5 | 127.0.0.1 | 57746 | 127.0.0.1 | 57484 | 12 | TCP | 57746 → 57484 [PSH, ACK] Seq=241 Ack=241 Win=10069 Len=12 |
| 25 | 4518 | 10.448378600 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12253 Ack=13481 Win=10071 Len=12 |
| 26 | 4520 | 10.448545500 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 26 | TCP | 57415 → 57433 [PSH, ACK] Seq=12265 Ack=13481 Win=10071 Len=26 |
| 27 | 4522 | 10.448845700 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13481 Ack=12291 Win=10000 Len=12 |
| 28 | 4524 | 10.449402600 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13493 Ack=12291 Win=10000 Len=12 |
| 29 | 4526 | 10.449552700 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 22 | TCP | 57433 → 57415 [PSH, ACK] Seq=13505 Ack=12291 Win=10000 Len=22 |
| 30 | 4528 | 10.449829400 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12291 Ack=13527 Win=10071 Len=12 |
| 31 | 4530 | 10.453342700 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12303 Ack=13527 Win=10071 Len=12 |
| 32 | 4532 | 10.453456600 | 5 | 127.0.0.1 | 57484 | 127.0.0.1 | 57746 | 12 | TCP | 57484 → 57746 [PSH, ACK] Seq=241 Ack=253 Win=10062 Len=12 |
| 33 | 4534 | 10.484208500 | 6 | 127.0.0.1 | 57485 | 127.0.0.1 | 57747 | 12 | TCP | 57485 → 57747 [PSH, ACK] Seq=241 Ack=253 Win=10067 Len=12 |
| 34 | 4536 | 10.529537900 | 1 | 127.0.0.1 | 57745 | 127.0.0.1 | 57684 | 12 | TCP | 57745 → 57684 [PSH, ACK] Seq=253 Ack=253 Win=10055 Len=12 |
| 35 | 4538 | 10.543558600 | 2 | 127.0.0.1 | 57477 | 127.0.0.1 | 57470 | 12 | TCP | 57477 → 57470 [PSH, ACK] Seq=319 Ack=299 Win=10133 Len=12 |
| 36 | 4540 | 10.551539000 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12315 Ack=13527 Win=10071 Len=12 |
| 37 | 4542 | 10.551708200 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 26 | TCP | 57415 → 57433 [PSH, ACK] Seq=12327 Ack=13527 Win=10071 Len=26 |
| 38 | 4544 | 10.552097200 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13527 Ack=12353 Win=10000 Len=12 |
| 39 | 4546 | 10.552656900 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 12 | TCP | 57433 → 57415 [PSH, ACK] Seq=13539 Ack=12353 Win=10000 Len=12 |
| 40 | 4548 | 10.552948100 | 0 | 127.0.0.1 | 57433 | 127.0.0.1 | 57415 | 22 | TCP | 57433 → 57415 [PSH, ACK] Seq=13551 Ack=12353 Win=10000 Len=22 |
| 41 | 4550 | 10.553274800 | 0 | 127.0.0.1 | 57415 | 127.0.0.1 | 57433 | 12 | TCP | 57415 → 57433 [PSH, ACK] Seq=12353 Ack=13573 Win=10070 Len=12 |