Initial project state: .NET reference, design, Rust port (M0+M1), evidence
rust / build / test / clippy / fmt (push) Has been cancelled
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>
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
|
||||
------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
|
||||
read_capture DevTestObject.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestArea.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestArea2.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestChildObject.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_003.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_004.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_005.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_006.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_007.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_008.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_009.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_010.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_011.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_012.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_013.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_014.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_015.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_016.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_017.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_018.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_019.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture TestMachine_020.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_003.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_004.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_005.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_006.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_007.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_008.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_009.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_010.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DelmiaReceiver_020.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DEV.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DevAppEngine.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture DevPlatform.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture MESReceiver_001.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
read_capture MESReceiver_002.ScanState Boolean 1 0 NULL -1 Unknown 0 0 primitive
|
||||
candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
|
||||
------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
|
||||
array_read_capture DevTestObject.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestArea.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestArea2.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestChildObject.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_001.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_002.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_003.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_004.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_005.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_006.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_007.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_008.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_009.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_010.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_011.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_012.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_013.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_014.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_015.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_016.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_017.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_018.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_019.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_020.AlarmCntsBySeverityEnableShelved[] Integer 2 1 4 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestChildObject.TestBoolArray[] Boolean 1 1 10 1 Operate 0 0 dynamic
|
||||
array_read_capture TestChildObject.TestDateTimeArray[] Time 6 1 10 1 Operate 0 0 dynamic
|
||||
array_read_capture TestChildObject.TestDoubleArray[] Double 4 1 10 1 Operate 0 0 dynamic
|
||||
array_read_capture TestChildObject.TestFloatArray[] Float 3 1 10 1 Operate 0 0 dynamic
|
||||
array_read_capture TestChildObject.TestIntArray[] Integer 2 1 10 1 Operate 0 0 dynamic
|
||||
array_read_capture TestChildObject.TestStringArray[] String 5 1 10 1 Operate 0 0 dynamic
|
||||
array_read_capture DevTestObject.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestArea.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestArea2.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestChildObject.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_001.TestAlarm001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_001.TestAlarm002.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_001.TestAlarm003.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_002.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
array_read_capture TestMachine_002.TestAlarm001.AlarmCntsBySeverity[] Integer 2 1 13 -1 Unknown 0 0 primitive
|
||||
candidate_set full_tag_reference data_type_name mx_data_type is_array array_dimension security_classification security_name is_historized is_alarm attribute_source
|
||||
------------- ------------------ -------------- ------------ -------- --------------- ----------------------- ------------- ------------- -------- ----------------
|
||||
possible_write_capture TestChildObject.TestBool Boolean 1 0 NULL 1 Operate 0 0 dynamic
|
||||
possible_write_capture TestChildObject.TestDateTime Time 6 0 NULL 1 Operate 0 0 dynamic
|
||||
possible_write_capture TestChildObject.TestDouble Double 4 0 NULL 1 Operate 0 0 dynamic
|
||||
possible_write_capture TestChildObject.TestFloat Float 3 0 NULL 1 Operate 0 0 dynamic
|
||||
possible_write_capture TestChildObject.TestInt Integer 2 0 NULL 1 Operate 0 0 dynamic
|
||||
possible_write_capture TestChildObject.TestString String 5 0 NULL 1 Operate 0 0 dynamic
|
||||
possible_write_capture TestMachine_001.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_002.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_003.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_004.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_005.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_006.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_007.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_008.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_009.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_010.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_011.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_012.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_013.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_014.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_015.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_016.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_017.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_018.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_019.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestMachine_020.TestHistoryValue Integer 2 0 NULL 1 Operate 1 0 dynamic
|
||||
possible_write_capture TestArea.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestArea.PlantState String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestArea2.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestArea2.PlantState String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestChildObject.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm001.AckMsg String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm001.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm001.AlarmShelveCmd String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm001.DescAttrName String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm002.AckMsg String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm002.AlarmInhibit Boolean 1 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm002.AlarmShelveCmd String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
possible_write_capture TestMachine_001.TestAlarm002.DescAttrName String 5 0 NULL 0 FreeAccess 0 0 primitive
|
||||
|
Reference in New Issue
Block a user