红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写

红队专题

  • 招募六边形战士队员
  • [1]---远控介绍及界面编写
    • 1.远程控制软件演示及教程简要说明
      • 主程序
      • 可执行程序 服务端生成器
      • 主机上线
      • 服务端程序 和 服务
      • 文件管理
      • CMD
      • 进程
      • 服务自启动
      • 主程序
        • 主对话框
        • 操作菜单
        • 列表框
        • 配置信息
      • 多线程操作
      • 非模式对话框
    • 2.环境:
    • 3.界面编程
      • 新建项目
      • 使用静态库MFC
      • 删除默认控件
      • 设置项目
        • 去除兼容问题
      • 调出系统菜单
      • 最大化最小化
      • 可拖拽border
      • 添加资源 菜单
      • 关联菜单 ID
      • 导入资源
      • 添加菜单 信息
      • cpp中添加 UpdateMain代码
      • 添加列表框
      • 列表栏View 改成报表
      • 添加控件变量
      • 主函数初始化端口
      • 类视图重载函数

招募六边形战士队员

一起学习 代码审计、安全开发、web攻防、逆向等。。。
私信联系
在这里插入图片描述

[1]—远控介绍及界面编写

1.远程控制软件演示及教程简要说明

  • 主程序

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第1张图片

  • 可执行程序 服务端生成器

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第2张图片

  • 主机上线

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第3张图片

  • 服务端程序 和 服务

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第4张图片

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第5张图片

  • 文件管理

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第6张图片

  • CMD

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第7张图片

  • 进程

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第8张图片

  • 服务自启动

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第9张图片

 服务启动  ---- 注销 模式 可以自动启动服务 上线 
  • 编写前 功能了解分析
  • 界面 运行模式

主程序

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第10张图片

主对话框
操作菜单
列表框

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第11张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第12张图片

配置信息

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第13张图片

多线程操作

非模式对话框

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第14张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第15张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第16张图片

2.环境:

操作系统:Windows 7
编译器:VS2008

3.界面编程

https://www.cctry.com/

新建项目

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第17张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第18张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第19张图片

使用静态库MFC

为了在没有 安装运行库的 主机上使用
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第20张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第21张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第22张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第23张图片

删除默认控件

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第24张图片

设置项目

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第25张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第26张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第27张图片

去除兼容问题

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第28张图片

调出系统菜单

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第29张图片

最大化最小化

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第30张图片

可拖拽border

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第31张图片

添加资源 菜单

client.rc 中添加资源
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第32张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第33张图片
文件 退出
选项 配置
关于 关于我们

关联菜单 ID

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第34张图片

导入资源

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第35张图片

添加菜单 信息


相关代码
.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;
  	

菜单项 + 图标
菜单栏
列表框 + 图标
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第36张图片

cpp中添加 UpdateMain代码

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第37张图片
五个重载方法
第一个 注意 参数 无符号整形
查询 MSDN

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第38张图片
· 位图对象
· 颜色信息

宏 定义 id号 对应 资源
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第39张图片
rc的代码
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第40张图片· 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);
}


有些东西需要注释掉

添加列表框

程序框最大化
留出 工具栏菜单栏状态栏地方
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第41张图片

列表栏View 改成报表

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第42张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第43张图片

添加控件变量

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第44张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第45张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第46张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第47张图片

注意update函数 红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第48张图片

主函数初始化端口

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第49张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第50张图片红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第51张图片

类视图重载函数

红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第52张图片
红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写_第53张图片

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 截断

你可能感兴趣的:(c++,c语言,开发语言)