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>
8.1 KiB
8.1 KiB
| 1 | caller_entry | caller_name | call_address | target |
|---|---|---|---|---|
| 2 | 0040105a | FUN_0040105a | 00401069 | memcpy |
| 3 | 00401073 | FUN_00401073 | 00401082 | memmove |
| 4 | 00401164 | FUN_00401164 | 00401173 | memcpy_s |
| 5 | 004011bb | FUN_004011bb | 004011ea | SysFreeString |
| 6 | 0040121e | FUN_0040121e | 00401220 | SysFreeString |
| 7 | 004013cc | FUN_004013cc | 00401477 | memset |
| 8 | 0040156c | FUN_0040156c | 0040159a | memset |
| 9 | 004016ad | FUN_004016ad | 004016c1 | SysAllocString |
| 10 | 004016e3 | FUN_004016e3 | 0040170b | SysAllocStringByteLen |
| 11 | 00401757 | FUN_00401757 | 00401761 | SysFreeString |
| 12 | 004018f9 | FUN_004018f9 | 00401908 | memmove |
| 13 | 00401913 | assign | 0040191f | _wmemset |
| 14 | 00401a08 | FUN_00401a08 | 00401a25 | memset |
| 15 | 00401a08 | FUN_00401a08 | 00401a54 | memset |
| 16 | 00401a81 | FUN_00401a81 | 00401aa1 | memset |
| 17 | 00401a81 | FUN_00401a81 | 00401ad0 | memset |
| 18 | 00401afd | FUN_00401afd | 00401b1d | memset |
| 19 | 00401afd | FUN_00401afd | 00401b4c | memset |
| 20 | 00401b79 | FUN_00401b79 | 00401b9d | memset |
| 21 | 00401cf3 | FUN_00401cf3 | 00401d08 | SysFreeString |
| 22 | 00401f21 | FID_conflict:_Chassign | 00401f54 | _wmemset |
| 23 | 004022e6 | FUN_004022e6 | 004022ff | SysAllocString |
| 24 | 00402316 | Copy | 0040232b | SysAllocStringByteLen |
| 25 | 00402333 | FUN_00402333 | 004023bd | SysAllocStringLen |
| 26 | 00402333 | FUN_00402333 | 0040240e | SysFreeString |
| 27 | 00402a05 | FUN_00402a05 | 00402a66 | memset |
| 28 | 00402a05 | FUN_00402a05 | 00402aa0 | SysAllocString |
| 29 | 00402a05 | FUN_00402a05 | 00402aca | SysFreeString |
| 30 | 00402ff7 | FID_conflict:_Tidy | 0040301a | memcpy |
| 31 | 004031df | FUN_004031df | 00403214 | memcpy |
| 32 | 0040331f | FUN_0040331f | 0040333a | memcpy |
| 33 | 004035ab | FUN_004035ab | 004035bc | SysFreeString |
| 34 | 004038c0 | FUN_004038c0 | 0040392b | SysFreeString |
| 35 | 004039f1 | FUN_004039f1 | 00403ab7 | SysFreeString |
| 36 | 00403b2b | FUN_00403b2b | 00403b80 | memmove |
| 37 | 00403bf6 | FUN_00403bf6 | 00403cdd | memcpy |
| 38 | 00403ed8 | FUN_00403ed8 | 00403f6d | memmove |
| 39 | 00403ed8 | FUN_00403ed8 | 00403faa | memmove |
| 40 | 00403ed8 | FUN_00403ed8 | 00403fd8 | memcpy |
| 41 | 004042ed | FUN_004042ed | 00404363 | memcpy |
| 42 | 00404389 | FUN_00404389 | 00404408 | memcpy |
| 43 | 0040442e | FID_conflict:assign | 00404486 | memcpy |
| 44 | 0040456d | FUN_0040456d | 004045e9 | memcpy |
| 45 | 00404910 | FUN_00404910 | 00404937 | memmove |
| 46 | 004055ef | FUN_004055ef | 00405684 | memset |
| 47 | 004055ef | FUN_004055ef | 004056f7 | SysAllocString |
| 48 | 004055ef | FUN_004055ef | 00405944 | SysAllocString |
| 49 | 004055ef | FUN_004055ef | 004059b0 | SysFreeString |
| 50 | 004055ef | FUN_004055ef | 004059cf | SysFreeString |
| 51 | 004055ef | FUN_004055ef | 00405a5d | SysFreeString |
| 52 | 004055ef | FUN_004055ef | 00405a68 | SysFreeString |
| 53 | 004055ef | FUN_004055ef | 00405a6f | SysFreeString |
| 54 | 00406af8 | FUN_00406af8 | 00406b00 | memset |
| 55 | 00406b61 | Attach | 00406b72 | SysFreeString |
| 56 | 00406b80 | FUN_00406b80 | 00406b85 | SysFreeString |
| 57 | 00406c6b | FUN_00406c6b | 00406c99 | SysFreeString |
| 58 | 00406c6b | FUN_00406c6b | 00406cb8 | SysFreeString |
| 59 | 00406cdc | FUN_00406cdc | 00406d0a | SysFreeString |
| 60 | 00406cdc | FUN_00406cdc | 00406d29 | SysFreeString |
| 61 | 00406e7e | FUN_00406e7e | 00406eba | memcpy_s |
| 62 | 00406eef | FUN_00406eef | 00406f88 | memcpy_s |
| 63 | 0040710e | FUN_0040710e | 0040713e | memcpy_s |
| 64 | 0040715b | FUN_0040715b | 00407196 | memcpy_s |
| 65 | 004075a9 | FUN_004075a9 | 004075cd | memcpy |
| 66 | 0040764d | FUN_0040764d | 0040765f | memcpy |
| 67 | 0040791d | FUN_0040791d | 00407998 | memcpy_s |
| 68 | 00407c9a | FUN_00407c9a | 00407cac | CoCreateInstance |
| 69 | 00407cfc | FUN_00407cfc | 00407d0e | CoCreateInstance |
| 70 | 00407d89 | FUN_00407d89 | 00407d9b | CoCreateInstance |
| 71 | 00407dc8 | FUN_00407dc8 | 00407dda | CoCreateInstance |
| 72 | 00407e1c | FUN_00407e1c | 00407e2e | CoCreateInstance |
| 73 | 0040957a | FUN_0040957a | 00409593 | memmove |
| 74 | 00409907 | FUN_00409907 | 00409919 | CoCreateInstance |
| 75 | 00409954 | FUN_00409954 | 00409968 | CoCreateInstance |
| 76 | 00409a29 | FUN_00409a29 | 00409a40 | memmove |
| 77 | 00409c9a | FUN_00409c9a | 00409ca8 | SysFreeString |
| 78 | 00409c9a | FUN_00409c9a | 00409cb7 | SysAllocString |
| 79 | 00409e36 | FUN_00409e36 | 00409e8f | memset |
| 80 | 00409e36 | FUN_00409e36 | 00409eec | SysAllocString |
| 81 | 0040b35e | FUN_0040b35e | 0040b39e | CoCreateInstance |
| 82 | 0040b3e8 | FUN_0040b3e8 | 0040b3fc | CoCreateInstance |
| 83 | 0040b4d1 | FUN_0040b4d1 | 0040b511 | CoCreateInstance |
| 84 | 0040b6e5 | FUN_0040b6e5 | 0040b6fc | memmove |
| 85 | 0040c008 | FUN_0040c008 | 0040c0d0 | memcpy_s |
| 86 | 0040c008 | FUN_0040c008 | 0040c103 | memset |
| 87 | 0040c008 | FUN_0040c008 | 0040c14f | SysAllocString |
| 88 | 0040df15 | FUN_0040df15 | 0040dfda | SysFreeString |
| 89 | 0040e2dd | FUN_0040e2dd | 0040e4b3 | SysAllocString |
| 90 | 0040e2dd | FUN_0040e2dd | 0040e52f | SysAllocString |
| 91 | 0040e2dd | FUN_0040e2dd | 0040e553 | SysFreeString |
| 92 | 0040e2dd | FUN_0040e2dd | 0040e5a7 | SysAllocString |
| 93 | 0040e2dd | FUN_0040e2dd | 0040e5d7 | SysFreeString |
| 94 | 0040e2dd | FUN_0040e2dd | 0040e652 | SysAllocString |
| 95 | 0040e2dd | FUN_0040e2dd | 0040e67a | SysFreeString |
| 96 | 0040eccf | FUN_0040eccf | 0040ecf2 | CoCreateInstance |
| 97 | 0040efa5 | FUN_0040efa5 | 0040f06f | memcpy_s |
| 98 | 0040efa5 | FUN_0040efa5 | 0040f07e | memcpy_s |
| 99 | 004113b6 | FUN_004113b6 | 004113cd | memset |
| 100 | 004113b6 | FUN_004113b6 | 004113fe | memset |
| 101 | 0041141c | FUN_0041141c | 00411521 | memcpy_s |
| 102 | 004115f2 | FUN_004115f2 | 00411873 | SysAllocString |
| 103 | 004115f2 | FUN_004115f2 | 00411abc | SysFreeString |
| 104 | 004115f2 | FUN_004115f2 | 00411ac5 | SysFreeString |
| 105 | 0041329c | FUN_0041329c | 0041331a | memcpy_s |
| 106 | 00413ce1 | FUN_00413ce1 | 00413d36 | memset |
| 107 | 00413ce1 | FUN_00413ce1 | 00413d8f | memset |
| 108 | 00414a22 | FUN_00414a22 | 00414b3a | SysFreeString |
| 109 | 00414a22 | FUN_00414a22 | 00414b43 | SysFreeString |
| 110 | 00414a22 | FUN_00414a22 | 00414b4c | SysFreeString |
| 111 | 00414a22 | FUN_00414a22 | 00414b55 | SysFreeString |
| 112 | 004154e3 | FUN_004154e3 | 004155af | memcpy_s |
| 113 | 004167bd | FUN_004167bd | 004167f1 | CoCreateInstance |
| 114 | 00416969 | FUN_00416969 | 004169b8 | CoCreateInstance |
| 115 | 00416be4 | FUN_00416be4 | 00416c33 | CoCreateInstance |
| 116 | 004174ac | FUN_004174ac | 00417633 | CoCreateInstance |
| 117 | 004174ac | FUN_004174ac | 0041774e | CoCreateInstance |
| 118 | 004177eb | FUN_004177eb | 0041799c | memcpy_s |
| 119 | 0041807f | FUN_0041807f | 004180f5 | memcpy_s |
| 120 | 00418f8a | FUN_00418f8a | 0041902a | SysFreeString |
| 121 | 00418f8a | FUN_00418f8a | 00419033 | SysFreeString |
| 122 | 0041c23e | FUN_0041c23e | 0041c463 | memset |
| 123 | 0041c62b | FUN_0041c62b | 0041c780 | memset |
| 124 | 0041d49e | FUN_0041d49e | 0041d534 | memcpy_s |
| 125 | 0041d49e | FUN_0041d49e | 0041d54e | memcpy_s |
| 126 | 0041e0c0 | FUN_0041e0c0 | 0041e1b4 | memcpy_s |
| 127 | 0041e0c0 | FUN_0041e0c0 | 0041e1c3 | memcpy_s |
| 128 | 0041e279 | FUN_0041e279 | 0041e36d | memcpy_s |
| 129 | 0041e279 | FUN_0041e279 | 0041e37c | memcpy_s |
| 130 | 0041eea5 | FUN_0041eea5 | 0041f105 | memcpy_s |
| 131 | 0041f885 | FUN_0041f885 | 0041f948 | CoCreateInstance |
| 132 | 0041f885 | FUN_0041f885 | 0041fa8a | CoCreateInstance |
| 133 | 004202f8 | FUN_004202f8 | 0042047e | memcpy |
| 134 | 00422cac | FUN_00422cac | 00422cc9 | memcpy_s |
| 135 | 00422f90 | FUN_00422f90 | 00422f9b | memset |
| 136 | 00423642 | FUN_00423642 | 00423658 | memset |
| 137 | 004242b7 | FUN_004242b7 | 00424468 | SysAllocString |
| 138 | 00424a7d | FUN_00424a7d | 00424a81 | AtlInternalQueryInterface |
| 139 | 00424b26 | _InternalQueryInterface | 00424b35 | AtlInternalQueryInterface |
| 140 | 00424b98 | QueryInterface | 00424ba9 | AtlInternalQueryInterface |
| 141 | 00424d7d | FUN_00424d7d | 00424d82 | QueryInterface |
| 142 | 00424d87 | FUN_00424d87 | 00424d8c | QueryInterface |
| 143 | 00424d91 | FUN_00424d91 | 00424d96 | QueryInterface |
| 144 | 00424d9b | FUN_00424d9b | 00424da0 | QueryInterface |
| 145 | 00424df1 | FUN_00424df1 | 00424e1c | CoCreateInstance |
| 146 | 0042524e | FUN_0042524e | 004252a9 | CoCreateInstance |
| 147 | 0042556c | FUN_0042556c | 0042562c | SysFreeString |
| 148 | 0042563c | FUN_0042563c | 00425766 | SysFreeString |
| 149 | 0042563c | FUN_0042563c | 00425785 | SysFreeString |
| 150 | 0042563c | FUN_0042563c | 004257d3 | SysFreeString |
| 151 | 0042563c | FUN_0042563c | 004257f6 | SysFreeString |
| 152 | 00425c49 | _InternalQueryInterface | 00425c58 | AtlInternalQueryInterface |
| 153 | 00425c90 | QueryInterface | 00425ca1 | AtlInternalQueryInterface |
| 154 | 00425e52 | _InternalQueryInterface | 00425e61 | AtlInternalQueryInterface |
| 155 | 00425ec2 | QueryInterface | 00425ed3 | AtlInternalQueryInterface |
| 156 | 00425efb | FUN_00425efb | 00425f00 | QueryInterface |
| 157 | 00425f05 | FUN_00425f05 | 00425f0a | QueryInterface |
| 158 | 00425f0f | FUN_00425f0f | 00425f14 | QueryInterface |
| 159 | 00425fc8 | FUN_00425fc8 | 00426005 | AtlInternalQueryInterface |
| 160 | 004265f7 | FUN_004265f7 | 00426626 | memset |
| 161 | 00427954 | FUN_00427954 | 00427991 | AtlInternalQueryInterface |
| 162 | 00427ea4 | FUN_00427ea4 | 00427f00 | FindResourceW |
| 163 | 00428795 | FUN_00428795 | 004287a5 | memset |
| 164 | 004287af | FUN_004287af | 004287dc | memset |
| 165 | 0042883e | FUN_0042883e | 00428850 | memset |
| 166 | 00428a32 | FUN_00428a32 | 00428a7c | memset |
| 167 | 00428a32 | FUN_00428a32 | 00428a88 | memset |
| 168 | 00428a32 | FUN_00428a32 | 00428a94 | memset |
| 169 | 00428a32 | FUN_00428a32 | 00428bcc | closesocket |
| 170 | 00428a32 | FUN_00428a32 | 00428c10 | closesocket |
| 171 | 00428a32 | FUN_00428a32 | 00428c99 | closesocket |
| 172 | 00428a32 | FUN_00428a32 | 00428dd1 | memcpy_s |
| 173 | 00428a32 | FUN_00428a32 | 00428e3f | memset |
| 174 | 00428a32 | FUN_00428a32 | 00428f2d | sendto |
| 175 | 00428a32 | FUN_00428a32 | 0042901f | memset |
| 176 | 00428a32 | FUN_00428a32 | 0042904e | recvfrom |
| 177 | 00428a32 | FUN_00428a32 | 004292af | closesocket |
| 178 | 00429390 | memmove_s | 004293a1 | memmove_s |
| 179 | 004293d9 | RemoveAt | 0042940a | memmove_s |
| 180 | 004294b0 | FUN_004294b0 | 004294bd | memset |
| 181 | 004296f0 | FUN_004296f0 | 004296fd | memset |
| 182 | 00429ca0 | _com_invoke_helper | 00429d64 | memset |
| 183 | 00429ca0 | _com_invoke_helper | 00429f48 | VariantInit |
| 184 | 00429ca0 | _com_invoke_helper | 00429fae | VariantClear |
| 185 | 00429ca0 | _com_invoke_helper | 0042a016 | VariantChangeType |
| 186 | 00429ca0 | _com_invoke_helper | 0042a026 | VariantClear |
| 187 | 00429ca0 | _com_invoke_helper | 0042a148 | VariantClear |
| 188 | 0042a390 | _com_handle_excepinfo | 0042a44f | SysFreeString |
| 189 | 0042a390 | _com_handle_excepinfo | 0042a459 | SysFreeString |
| 190 | 0042a390 | _com_handle_excepinfo | 0042a463 | SysFreeString |