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

红队专题

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

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

招募六边形战士队员

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

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

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

  • 主程序

在这里插入图片描述

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

在这里插入图片描述

  • 主机上线

在这里插入图片描述

  • 服务端程序 和 服务

在这里插入图片描述

在这里插入图片描述

  • 文件管理

在这里插入图片描述

  • CMD

在这里插入图片描述

  • 进程

在这里插入图片描述

  • 服务自启动

在这里插入图片描述

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

主程序

在这里插入图片描述

主对话框
操作菜单
列表框

在这里插入图片描述在这里插入图片描述

配置信息

在这里插入图片描述

多线程操作

非模式对话框

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

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

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