本文主要是介绍红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
红队专题
- 招募六边形战士队员
- [1]---远控介绍及界面编写
- 1.远程控制软件演示及教程简要说明
- 主程序
- 可执行程序 服务端生成器
- 主机上线
- 服务端程序 和 服务
- 文件管理
- CMD
- 进程
- 服务自启动
- 主程序
- 主对话框
- 操作菜单
- 列表框
- 配置信息
- 多线程操作
- 非模式对话框
- 2.环境:
- 3.界面编程
- 新建项目
- 使用静态库MFC
- 删除默认控件
- 设置项目
- 去除兼容问题
- 调出系统菜单
- 最大化最小化
- 可拖拽border
- 添加资源 菜单
- 关联菜单 ID
- 导入资源
- 添加菜单 信息
- cpp中添加 UpdateMain代码
- 添加列表框
- 列表栏View 改成报表
- 添加控件变量
- 主函数初始化端口
- 类视图重载函数
招募六边形战士队员
一起学习 代码审计、安全开发、web攻防、逆向等。。。
私信联系
[1]—远控介绍及界面编写
1.远程控制软件演示及教程简要说明
服务启动 ---- 注销 模式 可以自动启动服务 上线
- 编写前 功能了解分析
- 界面 运行模式
主程序
主对话框
操作菜单
列表框
配置信息
多线程操作
非模式对话框
2.环境:
操作系统:Windows 7
编译器:VS2008
3.界面编程
https://www.cctry.com/
新建项目
使用静态库MFC
为了在没有 安装运行库的 主机上使用
删除默认控件
设置项目
去除兼容问题
调出系统菜单
最大化最小化
可拖拽border
添加资源 菜单
client.rc 中添加资源
文件 退出
选项 配置
关于 关于我们
关联菜单 ID
导入资源
添加菜单 信息
相关代码
.h 头文件中创建private:CToolBar m_toolbar; //工具条类CImageList m_imagelist; // 图像列表CStatusBar m_statusbar;CBitmap m_subbmp[6];CImageList m_mainicon;void UpdateMain(int port);UINT m_port;UINT m_max;UINT m_Sound;public:CListCtrl m_list;
菜单项 + 图标
菜单栏
列表框 + 图标
cpp中添加 UpdateMain代码
五个重载方法
第一个 注意 参数 无符号整形
查询 MSDN
· 位图对象
· 颜色信息
宏 定义 id号 对应 资源
rc的代码
· id 号
· 资源类型
· 具体路径
void 你的Dlg::UpdateMain(int port)
{// 创建图像列表m_imagelist.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);CBitmap bmp;
// 创建位图对象for(int i=0;i<8;i++){// 通过 id 依次导入位图 bmp.LoadBitmapW(IDB_BITMAP1+i);// 将真彩色255 位图 添加进 image列表m_imagelist.Add(&bmp,RGB(255,255,255));bmp.DeleteObject();// 释放资源}/*m_bmp[0].LoadBitmap(IDB_MENU_EXIT);m_bmp[1].LoadBitmap(IDB_MENU_SETTING);m_bmp[2].LoadBitmap(IDB_MENU_ABOUT);m_subbmp[0].LoadBitmapW(IDB_MENU_AGENT);m_subbmp[1].LoadBitmapW(IDB_MENU_SHUTDOWN);m_subbmp[2].LoadBitmapW(IDB_MENU_RESTART);m_subbmp[3].LoadBitmapW(IDB_MENU_UPDATE);m_subbmp[4].LoadBitmapW(IDB_MENU_HTTP);m_subbmp[5].LoadBitmapW(IDB_MENU_RUN);GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION, &m_bmp[0], &m_bmp[0]);GetMenu()->GetSubMenu(1)->SetMenuItemBitmaps(0,MF_BYPOSITION, &m_bmp[1], &m_bmp[1]);GetMenu()->GetSubMenu(2)->SetMenuItemBitmaps(0,MF_BYPOSITION, &m_bmp[2], &m_bmp[2]);
*/// 工具栏的设定
// 包含九个元素[按钮ID]的 无符号整形 常量 数组 0为竖线const UINT t[9] = {1001,1002,1003,1004,1005,1006,0,1007,1008};// 用于单击事件的触发// 指向this 指针 主对话框m_toolbar.CreateEx(this);
// id数组 数量m_toolbar.SetButtons(t,9);// 按钮 图标 设置大小m_toolbar.SetSizes(CSize(60,56),CSize(24,24));m_toolbar.SetButtonText(0,_T("文件管理"));m_toolbar.SetButtonText(1,_T("屏幕监控"));m_toolbar.SetButtonText(2,_T("超级终端"));m_toolbar.SetButtonText(3,_T("进程管理"));m_toolbar.SetButtonText(4,_T("视频监控"));m_toolbar.SetButtonText(5,_T("卸载主机"));m_toolbar.SetButtonText(7,_T("程序设置"));m_toolbar.SetButtonText(8,_T("关于软件"));//关联 imagelist GetToolBarCtrl()获取指针 设置图像列表m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);// 状态栏设置BOOL hbar = m_statusbar.Create(this);UINT b[2]={1009,1010};hbar = m_statusbar.SetIndicators(b,2);// 关联状态栏 id 按钮id 风格 长度m_statusbar.SetPaneInfo(0,b[0],SBPS_NORMAL,400);m_statusbar.SetPaneInfo(1,b[1],SBPS_NORMAL,180);CString ListemPort;ListemPort.Format(_T("监听端口:%d"),port);m_statusbar.SetPaneText(0,ListemPort);m_statusbar.SetPaneText(1,_T("在线主机:0 台"));// 重设 工具条 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);/*m_mainicon.Create(16,16,ILC_COLOR24|ILC_MASK,1,0);m_mainicon.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_USER)));m_mainicon.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_CAM)));m_list.SetImageList(&m_mainicon,LVSIL_SMALL);*/// 重新 设置列表框 拓展风格 整行选中 报表 复选框m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);// 插入条目m_list.InsertColumn(0,_T("地理位置"),LVCFMT_LEFT,160);m_list.InsertColumn(1,_T("IP地址"),LVCFMT_LEFT,110);m_list.InsertColumn(2,_T("操作系统"),LVCFMT_LEFT,90);m_list.InsertColumn(3,_T("代理状态"),LVCFMT_LEFT,60);m_list.InsertColumn(4,_T("服务端版本号"),LVCFMT_LEFT,100);GetClientRect(&m_rect);
}有些东西需要注释掉
添加列表框
程序框最大化
留出 工具栏菜单栏状态栏地方
列表栏View 改成报表
添加控件变量
注意update函数
主函数初始化端口
类视图重载函数
BOOL CExecN0vvDlg::PreTranslateMessage(MSG* pMsg)
{// TODO: 在此添加专用代码和/或调用基类if(pMsg->message==WM_KEYDOWN){int nVirtKey = (int)pMsg->wParam;if(nVirtKey==VK_RETURN || nVirtKey==VK_ESCAPE){return TRUE;}}return CDialog::PreTranslateMessage(pMsg);
}
判断 传入的无符号整形的参数 是否为 WM_KEYDOWN
按键消息
等于回车 或者 ESC 截断
这篇关于红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!