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>
62 lines
4.9 KiB
Plaintext
62 lines
4.9 KiB
Plaintext
process=x64:True
|
|
endpoint=net.tcp://desktop-6jl3kko/ASBService/Default_ZB_MxDataProvider/IDataV2
|
|
tags=TestChildObject.TestInt
|
|
asb.stage=read-passphrase
|
|
asb.stage=registry-solution
|
|
asb.stage=registry-open-solution
|
|
asb.stage=registry-unprotect
|
|
asb.stage=registry-passphrase-ready
|
|
asb.stage=create-authenticator
|
|
asb.stage=authenticator-passphrase-bytes
|
|
asb.stage=authenticator-create-private
|
|
asb.stage=authenticator-private-ready
|
|
asb.stage=authenticator-modpow
|
|
asb.stage=authenticator-public-ready
|
|
asb.stage=authenticator-ready
|
|
asb.serializer.behaviors-replaced=10
|
|
asb.stage=open-factory
|
|
asb.stage=open-channel
|
|
asb.stage=connect
|
|
asb.stage=authenticate-me
|
|
asb.stage=connected
|
|
connect=True
|
|
register_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
register_status[0]=item:TestChildObject.TestInt id:18446462598732840961 id_specified:True error:0x00000000 error_name:Success error_specified:True status_count:0 status_payload_len:0 status:
|
|
read_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
read_status[0]=item:TestChildObject.TestInt id:18446462598732840961 id_specified:True error:0x00000000 error_name:Success error_specified:True status_count:0 status_payload_len:0 status:
|
|
read_value[0]=type:4 length:4 payload_len:4 preview:412
|
|
read_value[0].timestamp=2026-04-26T09:52:39.1020000-04:00 timestamp_specified=True
|
|
read_value[0].status_count=9 status_payload_len=9 status:OpcUaStatus:0|OpcUaVendorStatus:0|MxStatusCategory:751|MxStatusDetail:0|MxQuality:192
|
|
probe_invalid_targets tag=DefinitelyMissingObject.DefinitelyMissingAttribute
|
|
invalid_register_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
invalid_register_status[0]=item:DefinitelyMissingObject.DefinitelyMissingAttribute id:18446462598732840962 id_specified:True error:0x00000000 error_name:Success error_specified:True status_count:0 status_payload_len:0 status:
|
|
invalid_read_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
invalid_read_status[0]=item:DefinitelyMissingObject.DefinitelyMissingAttribute id:18446462598732840962 id_specified:True error:0x0000000A error_name:InvalidMonitoredItems error_specified:True status_count:0 status_payload_len:0 status:
|
|
invalid_read_value[0]=type:0 length:0 payload_len:0 preview:
|
|
invalid_read_value[0].timestamp=1600-12-31T19:00:00.0000000-05:00 timestamp_specified=True
|
|
invalid_read_value[0].status_count=9 status_payload_len=9 status:OpcUaStatus:32905|OpcUaVendorStatus:0|MxStatusCategory:750|MxStatusDetail:0|MxQuality:0
|
|
invalid_write_error=0x00000000 status=0x00000000 specific=0x00000000 handle=0xA5B2E001
|
|
invalid_write_status[0]=item:DefinitelyMissingObject.DefinitelyMissingAttribute id:18446462598732840963 id_specified:True error:0x0000001F error_name:OperationWouldBlock error_specified:True status_count:0 status_payload_len:0 status:
|
|
invalid_write_complete_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
invalid_write_complete_count=0
|
|
invalid_unregister_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
invalid_unregister_status[0]=item:DefinitelyMissingObject.DefinitelyMissingAttribute id:18446462598732840962 id_specified:True error:0x0000000B error_name:OperationFailed error_specified:True status_count:0 status_payload_len:0 status:
|
|
probe_wrong_type_write tag=TestChildObject.TestInt
|
|
wrong_type_write_error=0x00000000 status=0x00000000 specific=0x00000000 handle=0xA5B2E002
|
|
wrong_type_write_status[0]=item:TestChildObject.TestInt id:18446462598732840964 id_specified:True error:0x0000001F error_name:OperationWouldBlock error_specified:True status_count:0 status_payload_len:0 status:
|
|
wrong_type_write_complete_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
wrong_type_write_complete_count=0
|
|
probe_invalid_cleanup=True
|
|
invalid_cleanup_create_subscription_error=0x00000000 status=0x00000000 specific=0x00000000 subscription_id=8
|
|
invalid_cleanup_delete_monitored_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
invalid_cleanup_delete_monitored_status[0]=item:DefinitelyMissingObject.DefinitelyMissingAttribute id:18446744073709551615 id_specified:True error:0x0000000B error_name:OperationFailed error_specified:True status_count:0 status_payload_len:0 status:
|
|
invalid_cleanup_delete_subscription_error=0x0000000C status=0x00000020 specific=0x80020000 subscription_id=987654329
|
|
invalid_cleanup_delete_valid_subscription_error=0x00000000 status=0x00000000 specific=0x00000000 subscription_id=8
|
|
probe_empty_publish=True
|
|
empty_publish_create_subscription_error=0x00000000 status=0x00000000 specific=0x00000000 subscription_id=9
|
|
empty_publish[0]_error=0x00000020 status=0x00000000 specific=0x00000000
|
|
empty_publish[1]_error=0x00000020 status=0x00000000 specific=0x00000000
|
|
empty_publish_delete_subscription_error=0x00000000 status=0x00000000 specific=0x00000000 subscription_id=9
|
|
unregister_error=0x00000000 status=0x00000000 specific=0x00000000
|
|
unregister_status[0]=item:TestChildObject.TestInt id:18446462598732840961 id_specified:True error:0x0000000B error_name:OperationFailed error_specified:True status_count:0 status_payload_len:0 status:
|