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>
11 KiB
11 KiB
| 1 | entry | name | signature | body_size | call_count | interesting_calls |
|---|---|---|---|---|---|---|
| 2 | 10001000 | DllGetClassObject | HRESULT DllGetClassObject(IID * rclsid, IID * riid, LPVOID * ppv) | 57 | 1 | NdrDllGetClassObject |
| 3 | 10001040 | DllCanUnloadNow | HRESULT DllCanUnloadNow(void) | 12 | 1 | NdrDllCanUnloadNow |
| 4 | 10001050 | FUN_10001050 | undefined FUN_10001050(IRpcStubBuffer * param_1) | 21 | 1 | NdrCStdStubBuffer_Release |
| 5 | 10001070 | FUN_10001070 | undefined4 FUN_10001070(HMODULE param_1, int param_2) | 33 | 1 | |
| 6 | 100010a0 | DllRegisterServer | undefined DllRegisterServer(void) | 59 | 1 | NdrDllRegisterProxy |
| 7 | 100010e0 | DllUnregisterServer | undefined DllUnregisterServer(void) | 59 | 1 | NdrDllUnregisterProxy |
| 8 | 1000111c | NdrCStdStubBuffer_Release | ULONG NdrCStdStubBuffer_Release(IRpcStubBuffer * This, IPSFactoryBuffer * pPSF) | 6 | 0 | |
| 9 | 1000118e | __CRT_INIT@12 | undefined4 __CRT_INIT@12(undefined4 param_1, int param_2, int param_3) | 332 | 23 | |
| 10 | 10001267 | FUN_10001267 | undefined FUN_10001267(void) | 20 | 1 | |
| 11 | 100012f2 | ___DllMainCRTStartup | int ___DllMainCRTStartup(int param_1, int param_2, HMODULE param_3) | 226 | 4 | |
| 12 | 100013e8 | entry | undefined entry(HMODULE param_1, int param_2, int param_3) | 35 | 2 | |
| 13 | 1000140b | FUN_1000140b | undefined FUN_1000140b(void) | 9 | 1 | |
| 14 | 1000141d | ___set_flsgetvalue | LPVOID ___set_flsgetvalue(void) | 52 | 3 | |
| 15 | 10001451 | __mtterm | void __mtterm(void) | 61 | 3 | |
| 16 | 1000148e | __initptd | void __initptd(_ptiddata _Ptd, pthreadlocinfo _Locale) | 156 | 8 | |
| 17 | 10001530 | FUN_10001530 | undefined FUN_10001530(void) | 9 | 1 | |
| 18 | 10001539 | FUN_10001539 | undefined FUN_10001539(void) | 9 | 1 | |
| 19 | 10001542 | __getptd_noexit | _ptiddata __getptd_noexit(void) | 121 | 8 | |
| 20 | 100015bb | __getptd | _ptiddata __getptd(void) | 26 | 2 | |
| 21 | 100015d5 | __freefls@4 | undefined __freefls@4(void * param_1) | 279 | 9 | |
| 22 | 100016ef | FUN_100016ef | undefined FUN_100016ef(void) | 9 | 1 | |
| 23 | 100016fb | FUN_100016fb | undefined FUN_100016fb(void) | 9 | 1 | |
| 24 | 10001704 | __freeptd | void __freeptd(_ptiddata _Ptd) | 110 | 4 | |
| 25 | 10001772 | __mtinit | int __mtinit(void) | 379 | 12 | |
| 26 | 100018ed | _free | void _free(void * _Memory) | 58 | 4 | |
| 27 | 10001927 | __malloc_crt | void * __malloc_crt(size_t _Size) | 69 | 2 | |
| 28 | 1000196c | __calloc_crt | void * __calloc_crt(size_t _Count, size_t _Size) | 76 | 2 | |
| 29 | 100019b8 | __realloc_crt | void * __realloc_crt(void * _Ptr, size_t _NewSize) | 78 | 2 | |
| 30 | 10001a06 | ___crtCorExitProcess | void ___crtCorExitProcess(int param_1) | 43 | 2 | |
| 31 | 10001a31 | ___crtExitProcess | void ___crtExitProcess(int param_1) | 23 | 2 | |
| 32 | 10001a49 | FUN_10001a49 | undefined FUN_10001a49(void) | 9 | 1 | |
| 33 | 10001a52 | FUN_10001a52 | undefined FUN_10001a52(void) | 9 | 1 | |
| 34 | 10001a5b | __init_pointers | void __init_pointers(void) | 51 | 7 | |
| 35 | 10001a8e | __initterm_e | undefined __initterm_e(undefined4 * param_1, undefined4 * param_2) | 36 | 0 | |
| 36 | 10001ab2 | __cinit | int __cinit(int param_1) | 151 | 4 | |
| 37 | 10001b49 | doexit | undefined doexit(int param_1, int param_2, int param_3) | 305 | 8 | |
| 38 | 10001c74 | FUN_10001c74 | undefined FUN_10001c74(void) | 15 | 1 | |
| 39 | 10001c89 | __exit | void __exit(int _Code) | 22 | 1 | |
| 40 | 10001c9f | __cexit | void __cexit(void) | 15 | 1 | |
| 41 | 10001cae | __amsg_exit | void __amsg_exit(int param_1) | 29 | 3 | |
| 42 | 10001ccc | __ioinit | int __ioinit(void) | 581 | 6 | |
| 43 | 10001f11 | __ioterm | void __ioterm(void) | 83 | 2 | |
| 44 | 10001f64 | __setenvp | int __setenvp(void) | 219 | 6 | |
| 45 | 10002040 | parse_cmdline | undefined parse_cmdline(undefined4 * param_1, byte * param_2, int * param_3) | 410 | 1 | |
| 46 | 100021da | __setargv | int __setargv(void) | 187 | 4 | |
| 47 | 10002295 | ___crtGetEnvironmentStringsA | LPVOID ___crtGetEnvironmentStringsA(void) | 151 | 5 | |
| 48 | 1000232c | __RTC_Initialize | undefined __RTC_Initialize(void) | 38 | 0 | |
| 49 | 10002378 | __heap_init | int __heap_init(void) | 30 | 1 | |
| 50 | 10002396 | __heap_term | void __heap_term(void) | 20 | 1 | |
| 51 | 100023b0 | __SEH_prolog4 | undefined __SEH_prolog4(undefined4 param_1, int param_2) | 69 | 0 | |
| 52 | 100023f5 | __SEH_epilog4 | undefined __SEH_epilog4(void) | 20 | 0 | |
| 53 | 10002410 | __except_handler4 | undefined4 __except_handler4(PEXCEPTION_RECORD param_1, PVOID param_2, undefined4 param_3) | 399 | 6 | |
| 54 | 1000259f | __XcptFilter | int __XcptFilter(ulong _ExceptionNum, _EXCEPTION_POINTERS * _ExceptionPtr) | 330 | 1 | |
| 55 | 100026e9 | ___CppXcptFilter | int ___CppXcptFilter(ulong _ExceptionNum, _EXCEPTION_POINTERS * _ExceptionPtr) | 32 | 1 | |
| 56 | 10002709 | ___security_init_cookie | void ___security_init_cookie(void) | 155 | 5 | |
| 57 | 100027a4 | __mtinitlocks | int __mtinitlocks(void) | 74 | 1 | |
| 58 | 100027ee | __mtdeletelocks | void __mtdeletelocks(void) | 87 | 2 | |
| 59 | 10002845 | FUN_10002845 | undefined FUN_10002845(int param_1) | 23 | 1 | |
| 60 | 1000285c | __mtinitlocknum | int __mtinitlocknum(int _LockNum) | 185 | 11 | |
| 61 | 10002915 | FUN_10002915 | undefined FUN_10002915(void) | 9 | 1 | |
| 62 | 1000291e | __lock | void __lock(int _File) | 51 | 3 | |
| 63 | 10002951 | ___addlocaleref | undefined ___addlocaleref(LONG * param_1) | 143 | 1 | |
| 64 | 100029e0 | ___removelocaleref | LONG * ___removelocaleref(LONG * param_1) | 153 | 1 | |
| 65 | 10002a79 | ___freetlocinfo | undefined ___freetlocinfo(void * param_1) | 331 | 4 | |
| 66 | 10002bc4 | __updatetlocinfoEx_nolock | LONG * __updatetlocinfoEx_nolock(undefined4 * param_1, LONG * param_2) | 77 | 3 | |
| 67 | 10002c11 | ___updatetlocinfo | pthreadlocinfo ___updatetlocinfo(void) | 109 | 7 | |
| 68 | 10002c7e | FUN_10002c7e | undefined FUN_10002c7e(void) | 12 | 1 | |
| 69 | 10002c8a | CPtoLCID | int CPtoLCID(int param_1) | 47 | 0 | |
| 70 | 10002cb9 | setSBCS | void setSBCS(threadmbcinfostruct * param_1) | 100 | 1 | _memset |
| 71 | 10002d1d | setSBUpLow | void setSBUpLow(threadmbcinfostruct * param_1) | 400 | 5 | _memset |
| 72 | 10002ead | ___updatetmbcinfo | pthreadmbcinfo ___updatetmbcinfo(void) | 152 | 9 | |
| 73 | 10002f48 | FUN_10002f48 | undefined FUN_10002f48(void) | 9 | 1 | |
| 74 | 10002f51 | _LocaleUpdate | undefined _LocaleUpdate(_LocaleUpdate * this, localeinfo_struct * param_1) | 135 | 3 | |
| 75 | 10002fd8 | getSystemCP | int getSystemCP(int param_1) | 124 | 3 | |
| 76 | 10003054 | __setmbcp_nolock | undefined __setmbcp_nolock(undefined4 param_1, int param_2) | 489 | 8 | _memset |
| 77 | 1000323d | __setmbcp | int __setmbcp(int _CodePage) | 399 | 13 | |
| 78 | 1000339e | FUN_1000339e | undefined FUN_1000339e(void) | 9 | 1 | |
| 79 | 100033d7 | ___initmbctable | undefined4 ___initmbctable(void) | 30 | 1 | |
| 80 | 100033f5 | __get_errno_from_oserr | int __get_errno_from_oserr(ulong param_1) | 66 | 0 | |
| 81 | 10003437 | __errno | int * __errno(void) | 19 | 1 | |
| 82 | 1000344a | _malloc | void * _malloc(size_t _Size) | 148 | 6 | |
| 83 | 100034de | __calloc_impl | LPVOID __calloc_impl(uint param_1, uint param_2, undefined4 * param_3) | 130 | 3 | |
| 84 | 10003560 | _realloc | void * _realloc(void * _Memory, size_t _NewSize) | 173 | 7 | |
| 85 | 10003646 | FUN_10003646 | undefined FUN_10003646(void) | 17 | 1 | |
| 86 | 10003657 | __initp_misc_winsig | undefined __initp_misc_winsig(undefined4 param_1) | 30 | 0 | |
| 87 | 10003675 | siglookup | uint siglookup(uint param_1) | 55 | 0 | |
| 88 | 100036ac | FUN_100036ac | undefined FUN_100036ac(void) | 13 | 1 | |
| 89 | 100036b9 | _raise | int _raise(int _SigNum) | 398 | 11 | |
| 90 | 10003820 | FUN_10003820 | undefined FUN_10003820(void) | 15 | 1 | |
| 91 | 1000385c | FUN_1000385c | undefined FUN_1000385c(undefined4 param_1) | 15 | 0 | |
| 92 | 1000386b | FUN_1000386b | undefined FUN_1000386b(undefined4 param_1) | 15 | 0 | |
| 93 | 1000387a | FUN_1000387a | undefined FUN_1000387a(undefined4 param_1) | 15 | 0 | |
| 94 | 10003889 | __call_reportfault | void __call_reportfault(int nDbgHookCode, DWORD dwExceptionCode, DWORD dwExceptionFlags) | 297 | 6 | _memset |
| 95 | 100039b2 | __invoke_watson | void __invoke_watson(wchar_t * param_1, wchar_t * param_2, wchar_t * param_3, uint param_4, uintptr_t param_5) | 37 | 3 | |
| 96 | 100039d7 | __invalid_parameter | undefined __invalid_parameter(wchar_t * param_1, wchar_t * param_2, wchar_t * param_3, uint param_4, uintptr_t param_5) | 44 | 2 | |
| 97 | 10003a04 | FUN_10003a04 | undefined FUN_10003a04(void) | 16 | 1 | |
| 98 | 10003a14 | FUN_10003a14 | undefined FUN_10003a14(undefined4 param_1) | 15 | 0 | |
| 99 | 10003a23 | __callnewh | int __callnewh(size_t _Size) | 40 | 1 | |
| 100 | 10003a4b | __onexit_nolock | PVOID __onexit_nolock(PVOID param_1) | 182 | 4 | |
| 101 | 10003b32 | __onexit | _onexit_t __onexit(_onexit_t _Func) | 54 | 5 | |
| 102 | 10003b68 | FUN_10003b68 | undefined FUN_10003b68(void) | 6 | 1 | |
| 103 | 10003b6e | _atexit | int _atexit(_func_4879 * param_1) | 23 | 1 | |
| 104 | 10003b85 | __initp_misc_cfltcvt_tab | undefined __initp_misc_cfltcvt_tab(void) | 35 | 1 | |
| 105 | 10003bb0 | __ValidateImageBase | BOOL __ValidateImageBase(PBYTE pImageBase) | 53 | 0 | |
| 106 | 10003bf0 | __FindPESection | PIMAGE_SECTION_HEADER __FindPESection(PBYTE pImageBase, DWORD_PTR rva) | 68 | 0 | |
| 107 | 10003c40 | __IsNonwritableInCurrentImage | BOOL __IsNonwritableInCurrentImage(PBYTE pTarget) | 166 | 2 | |
| 108 | 10003cfc | __GET_RTERRMSG | wchar_t * __GET_RTERRMSG(int param_1) | 38 | 0 | |
| 109 | 10003d22 | __NMSG_WRITE | void __NMSG_WRITE(int param_1) | 431 | 13 | |
| 110 | 10003ed1 | __FF_MSGBANNER | void __FF_MSGBANNER(void) | 57 | 2 | |
| 111 | 10003f0a | _strcpy_s | errno_t _strcpy_s(char * _Dst, rsize_t _SizeInBytes, char * _Src) | 95 | 2 | |
| 112 | 10003f70 | _strlen | size_t _strlen(char * _Str) | 139 | 0 | |
| 113 | 10003ffb | x_ismbbtype_l | int x_ismbbtype_l(localeinfo_struct * param_1, uint param_2, int param_3, int param_4) | 83 | 1 | |
| 114 | 1000404e | __ismbblead | int __ismbblead(uint _C) | 24 | 1 | |
| 115 | 10004066 | __security_check_cookie | undefined __security_check_cookie(int param_1) | 15 | 1 | |
| 116 | 10004080 | __local_unwind4 | undefined __local_unwind4(uint * param_1, int param_2, uint param_3) | 144 | 2 | |
| 117 | 10004156 | FUN_10004156 | undefined FUN_10004156(int param_1) | 28 | 1 | |
| 118 | 10004172 | _EH4_CallFilterFunc | undefined _EH4_CallFilterFunc(undefined * param_1) | 23 | 0 | |
| 119 | 10004189 | _EH4_TransferToHandler | undefined _EH4_TransferToHandler(undefined * UNRECOVERED_JUMPTABLE) | 25 | 1 | |
| 120 | 100041a2 | _EH4_GlobalUnwind2 | undefined _EH4_GlobalUnwind2(PVOID param_1, PEXCEPTION_RECORD param_2) | 25 | 1 | |
| 121 | 100041bb | _EH4_LocalUnwind | undefined _EH4_LocalUnwind(int param_1, uint param_2, undefined4 param_3, uint * param_4) | 23 | 1 | |
| 122 | 100041d2 | ___free_lc_time | undefined ___free_lc_time(undefined4 * param_1) | 887 | 1 | |
| 123 | 10004549 | ___free_lconv_num | undefined ___free_lconv_num(undefined4 * param_1) | 105 | 1 | |
| 124 | 100045b2 | ___free_lconv_mon | undefined ___free_lconv_mon(int param_1) | 254 | 1 | |
| 125 | 100046b0 | _memset | void * _memset(void * _Dst, int _Val, size_t _Size) | 122 | 1 | |
| 126 | 1000472a | __freea | void __freea(void * _Memory) | 32 | 1 | |
| 127 | 1000474a | __crtLCMapStringA_stat | int __crtLCMapStringA_stat(localeinfo_struct * param_1, ulong param_2, ulong param_3, char * param_4, int param_5, char * param_6, int param_7, int param_8, int param_9) | 487 | 7 | |
| 128 | 10004931 | ___crtLCMapStringA | int ___crtLCMapStringA(_locale_t _Plocinfo, LPCWSTR _LocaleName, DWORD _DwMapFlag, LPCSTR _LpSrcStr, int _CchSrc, LPSTR _LpDestStr, int _CchDest, int _Code_page, BOOL _BError) | 70 | 2 | |
| 129 | 10004977 | __crtGetStringTypeA_stat | int __crtGetStringTypeA_stat(localeinfo_struct * param_1, ulong param_2, char * param_3, int param_4, ushort * param_5, int param_6, int param_7, int param_8) | 231 | 7 | _memset |
| 130 | 10004a5e | ___crtGetStringTypeA | BOOL ___crtGetStringTypeA(_locale_t _Plocinfo, DWORD _DWInfoType, LPCSTR _LpSrcStr, int _CchSrc, LPWORD _LpCharType, int _Code_page, BOOL _BError) | 64 | 2 | |
| 131 | 10004a9e | __msize | size_t __msize(void * _Memory) | 51 | 3 | |
| 132 | 10004ad1 | _abort | void _abort(void) | 50 | 4 | |
| 133 | 10004b10 | FID_conflict:_memcpy | void * FID_conflict:_memcpy(void * _Dst, void * _Src, size_t _Size) | 708 | 1 | |
| 134 | 10004e71 | FUN_10004e71 | undefined FUN_10004e71(void) | 8 | 0 | |
| 135 | 10004e82 | ___crtMessageBoxW | int ___crtMessageBoxW(LPCWSTR _LpText, LPCWSTR _LpCaption, UINT _UType) | 364 | 6 | |
| 136 | 10004fee | _wcscat_s | errno_t _wcscat_s(wchar_t * _Dst, rsize_t _SizeInWords, wchar_t * _Src) | 117 | 2 | |
| 137 | 10005063 | _wcsncpy_s | errno_t _wcsncpy_s(wchar_t * _Dst, rsize_t _SizeInWords, wchar_t * _Src, rsize_t _MaxCount) | 205 | 2 | |
| 138 | 10005130 | _wcslen | size_t _wcslen(wchar_t * _Str) | 27 | 0 | |
| 139 | 1000514b | _wcscpy_s | errno_t _wcscpy_s(wchar_t * _Dst, rsize_t _SizeInWords, wchar_t * _Src) | 99 | 2 | |
| 140 | 100051ae | __set_error_mode | int __set_error_mode(int _Mode) | 63 | 2 | |
| 141 | 100051ed | ___report_gsfailure | void ___report_gsfailure(void) | 262 | 6 | |
| 142 | 10005300 | __global_unwind2 | undefined __global_unwind2(PVOID param_1) | 32 | 1 | |
| 143 | 10005365 | __local_unwind2 | undefined __local_unwind2(int param_1, uint param_2) | 132 | 2 | |
| 144 | 10005415 | __NLG_Notify | void __NLG_Notify(ulong param_1) | 31 | 0 | |
| 145 | 10005434 | FUN_10005434 | undefined FUN_10005434(void) | 3 | 0 | |
| 146 | 10005437 | __VEC_memzero | undefined1[16] * __VEC_memzero(undefined1[16] * param_1, uint param_2) | 183 | 0 | |
| 147 | 10005510 | __alloca_probe_16 | uint __alloca_probe_16(void) | 22 | 1 | |
| 148 | 10005526 | __alloca_probe_8 | uint __alloca_probe_8(void) | 22 | 1 | |
| 149 | 1000553c | FUN_1000553c | undefined4 * FUN_1000553c(uint param_1) | 253 | 0 | |
| 150 | 10005640 | __alloca_probe | undefined __alloca_probe(void) | 43 | 0 | |
| 151 | 1000566c | RtlUnwind | void RtlUnwind(PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue) | 6 | 0 | |
| 152 | 10006000 | FUN_10006000 | undefined4 FUN_10006000(byte * param_1, int * param_2) | 342 | 0 |