Files
mxaccess/analysis/ghidra/exports/NmxSvcps.dll.ghidra.md
T
Joseph Doherty fe2a6db786
rust / build / test / clippy / fmt (push) Has been cancelled
Initial project state: .NET reference, design, Rust port (M0+M1), evidence
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>
2026-05-05 06:21:00 -04:00

379 lines
16 KiB
Markdown

# NmxSvcps.dll
## Program
- Language: `x86:LE:32:default`
- Compiler spec: `windows`
- Image base: `10000000`
- Executable format: `Portable Executable (PE)`
## Memory Blocks
| Name | Start | End | Size | R | W | X |
| --- | ---: | ---: | ---: | :---: | :---: | :---: |
| `Headers` | `10000000` | `100003ff` | 1024 | Y | | |
| `.text` | `10001000` | `100057ff` | 18432 | Y | | Y |
| `.orpc` | `10006000` | `100061ff` | 512 | Y | | Y |
| `.rdata` | `10007000` | `10009fff` | 12288 | Y | | |
| `.data` | `1000a000` | `1000b9bb` | 6588 | Y | Y | |
| `.rsrc` | `1000c000` | `1000c5ff` | 1536 | Y | | |
| `.reloc` | `1000d000` | `1000d9ff` | 2560 | Y | | |
| `tdb` | `ffdff000` | `ffdfffff` | 4096 | Y | Y | |
## External Imports
- `KERNEL32.DLL::DecodePointer`
- `KERNEL32.DLL::DeleteCriticalSection`
- `KERNEL32.DLL::DisableThreadLibraryCalls`
- `KERNEL32.DLL::EncodePointer`
- `KERNEL32.DLL::EnterCriticalSection`
- `KERNEL32.DLL::ExitProcess`
- `KERNEL32.DLL::FreeEnvironmentStringsW`
- `KERNEL32.DLL::GetACP`
- `KERNEL32.DLL::GetCPInfo`
- `KERNEL32.DLL::GetCommandLineA`
- `KERNEL32.DLL::GetCurrentProcess`
- `KERNEL32.DLL::GetCurrentProcessId`
- `KERNEL32.DLL::GetCurrentThreadId`
- `KERNEL32.DLL::GetEnvironmentStringsW`
- `KERNEL32.DLL::GetFileType`
- `KERNEL32.DLL::GetLastError`
- `KERNEL32.DLL::GetModuleFileNameA`
- `KERNEL32.DLL::GetModuleFileNameW`
- `KERNEL32.DLL::GetModuleHandleW`
- `KERNEL32.DLL::GetOEMCP`
- `KERNEL32.DLL::GetProcAddress`
- `KERNEL32.DLL::GetStartupInfoW`
- `KERNEL32.DLL::GetStdHandle`
- `KERNEL32.DLL::GetStringTypeW`
- `KERNEL32.DLL::GetSystemTimeAsFileTime`
- `KERNEL32.DLL::GetTickCount`
- `KERNEL32.DLL::HeapAlloc`
- `KERNEL32.DLL::HeapCreate`
- `KERNEL32.DLL::HeapDestroy`
- `KERNEL32.DLL::HeapFree`
- `KERNEL32.DLL::HeapReAlloc`
- `KERNEL32.DLL::HeapSize`
- `KERNEL32.DLL::InitializeCriticalSectionAndSpinCount`
- `KERNEL32.DLL::InterlockedDecrement`
- `KERNEL32.DLL::InterlockedIncrement`
- `KERNEL32.DLL::IsDebuggerPresent`
- `KERNEL32.DLL::IsProcessorFeaturePresent`
- `KERNEL32.DLL::IsValidCodePage`
- `KERNEL32.DLL::LCMapStringW`
- `KERNEL32.DLL::LeaveCriticalSection`
- `KERNEL32.DLL::LoadLibraryW`
- `KERNEL32.DLL::MultiByteToWideChar`
- `KERNEL32.DLL::QueryPerformanceCounter`
- `KERNEL32.DLL::RtlUnwind`
- `KERNEL32.DLL::SetHandleCount`
- `KERNEL32.DLL::SetLastError`
- `KERNEL32.DLL::SetUnhandledExceptionFilter`
- `KERNEL32.DLL::Sleep`
- `KERNEL32.DLL::TerminateProcess`
- `KERNEL32.DLL::TlsAlloc`
- `KERNEL32.DLL::TlsFree`
- `KERNEL32.DLL::TlsGetValue`
- `KERNEL32.DLL::TlsSetValue`
- `KERNEL32.DLL::UnhandledExceptionFilter`
- `KERNEL32.DLL::WideCharToMultiByte`
- `KERNEL32.DLL::WriteFile`
- `OLEAUT32.DLL::BSTR_UserFree`
- `OLEAUT32.DLL::BSTR_UserMarshal`
- `OLEAUT32.DLL::BSTR_UserSize`
- `OLEAUT32.DLL::BSTR_UserUnmarshal`
- `RPCRT4.DLL::CStdStubBuffer_AddRef`
- `RPCRT4.DLL::CStdStubBuffer_Connect`
- `RPCRT4.DLL::CStdStubBuffer_CountRefs`
- `RPCRT4.DLL::CStdStubBuffer_DebugServerQueryInterface`
- `RPCRT4.DLL::CStdStubBuffer_DebugServerRelease`
- `RPCRT4.DLL::CStdStubBuffer_Disconnect`
- `RPCRT4.DLL::CStdStubBuffer_Invoke`
- `RPCRT4.DLL::CStdStubBuffer_IsIIDSupported`
- `RPCRT4.DLL::CStdStubBuffer_QueryInterface`
- `RPCRT4.DLL::IUnknown_AddRef_Proxy`
- `RPCRT4.DLL::IUnknown_QueryInterface_Proxy`
- `RPCRT4.DLL::IUnknown_Release_Proxy`
- `RPCRT4.DLL::NdrCStdStubBuffer_Release`
- `RPCRT4.DLL::NdrDllCanUnloadNow`
- `RPCRT4.DLL::NdrDllGetClassObject`
- `RPCRT4.DLL::NdrDllRegisterProxy`
- `RPCRT4.DLL::NdrDllUnregisterProxy`
- `RPCRT4.DLL::NdrOleAllocate`
- `RPCRT4.DLL::NdrOleFree`
## Exports and Globals
| Name | Address | Function |
| --- | ---: | --- |
| `Ordinal_2` | `10001000` | `DllGetClassObject` |
| `DllGetClassObject` | `10001000` | `DllGetClassObject` |
| `Ordinal_1` | `10001040` | `DllCanUnloadNow` |
| `DllCanUnloadNow` | `10001040` | `DllCanUnloadNow` |
| `Ordinal_3` | `100010a0` | `DllRegisterServer` |
| `DllRegisterServer` | `100010a0` | `DllRegisterServer` |
| `Ordinal_4` | `100010e0` | `DllUnregisterServer` |
| `DllUnregisterServer` | `100010e0` | `DllUnregisterServer` |
| `NdrCStdStubBuffer_Release` | `1000111c` | `NdrCStdStubBuffer_Release` |
| `__CRT_INIT@12` | `1000118e` | `__CRT_INIT@12` |
| `___DllMainCRTStartup` | `100012f2` | `___DllMainCRTStartup` |
| `entry` | `100013e8` | `entry` |
| `___set_flsgetvalue` | `1000141d` | `___set_flsgetvalue` |
| `__mtterm` | `10001451` | `__mtterm` |
| `__initptd` | `1000148e` | `__initptd` |
| `__getptd_noexit` | `10001542` | `__getptd_noexit` |
| `__getptd` | `100015bb` | `__getptd` |
| `__freefls@4` | `100015d5` | `__freefls@4` |
| `__freeptd` | `10001704` | `__freeptd` |
| `__mtinit` | `10001772` | `__mtinit` |
| `_free` | `100018ed` | `_free` |
| `__malloc_crt` | `10001927` | `__malloc_crt` |
| `__calloc_crt` | `1000196c` | `__calloc_crt` |
| `__realloc_crt` | `100019b8` | `__realloc_crt` |
| `___crtCorExitProcess` | `10001a06` | `___crtCorExitProcess` |
| `___crtExitProcess` | `10001a31` | `___crtExitProcess` |
| `__init_pointers` | `10001a5b` | `__init_pointers` |
| `__initterm_e` | `10001a8e` | `__initterm_e` |
| `__cinit` | `10001ab2` | `__cinit` |
| `doexit` | `10001b49` | `doexit` |
| `_doexit` | `10001b49` | `doexit` |
| `__exit` | `10001c89` | `__exit` |
| `__cexit` | `10001c9f` | `__cexit` |
| `__amsg_exit` | `10001cae` | `__amsg_exit` |
| `__ioinit` | `10001ccc` | `__ioinit` |
| `__ioterm` | `10001f11` | `__ioterm` |
| `__setenvp` | `10001f64` | `__setenvp` |
| `parse_cmdline` | `10002040` | `parse_cmdline` |
| `_parse_cmdline` | `10002040` | `parse_cmdline` |
| `__setargv` | `100021da` | `__setargv` |
| `___crtGetEnvironmentStringsA` | `10002295` | `___crtGetEnvironmentStringsA` |
| `__RTC_Initialize` | `1000232c` | `__RTC_Initialize` |
| `__heap_init` | `10002378` | `__heap_init` |
| `__heap_term` | `10002396` | `__heap_term` |
| `__SEH_prolog4` | `100023b0` | `__SEH_prolog4` |
| `__SEH_epilog4` | `100023f5` | `__SEH_epilog4` |
| `__except_handler4` | `10002410` | `__except_handler4` |
| `__XcptFilter` | `1000259f` | `__XcptFilter` |
| `___CppXcptFilter` | `100026e9` | `___CppXcptFilter` |
| `___security_init_cookie` | `10002709` | `___security_init_cookie` |
| `__mtinitlocks` | `100027a4` | `__mtinitlocks` |
| `__mtdeletelocks` | `100027ee` | `__mtdeletelocks` |
| `__mtinitlocknum` | `1000285c` | `__mtinitlocknum` |
| `__lock` | `1000291e` | `__lock` |
| `___addlocaleref` | `10002951` | `___addlocaleref` |
| `___removelocaleref` | `100029e0` | `___removelocaleref` |
| `___freetlocinfo` | `10002a79` | `___freetlocinfo` |
| `__updatetlocinfoEx_nolock` | `10002bc4` | `__updatetlocinfoEx_nolock` |
| `___updatetlocinfo` | `10002c11` | `___updatetlocinfo` |
| `CPtoLCID` | `10002c8a` | `CPtoLCID` |
| `?CPtoLCID@@YAHH@Z` | `10002c8a` | `CPtoLCID` |
| `setSBCS` | `10002cb9` | `setSBCS` |
| `?setSBCS@@YAXPAUthreadmbcinfostruct@@@Z` | `10002cb9` | `setSBCS` |
| `setSBUpLow` | `10002d1d` | `setSBUpLow` |
| `?setSBUpLow@@YAXPAUthreadmbcinfostruct@@@Z` | `10002d1d` | `setSBUpLow` |
| `___updatetmbcinfo` | `10002ead` | `___updatetmbcinfo` |
| `??0_LocaleUpdate@@QAE@PAUlocaleinfo_struct@@@Z` | `10002f51` | `_LocaleUpdate` |
| `getSystemCP` | `10002fd8` | `getSystemCP` |
| `?getSystemCP@@YAHH@Z` | `10002fd8` | `getSystemCP` |
| `__setmbcp_nolock` | `10003054` | `__setmbcp_nolock` |
| `__setmbcp` | `1000323d` | `__setmbcp` |
| `___initmbctable` | `100033d7` | `___initmbctable` |
| `__get_errno_from_oserr` | `100033f5` | `__get_errno_from_oserr` |
| `__errno` | `10003437` | `__errno` |
| `_malloc` | `1000344a` | `_malloc` |
| `__calloc_impl` | `100034de` | `__calloc_impl` |
| `_realloc` | `10003560` | `_realloc` |
| `__initp_misc_winsig` | `10003657` | `__initp_misc_winsig` |
| `siglookup` | `10003675` | `siglookup` |
| `_siglookup` | `10003675` | `siglookup` |
| `_raise` | `100036b9` | `_raise` |
| `__call_reportfault` | `10003889` | `__call_reportfault` |
| `__invoke_watson` | `100039b2` | `__invoke_watson` |
| `__invalid_parameter` | `100039d7` | `__invalid_parameter` |
| `__callnewh` | `10003a23` | `__callnewh` |
| `__onexit_nolock` | `10003a4b` | `__onexit_nolock` |
| `__onexit` | `10003b32` | `__onexit` |
| `_atexit` | `10003b6e` | `_atexit` |
| `__initp_misc_cfltcvt_tab` | `10003b85` | `__initp_misc_cfltcvt_tab` |
| `__ValidateImageBase` | `10003bb0` | `__ValidateImageBase` |
| `__FindPESection` | `10003bf0` | `__FindPESection` |
| `__IsNonwritableInCurrentImage` | `10003c40` | `__IsNonwritableInCurrentImage` |
| `__GET_RTERRMSG` | `10003cfc` | `__GET_RTERRMSG` |
| `__NMSG_WRITE` | `10003d22` | `__NMSG_WRITE` |
| `__FF_MSGBANNER` | `10003ed1` | `__FF_MSGBANNER` |
| `_strcpy_s` | `10003f0a` | `_strcpy_s` |
| `_strlen` | `10003f70` | `_strlen` |
| `x_ismbbtype_l` | `10003ffb` | `x_ismbbtype_l` |
| `?x_ismbbtype_l@@YAHPAUlocaleinfo_struct@@IHH@Z` | `10003ffb` | `x_ismbbtype_l` |
| `__ismbblead` | `1000404e` | `__ismbblead` |
| `__security_check_cookie` | `10004066` | `__security_check_cookie` |
| `@__security_check_cookie@4` | `10004066` | `__security_check_cookie` |
| `__local_unwind4` | `10004080` | `__local_unwind4` |
| `_EH4_CallFilterFunc` | `10004172` | `_EH4_CallFilterFunc` |
| `@_EH4_CallFilterFunc@8` | `10004172` | `_EH4_CallFilterFunc` |
| `_EH4_TransferToHandler` | `10004189` | `_EH4_TransferToHandler` |
| `@_EH4_TransferToHandler@8` | `10004189` | `_EH4_TransferToHandler` |
| `_EH4_GlobalUnwind2` | `100041a2` | `_EH4_GlobalUnwind2` |
| `@_EH4_GlobalUnwind2@8` | `100041a2` | `_EH4_GlobalUnwind2` |
| `_EH4_LocalUnwind` | `100041bb` | `_EH4_LocalUnwind` |
| `@_EH4_LocalUnwind@16` | `100041bb` | `_EH4_LocalUnwind` |
| `___free_lc_time` | `100041d2` | `___free_lc_time` |
| `___free_lconv_num` | `10004549` | `___free_lconv_num` |
| `___free_lconv_mon` | `100045b2` | `___free_lconv_mon` |
| `_memset` | `100046b0` | `_memset` |
| `__freea` | `1000472a` | `__freea` |
| `__crtLCMapStringA_stat` | `1000474a` | `__crtLCMapStringA_stat` |
| `?__crtLCMapStringA_stat@@YAHPAUlocaleinfo_struct@@KKPBDHPADHHH@Z` | `1000474a` | `__crtLCMapStringA_stat` |
| `___crtLCMapStringA` | `10004931` | `___crtLCMapStringA` |
| `__crtGetStringTypeA_stat` | `10004977` | `__crtGetStringTypeA_stat` |
| `?__crtGetStringTypeA_stat@@YAHPAUlocaleinfo_struct@@KPBDHPAGHHH@Z` | `10004977` | `__crtGetStringTypeA_stat` |
| `___crtGetStringTypeA` | `10004a5e` | `___crtGetStringTypeA` |
| `__msize` | `10004a9e` | `__msize` |
| `_abort` | `10004ad1` | `_abort` |
| `FID_conflict:_memcpy` | `10004b10` | `FID_conflict:_memcpy` |
| `_memmove` | `10004b10` | `FID_conflict:_memcpy` |
| `_memcpy` | `10004b10` | `FID_conflict:_memcpy` |
| `___crtMessageBoxW` | `10004e82` | `___crtMessageBoxW` |
| `_wcscat_s` | `10004fee` | `_wcscat_s` |
| `_wcsncpy_s` | `10005063` | `_wcsncpy_s` |
| `_wcslen` | `10005130` | `_wcslen` |
| `_wcscpy_s` | `1000514b` | `_wcscpy_s` |
| `__set_error_mode` | `100051ae` | `__set_error_mode` |
| `___report_gsfailure` | `100051ed` | `___report_gsfailure` |
| `__global_unwind2` | `10005300` | `__global_unwind2` |
| `__local_unwind2` | `10005365` | `__local_unwind2` |
| `__NLG_Notify` | `10005415` | `__NLG_Notify` |
| `__VEC_memzero` | `10005437` | `__VEC_memzero` |
| `__alloca_probe_16` | `10005510` | `__alloca_probe_16` |
| `__alloca_probe_8` | `10005526` | `__alloca_probe_8` |
| `__alloca_probe` | `10005640` | `__alloca_probe` |
| `__chkstk` | `10005640` | `__alloca_probe` |
| `RtlUnwind` | `1000566c` | `RtlUnwind` |
| `Rsrc_Version_1_409` | `1000c0a0` | `` |
| `Rsrc_Manifest_2_409` | `1000c46c` | `` |
| `ExceptionList` | `ffdff000` | `` |
| `StackBase` | `ffdff004` | `` |
| `StackLimit` | `ffdff008` | `` |
| `SubSystemTib` | `ffdff00c` | `` |
| `FiberData` | `ffdff010` | `` |
| `ArbitraryUserPointer` | `ffdff014` | `` |
| `Self` | `ffdff018` | `` |
| `EnvironmentPointer` | `ffdff01c` | `` |
| `ClientId` | `ffdff020` | `` |
| `ActiveRpcHandle` | `ffdff028` | `` |
| `ThreadLocalStoragePointer` | `ffdff02c` | `` |
| `ProcessEnvironmentBlock` | `ffdff030` | `` |
| `LastErrorValue` | `ffdff034` | `` |
| `CountOfOwnedCriticalSections` | `ffdff038` | `` |
| `CsrClientThread` | `ffdff03c` | `` |
| `Win32ThreadInfo` | `ffdff040` | `` |
| `User32Reserved` | `ffdff044` | `` |
| `UserReserved` | `ffdff0ac` | `` |
| `WOW32Reserved` | `ffdff0c0` | `` |
| `CurrentLocale` | `ffdff0c4` | `` |
| `FpSoftwareStatusRegister` | `ffdff0c8` | `` |
| `SystemReserved1` | `ffdff0cc` | `` |
| `ExceptionCode` | `ffdff1a4` | `` |
| `ActivationContextStackPointer` | `ffdff1a8` | `` |
| `SpareBytes` | `ffdff1ac` | `` |
| `TxFsContext` | `ffdff1d0` | `` |
| `GdiTebBatch` | `ffdff1d4` | `` |
| `RealClientId` | `ffdff6b4` | `` |
| `GdiCachedProcessHandle` | `ffdff6bc` | `` |
| `GdiClientPID` | `ffdff6c0` | `` |
| `GdiCLientTID` | `ffdff6c4` | `` |
| `GdiThreadLocalInfo` | `ffdff6c8` | `` |
| `Win32ClientInfo` | `ffdff6cc` | `` |
| `glDispatchTable` | `ffdff7c4` | `` |
| `glReserved1` | `ffdffb68` | `` |
| `glReserved2` | `ffdffbdc` | `` |
| `glSectionInfo` | `ffdffbe0` | `` |
| `glSection` | `ffdffbe4` | `` |
| `glTable` | `ffdffbe8` | `` |
| `glCurrentRC` | `ffdffbec` | `` |
| `glContext` | `ffdffbf0` | `` |
| `LastStatusValue` | `ffdffbf4` | `` |
| `StaticUnicodeBuffer` | `ffdffc00` | `` |
| `DeallocationStack` | `ffdffe0c` | `` |
| `TlsSlots` | `ffdffe10` | `` |
| `TlsLinks.Flink` | `ffdfff10` | `` |
| `TlsLinks.Blink` | `ffdfff14` | `` |
| `Vdm` | `ffdfff18` | `` |
| `ReservedForNtRpc` | `ffdfff1c` | `` |
| `DbgSsReserved` | `ffdfff20` | `` |
| `HardErrorMode` | `ffdfff28` | `` |
| `Instrumentation` | `ffdfff2c` | `` |
| `ActivityId` | `ffdfff50` | `` |
| `SubProcessTag` | `ffdfff60` | `` |
| `EtwLocalData` | `ffdfff64` | `` |
| `EtwTraceData` | `ffdfff68` | `` |
| `WinSockData` | `ffdfff6c` | `` |
| `GdiBatchCount` | `ffdfff70` | `` |
| `IdealProcessorValue` | `ffdfff74` | `` |
| `GuaranteedStackBytes` | `ffdfff78` | `` |
| `ReservedForPerf` | `ffdfff7c` | `` |
| `ReservedForOle` | `ffdfff80` | `` |
| `WaitingOnLoaderLock` | `ffdfff84` | `` |
| `SavedPriorityState` | `ffdfff88` | `` |
| `SoftPatchPtr1` | `ffdfff8c` | `` |
| `ThreadPoolData` | `ffdfff90` | `` |
| `TlsExpansionSlots` | `ffdfff94` | `` |
| `MuiGeneration` | `ffdfff98` | `` |
| `IsImpersonating` | `ffdfff9c` | `` |
| `NlsCache` | `ffdfffa0` | `` |
| `pShimData` | `ffdfffa4` | `` |
| `HeapVirtualAffinity` | `ffdfffa8` | `` |
| `CurrentTransactionHandle` | `ffdfffac` | `` |
| `ActiveFrame` | `ffdfffb0` | `` |
| `FlsData` | `ffdfffb4` | `` |
| `PreferredLanguages` | `ffdfffb8` | `` |
| `UserPrefLanguages` | `ffdfffbc` | `` |
| `MergedPrefLanguages` | `ffdfffc0` | `` |
| `MuiImpersonation` | `ffdfffc4` | `` |
| `CrossTebFlags` | `ffdfffc8` | `` |
| `SameTebFlags` | `ffdfffca` | `` |
| `TxnScopeEnterCallback` | `ffdfffcc` | `` |
| `TxnScopeExitCallback` | `ffdfffd0` | `` |
| `TxnScopeContext` | `ffdfffd4` | `` |
| `LockCount` | `ffdfffd8` | `` |
| `ResourceRetValue` | `ffdfffe0` | `` |
## Interesting Strings and Referencing Functions
| Address | String | Referencing Functions |
| ---: | --- | --- |
| `10007538` | `INmxSvcCallback` | `` |
| `10007548` | `INmxNotify` | `` |
| `10007554` | `INmxService` | `` |
| `10007560` | `INmxStatus` | `` |
| `1000756c` | `INmxSvcStatistics` | `` |
| `10007580` | `INmxService2` | `` |
| `100097f6` | `NdrDllGetClassObject` | `` |
| `1000980e` | `NdrDllCanUnloadNow` | `` |
| `10009824` | `NdrCStdStubBuffer_Release` | `` |
| `10009840` | `NdrDllRegisterProxy` | `` |
| `10009856` | `NdrDllUnregisterProxy` | `` |
| `100099d2` | `NdrOleFree` | `` |
| `100099e0` | `NdrOleAllocate` | `` |
| `100099f0` | `RPCRT4.dll` | `` |
| `10009e80` | `NmxSvcPS.dll` | `` |
| `1000c1d0` | `NmxSvc_v0032` | `` |
| `1000c214` | `NmxSvcps Module` | `` |
| `1000c40c` | `NmxSvcps.dll` | `` |
## Interesting API Callers
| Caller | Entry | Call Targets |
| --- | ---: | --- |
| `DllGetClassObject` | `10001000` | `NdrDllGetClassObject` |
| `DllCanUnloadNow` | `10001040` | `NdrDllCanUnloadNow` |
| `FUN_10001050` | `10001050` | `NdrCStdStubBuffer_Release` |
| `DllRegisterServer` | `100010a0` | `NdrDllRegisterProxy` |
| `DllUnregisterServer` | `100010e0` | `NdrDllUnregisterProxy` |
| `setSBCS` | `10002cb9` | `_memset` |
| `setSBUpLow` | `10002d1d` | `_memset` |
| `__setmbcp_nolock` | `10003054` | `_memset` |
| `__call_reportfault` | `10003889` | `_memset` |
| `__crtGetStringTypeA_stat` | `10004977` | `_memset` |