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>
10 KiB
10 KiB
| 1 | caller_entry | caller_name | call_address | target |
|---|---|---|---|---|
| 2 | 1000103c | FUN_1000103c | 10001062 | CoGetClassObject |
| 3 | 100010bf | FUN_100010bf | 100010df | SysFreeString |
| 4 | 100010bf | FUN_100010bf | 1000110a | SysAllocString |
| 5 | 1000111b | FUN_1000111b | 1000112d | SysFreeString |
| 6 | 100012e6 | FUN_100012e6 | 100012ef | SysFreeString |
| 7 | 100013b9 | FUN_100013b9 | 100013c8 | memcpy_s |
| 8 | 1000150e | FUN_1000150e | 10001510 | SysFreeString |
| 9 | 10001517 | FUN_10001517 | 1000151b | VariantInit |
| 10 | 10001525 | InternalCopy | 1000152f | VariantCopy |
| 11 | 100015aa | FUN_100015aa | 10001655 | memset |
| 12 | 1000174a | FUN_1000174a | 10001778 | memset |
| 13 | 10001885 | FUN_10001885 | 10001899 | SysAllocString |
| 14 | 100018bb | FUN_100018bb | 100018e3 | SysAllocStringByteLen |
| 15 | 10001903 | FUN_10001903 | 1000190d | SysFreeString |
| 16 | 10001923 | FUN_10001923 | 1000192a | VariantInit |
| 17 | 10001923 | FUN_10001923 | 10001934 | VariantCopy |
| 18 | 1000194b | FUN_1000194b | 10001968 | VariantChangeType |
| 19 | 10001d80 | FUN_10001d80 | 10001dbe | SysAllocStringLen |
| 20 | 10001d80 | FUN_10001d80 | 10001ddf | SysFreeString |
| 21 | 10001e0a | Copy | 10001e1f | SysAllocStringByteLen |
| 22 | 10001e27 | FUN_10001e27 | 10001eb1 | SysAllocStringLen |
| 23 | 10001e27 | FUN_10001e27 | 10001f02 | SysFreeString |
| 24 | 10001f45 | FUN_10001f45 | 10001f46 | VariantClear |
| 25 | 10001f4d | FUN_10001f4d | 10001f55 | VariantClear |
| 26 | 10001fad | FUN_10001fad | 10001fed | SysFreeString |
| 27 | 100023f0 | FUN_100023f0 | 10002416 | VariantClear |
| 28 | 10002439 | FUN_10002439 | 1000244d | VariantClear |
| 29 | 10002470 | FUN_10002470 | 1000247d | VariantClear |
| 30 | 100024a8 | FUN_100024a8 | 100024af | VariantClear |
| 31 | 100024a8 | FUN_100024a8 | 100024d9 | SysAllocString |
| 32 | 100024ed | FUN_100024ed | 100024fc | VariantClear |
| 33 | 10002b22 | FID_conflict:_Tidy | 10002b45 | memcpy |
| 34 | 10002d5c | FUN_10002d5c | 10002d77 | memcpy |
| 35 | 100032de | FUN_100032de | 10003333 | memmove |
| 36 | 1000339c | FUN_1000339c | 100034ad | memcpy |
| 37 | 100035e7 | FID_conflict:_Chassign | 1000361a | _wmemset |
| 38 | 10003cbd | FUN_10003cbd | 10003d33 | memcpy |
| 39 | 10003d59 | FID_conflict:assign | 10003db1 | memcpy |
| 40 | 10003e37 | FUN_10003e37 | 10003e73 | memcpy_s |
| 41 | 10003f60 | FUN_10003f60 | 10003feb | SafeArrayCreateEx |
| 42 | 10003f60 | FUN_10003f60 | 10004013 | SafeArrayGetLBound |
| 43 | 10003f60 | FUN_10003f60 | 10004023 | SafeArrayAccessData |
| 44 | 10003f60 | FUN_10003f60 | 10004058 | SafeArrayUnaccessData |
| 45 | 1000411e | FUN_1000411e | 10004146 | VariantInit |
| 46 | 1000411e | FUN_1000411e | 1000416d | VariantClear |
| 47 | 100043c4 | FUN_100043c4 | 100043eb | memmove |
| 48 | 10004419 | FUN_10004419 | 10004485 | SafeArrayGetDim |
| 49 | 10004419 | FUN_10004419 | 10004509 | SafeArrayAccessData |
| 50 | 10004419 | FUN_10004419 | 10004571 | SafeArrayUnaccessData |
| 51 | 10004419 | FUN_10004419 | 10004581 | SafeArrayAccessData |
| 52 | 10004419 | FUN_10004419 | 100045f2 | SafeArrayAccessData |
| 53 | 10004419 | FUN_10004419 | 10004660 | SafeArrayAccessData |
| 54 | 10004419 | FUN_10004419 | 1000470c | SafeArrayAccessData |
| 55 | 10004419 | FUN_10004419 | 1000472d | VariantInit |
| 56 | 10004419 | FUN_10004419 | 10004756 | VariantChangeType |
| 57 | 10004794 | FUN_10004794 | 1000480e | VariantClear |
| 58 | 10004794 | FUN_10004794 | 10004823 | SafeArrayUnaccessData |
| 59 | 100048df | FUN_100048df | 10004878 | VariantInit |
| 60 | 100048df | FUN_100048df | 100048a1 | VariantChangeType |
| 61 | 100048df | FUN_100048df | 10004959 | VariantClear |
| 62 | 10004a70 | FUN_10004a70 | 10004a0a | VariantInit |
| 63 | 10004a70 | FUN_10004a70 | 10004a32 | VariantChangeType |
| 64 | 10004a70 | FUN_10004a70 | 10004aea | VariantClear |
| 65 | 10004c31 | FUN_10004c31 | 10004bbf | VariantInit |
| 66 | 10004c31 | FUN_10004c31 | 10004bf3 | VariantChangeType |
| 67 | 10004c31 | FUN_10004c31 | 10004cab | VariantClear |
| 68 | 100051dc | FUN_100051dc | 10005176 | VariantInit |
| 69 | 100051dc | FUN_100051dc | 1000519e | VariantChangeType |
| 70 | 100051dc | FUN_100051dc | 10005256 | VariantClear |
| 71 | 10005491 | FUN_10005491 | 10005639 | VariantClear |
| 72 | 10005dd6 | FUN_10005dd6 | 10005deb | VariantInit |
| 73 | 10005dd6 | FUN_10005dd6 | 10005f0f | SafeArrayCreate |
| 74 | 10005dd6 | FUN_10005dd6 | 10005fc4 | SafeArrayPutElement |
| 75 | 10005dd6 | FUN_10005dd6 | 10005fce | VariantClear |
| 76 | 10005dd6 | FUN_10005dd6 | 10006068 | VariantClear |
| 77 | 100060a2 | FUN_100060a2 | 100060d3 | VariantInit |
| 78 | 100060a2 | FUN_100060a2 | 1000613e | VariantClear |
| 79 | 100060a2 | FUN_100060a2 | 100061ae | VariantClear |
| 80 | 100060a2 | FUN_100060a2 | 100061bc | VariantChangeType |
| 81 | 100060a2 | FUN_100060a2 | 10006216 | VariantClear |
| 82 | 100060a2 | FUN_100060a2 | 100062bf | VariantClear |
| 83 | 100060a2 | FUN_100060a2 | 10006379 | VariantClear |
| 84 | 100060a2 | FUN_100060a2 | 10006386 | SysFreeString |
| 85 | 100060a2 | FUN_100060a2 | 1000659c | SafeArrayAccessData |
| 86 | 100060a2 | FUN_100060a2 | 100065fe | SafeArrayUnaccessData |
| 87 | 100060a2 | FUN_100060a2 | 10006637 | VariantInit |
| 88 | 100060a2 | FUN_100060a2 | 100066a2 | VariantChangeType |
| 89 | 100060a2 | FUN_100060a2 | 100066ca | VariantClear |
| 90 | 1000689d | FUN_1000689d | 100068c8 | SysAllocStringByteLen |
| 91 | 100068e0 | FUN_100068e0 | 10006909 | memset |
| 92 | 100069ad | FUN_100069ad | 10006b19 | SafeArrayCreate |
| 93 | 100069ad | FUN_100069ad | 10006b48 | SafeArrayCreate |
| 94 | 100069ad | FUN_100069ad | 10006b75 | SafeArrayCreate |
| 95 | 100069ad | FUN_100069ad | 10006c50 | SafeArrayPutElement |
| 96 | 100069ad | FUN_100069ad | 10006c5d | SafeArrayPutElement |
| 97 | 100069ad | FUN_100069ad | 10006c6a | SafeArrayPutElement |
| 98 | 100069ad | FUN_100069ad | 10006cba | SafeArrayPutElement |
| 99 | 100069ad | FUN_100069ad | 10006cc7 | SafeArrayPutElement |
| 100 | 100069ad | FUN_100069ad | 10006cd4 | SafeArrayPutElement |
| 101 | 100069ad | FUN_100069ad | 10006d19 | SafeArrayPutElement |
| 102 | 100069ad | FUN_100069ad | 10006d26 | SafeArrayPutElement |
| 103 | 100069ad | FUN_100069ad | 10006d33 | SafeArrayPutElement |
| 104 | 100069ad | FUN_100069ad | 10006d3b | SysFreeString |
| 105 | 100069ad | FUN_100069ad | 10006d86 | SafeArrayPutElement |
| 106 | 100069ad | FUN_100069ad | 10006d93 | SafeArrayPutElement |
| 107 | 100069ad | FUN_100069ad | 10006da0 | SafeArrayPutElement |
| 108 | 100069ad | FUN_100069ad | 10006de7 | SafeArrayPutElement |
| 109 | 100069ad | FUN_100069ad | 10006df4 | SafeArrayPutElement |
| 110 | 100069ad | FUN_100069ad | 10006e01 | SafeArrayPutElement |
| 111 | 100069ad | FUN_100069ad | 10006e41 | SafeArrayPutElement |
| 112 | 100069ad | FUN_100069ad | 10006e4e | SafeArrayPutElement |
| 113 | 100069ad | FUN_100069ad | 10006e5b | SafeArrayPutElement |
| 114 | 10006f68 | FUN_10006f68 | 10006f85 | memcpy_s |
| 115 | 10007044 | FUN_10007044 | 1000705a | memset |
| 116 | 1000728f | Attach | 100072a0 | SysFreeString |
| 117 | 10007481 | FUN_10007481 | 1000748c | memset |
| 118 | 10007d60 | FUN_10007d60 | 10007d6f | memset |
| 119 | 10007d60 | FUN_10007d60 | 10007dc8 | memset |
| 120 | 100082c6 | QueryInterface | 100082d7 | AtlInternalQueryInterface |
| 121 | 10008354 | FUN_10008354 | 10008391 | AtlInternalQueryInterface |
| 122 | 10008723 | FUN_10008723 | 10008728 | QueryInterface |
| 123 | 1000874b | FUN_1000874b | 10008750 | QueryInterface |
| 124 | 100087d7 | FUN_100087d7 | 10008988 | SysAllocString |
| 125 | 10008abb | FUN_10008abb | 10008b46 | SysFreeString |
| 126 | 10008fd9 | FUN_10008fd9 | 10009004 | CoCreateInstance |
| 127 | 100095b6 | FUN_100095b6 | 10009611 | CoCreateInstance |
| 128 | 100098d4 | FUN_100098d4 | 10009994 | SysFreeString |
| 129 | 100099a4 | FUN_100099a4 | 10009ace | SysFreeString |
| 130 | 100099a4 | FUN_100099a4 | 10009aed | SysFreeString |
| 131 | 100099a4 | FUN_100099a4 | 10009b3b | SysFreeString |
| 132 | 100099a4 | FUN_100099a4 | 10009b5e | SysFreeString |
| 133 | 1000a081 | QueryInterface | 1000a092 | AtlInternalQueryInterface |
| 134 | 1000a642 | FUN_1000a642 | 1000a671 | memset |
| 135 | 1000b3b3 | QueryInterface | 1000b3c4 | AtlInternalQueryInterface |
| 136 | 1000b57f | QueryInterface | 1000b590 | AtlInternalQueryInterface |
| 137 | 1000bc0c | FUN_1000bc0c | 1000bc68 | FindResourceW |
| 138 | 1000bf4f | FUN_1000bf4f | 1000bfbb | AtlInternalQueryInterface |
| 139 | 1000bfd9 | FUN_1000bfd9 | 1000c0c9 | AtlInternalQueryInterface |
| 140 | 1000c0ec | FUN_1000c0ec | 1000c1dc | AtlInternalQueryInterface |
| 141 | 1000ca30 | FUN_1000ca30 | 1000ca38 | memset |
| 142 | 1000ca95 | FUN_1000ca95 | 1000cac4 | SysFreeString |
| 143 | 1000ce59 | FUN_1000ce59 | 1000ce76 | memset |
| 144 | 1000ce59 | FUN_1000ce59 | 1000cea5 | memset |
| 145 | 1000ced2 | FUN_1000ced2 | 1000cef2 | memset |
| 146 | 1000ced2 | FUN_1000ced2 | 1000cf21 | memset |
| 147 | 1000cf4e | FUN_1000cf4e | 1000cf6e | memset |
| 148 | 1000cf4e | FUN_1000cf4e | 1000cf9d | memset |
| 149 | 1000cfca | FUN_1000cfca | 1000cfee | memset |
| 150 | 1000d144 | FUN_1000d144 | 1000d159 | SysFreeString |
| 151 | 1000d263 | FUN_1000d263 | 1000d271 | SysFreeString |
| 152 | 1000d263 | FUN_1000d263 | 1000d280 | SysAllocString |
| 153 | 1000d2ee | FUN_1000d2ee | 1000d33c | SysFreeString |
| 154 | 1000d36d | FUN_1000d36d | 1000d3f5 | VariantChangeType |
| 155 | 1000d36d | FUN_1000d36d | 1000d46e | VariantChangeType |
| 156 | 1000d36d | FUN_1000d36d | 1000d488 | VariantClear |
| 157 | 1000d4d1 | FUN_1000d4d1 | 1000d528 | VariantClear |
| 158 | 1000d4d1 | FUN_1000d4d1 | 1000d53e | VariantChangeType |
| 159 | 1000d4d1 | FUN_1000d4d1 | 1000d596 | VariantChangeType |
| 160 | 1000dadd | FUN_1000dadd | 1000db3e | memset |
| 161 | 1000dadd | FUN_1000dadd | 1000db78 | SysAllocString |
| 162 | 1000dadd | FUN_1000dadd | 1000dba2 | SysFreeString |
| 163 | 1000dc80 | FUN_1000dc80 | 1000dc91 | SysFreeString |
| 164 | 1000dcbb | FUN_1000dcbb | 1000dd10 | SysAllocString |
| 165 | 1000e281 | FUN_1000e281 | 1000e2ec | SysFreeString |
| 166 | 1000e3b2 | FUN_1000e3b2 | 1000e478 | SysFreeString |
| 167 | 1000e4bf | FUN_1000e4bf | 1000e554 | memmove |
| 168 | 1000e4bf | FUN_1000e4bf | 1000e591 | memmove |
| 169 | 1000e4bf | FUN_1000e4bf | 1000e5bf | memcpy |
| 170 | 1000e686 | QueryInterface | 1000e697 | AtlInternalQueryInterface |
| 171 | 1000e6bf | FUN_1000e6bf | 1000e6c4 | QueryInterface |
| 172 | 1000efbf | FUN_1000efbf | 1000f03e | memcpy |
| 173 | 1000f0af | FUN_1000f0af | 1000f0fc | CreateClientConnection |
| 174 | 1000f52e | FUN_1000f52e | 1000f5aa | memcpy |
| 175 | 1000fb71 | FUN_1000fb71 | 1000fba4 | CoCreateInstance |
| 176 | 10010a84 | FUN_10010a84 | 10010ab6 | SysAllocStringLen |
| 177 | 10010a84 | FUN_10010a84 | 10010aea | memcpy_s |
| 178 | 10010a84 | FUN_10010a84 | 10010b10 | SysFreeString |
| 179 | 10010b1f | FUN_10010b1f | 10010b3d | memset |
| 180 | 10010b1f | FUN_10010b1f | 10010be8 | SysAllocString |
| 181 | 10010b1f | FUN_10010b1f | 10010c01 | SysAllocString |
| 182 | 10010b1f | FUN_10010b1f | 10010c1a | SysAllocString |
| 183 | 10010b1f | FUN_10010b1f | 10010c33 | SysAllocString |
| 184 | 10010b1f | FUN_10010b1f | 10010cb2 | SysFreeString |
| 185 | 10010b1f | FUN_10010b1f | 10010cc1 | SysAllocString |
| 186 | 10010b1f | FUN_10010b1f | 10010d3f | SysFreeString |
| 187 | 1001121d | FUN_1001121d | 100113cd | SysAllocString |
| 188 | 1001121d | FUN_1001121d | 100114a0 | SysFreeString |
| 189 | 1001150e | FUN_1001150e | 100115a3 | memset |
| 190 | 1001150e | FUN_1001150e | 10011616 | SysAllocString |
| 191 | 1001150e | FUN_1001150e | 10011863 | SysAllocString |
| 192 | 1001150e | FUN_1001150e | 100118cf | SysFreeString |
| 193 | 1001150e | FUN_1001150e | 100118ee | SysFreeString |
| 194 | 1001150e | FUN_1001150e | 1001197c | SysFreeString |
| 195 | 1001150e | FUN_1001150e | 10011987 | SysFreeString |
| 196 | 1001150e | FUN_1001150e | 1001198e | SysFreeString |
| 197 | 10011f9e | FUN_10011f9e | 100121af | CoCreateInstance |
| 198 | 1001399f | FUN_1001399f | 10013a38 | SysFreeString |
| 199 | 1001399f | FUN_1001399f | 10013bbd | SysFreeString |
| 200 | 1001399f | FUN_1001399f | 10013c27 | SysFreeString |
| 201 | 10014572 | FUN_10014572 | 10014653 | SysAllocString |
| 202 | 10014572 | FUN_10014572 | 10014716 | SysFreeString |
| 203 | 10014572 | FUN_10014572 | 10014769 | SysFreeString |
| 204 | 10014a4f | FUN_10014a4f | 10014b4e | SysFreeString |
| 205 | 1001556f | FUN_1001556f | 1001570f | CoCreateInstance |
| 206 | 1001556f | FUN_1001556f | 10015746 | SysFreeString |
| 207 | 1001556f | FUN_1001556f | 10015765 | SysAllocString |
| 208 | 1001556f | FUN_1001556f | 100157a5 | CoCreateInstance |
| 209 | 10015d08 | FUN_10015d08 | 10015d15 | VariantClear |
| 210 | 10015d66 | FUN_10015d66 | 10015d98 | VariantClear |
| 211 | 1001657f | FUN_1001657f | 100165fe | SysFreeString |
| 212 | 1001657f | FUN_1001657f | 10016689 | SysFreeString |
| 213 | 1001657f | FUN_1001657f | 100168f2 | VariantClear |
| 214 | 1001657f | FUN_1001657f | 100168ff | VariantClear |
| 215 | 1001657f | FUN_1001657f | 10016969 | SafeArrayDestroy |
| 216 | 1001657f | FUN_1001657f | 100169dc | VariantInit |
| 217 | 1001657f | FUN_1001657f | 100169e9 | VariantInit |
| 218 | 1001657f | FUN_1001657f | 100169f3 | VariantInit |
| 219 | 1001657f | FUN_1001657f | 10016a79 | VariantClear |
| 220 | 1001657f | FUN_1001657f | 10016a86 | VariantClear |
| 221 | 1001657f | FUN_1001657f | 10016a90 | VariantClear |
| 222 | 1001657f | FUN_1001657f | 10016ae7 | SafeArrayDestroy |
| 223 | 10016d1a | FUN_10016d1a | 10016d23 | SafeArrayDestroy |
| 224 | 10016f2e | FUN_10016f2e | 10016f3b | memset |
| 225 | 10016fef | FUN_10016fef | 10016ffc | memset |
| 226 | 10017150 | ConvertStringToBSTR | 10017281 | SysAllocString |
| 227 | 1001ab90 | FUN_1001ab90 | 1001ab95 | VariantClear |