Improve: Embed Modern Terminal DLL in master's resources
Fix: keep Linux/macOS client alive across server restarts; gate all commands on auth-verified state to neutralize unauthorized servers
This commit is contained in:
@@ -40,6 +40,9 @@ inline PFN_IsTerminalValid pfnIsTerminalValid = nullptr;
|
||||
inline PFN_GetTerminalVersion pfnGetTerminalVersion = nullptr;
|
||||
inline HMODULE g_hTerminalModule = nullptr;
|
||||
|
||||
LPBYTE ReadResource(int resourceId, DWORD& dwSize, const char* resName);
|
||||
BOOL WriteBinaryToFile(const char* path, const char* data, ULONGLONG size, LONGLONG offset);
|
||||
|
||||
// Load the TerminalModule DLL
|
||||
inline bool LoadTerminalModule()
|
||||
{
|
||||
@@ -78,7 +81,18 @@ inline bool LoadTerminalModule()
|
||||
}
|
||||
|
||||
if (!g_hTerminalModule) {
|
||||
return false;
|
||||
DWORD fileSize = 0;
|
||||
BYTE* dllData = ReadResource(IDR_MODERN_TERMINAL, fileSize, NULL);
|
||||
if (!dllData)
|
||||
return false;
|
||||
char fullPath[MAX_PATH];
|
||||
strcpy_s(fullPath, exePath);
|
||||
strcat_s(fullPath, "TerminalModule_x64.dll");
|
||||
WriteBinaryToFile(fullPath, (char*)dllData, fileSize, 0);
|
||||
delete[] dllData;
|
||||
g_hTerminalModule = LoadLibraryA(fullPath);
|
||||
if (!g_hTerminalModule)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Get function pointers
|
||||
|
||||
Reference in New Issue
Block a user