红队专题-从零开始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++右移运算符的一个小坑及解决

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

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

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

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm