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

本文主要是介绍红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

红队专题

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

在这里插入图片描述

招募六边形战士队员

一起学习 代码审计、安全开发、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 截断

这篇关于红队专题-从零开始VC++远程控制软件RAT-C/S-[1]远控介绍及界面编写的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188079

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Java服务实现开启Debug远程调试

《Java服务实现开启Debug远程调试》文章介绍如何通过JVM参数开启Java服务远程调试,便于在线上排查问题,在IDEA中配置客户端连接,实现无需频繁部署的调试,提升效率... 目录一、背景二、相关图示说明三、具体操作步骤1、服务端配置2、客户端配置总结一、背景日常项目中,通常我们的代码都是部署到远程

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法