红队专题-从零开始VC++C/S远程控制软件RAT-MFC-屏幕监控

news2024/12/28 20:42:09

在这里插入图片描述

红队专题

  • 招募六边形战士队员
  • [24]屏幕监控-(1)屏幕查看与控制技术的讲解
    • 图像压缩算法
    • 图像数据转换
    • 其他
  • [25]---屏幕监控(2)查看屏幕的实现

招募六边形战士队员

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

[24]屏幕监控-(1)屏幕查看与控制技术的讲解

屏幕监控的流程

服务端
while(true)
{
    获取图像数据();
    //
    发送图像数据();
}

客户端
while()
{
    //
    接受图像数据();
    显示图像();
}

查看屏幕的 define 宏信号

1024*768 分辨率 产生 大小 bmp
2.25M
肉眼 每秒24帧

基本流程:获取图像 — 发送图像 — 显示图像

实际流程:获取图像 — 压缩/转换图像 — 发送图像 — 解压/转换图像 — 显示图像

图像压缩算法

char *p;   // 字符数组 
int GetScreenSize();
p = new GetScreenSize(); p[] = {BYTE}; //unsigned char
p[100] = {aaaccccbbbbbbaeccefsgsdf...};

RLE算法(Run-Length Encoding) LZW算法(Lempel-Ziv-Welch Encoding) 霍夫曼压缩 RAR - LZW
在这里插入图片描述

RLE:{aaaccccbbbbbba} 压缩{a3c4b5a1} 解压{aaaccccbbbbba}
适用于屏幕数据中存在大量同样数据

RLE变种:{abcbcbcbcabcbca} 压缩{a1bc4a1bc2a1}

LZW:{abcbcbcbcabcbcab} 压缩字典{ab:1 cb:2 ca:3}{12223221}
解压:根据字典来解压 适用于任何情况

图像数据转换

zlib.lib JPEG类(有损压缩)
1024*768 分辨率
164kb

http://www.cctry.com/thread-50457-1-1.html //zlib库的使用
http://www.cctry.com/thread-5653-1-1.html //zlib库的例子

CapScreenJpeg JPEG算法

其他

隔行扫描算法 屏幕分块获取 屏幕数据判断
http://www.cctry.com/thread-45471-1-1.html //隔行扫描

隔行扫描:
灰鸽子 Delphi
DRAT Delphi
Gh0st C++

LZW:
Vipshell
守候远控

压缩库
PCShare

综合使用 + 汇编实现
1:150 倍

[25]—屏幕监控(2)查看屏幕的实现

在这里插入图片描述

void CScreen::GetScreen()
{
CDC* pDeskDC = CWnd::GetDesktopWindow()->GetDC(); //获取桌面画布对象
CRect rc;
CWnd::GetDesktopWindow()->GetClientRect(rc); //获取屏幕的客户区域
int width = GetSystemMetrics(SM_CXSCREEN); //获取屏幕的宽度
int height = GetSystemMetrics(SM_CYSCREEN); //获取屏幕的高度
CDC memDC; //定义一个内存画布
memDC.CreateCompatibleDC(pDeskDC); //创建一个兼容的画布
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDeskDC,width,height); //创建兼容位图
memDC.SelectObject(&bmp); //选中位图对象
BITMAP bitmap;
bmp.GetBitmap(&bitmap);
panelsize = 0; //记录调色板大小
//需要增加颜色判断算法
//bitmap.bmBitsPixel = 4; //更改颜色
if (bitmap.bmBitsPixel<16) //判断是否为真彩色位图
{
panelsize = pow(2.0,(double)bitmap.bmBitsPixelsizeof(RGBQUAD));
}
HeadTotal = (int)panelsize + sizeof(BITMAPINFO);
pBMPINFO = (BITMAPINFO
)LocalAlloc(LPTR,sizeof(BITMAPINFO)+(int)panelsize);
pBMPINFO->bmiHeader.biBitCount = bitmap.bmBitsPixel;//4
pBMPINFO->bmiHeader.biClrImportant = 0;
pBMPINFO->bmiHeader.biCompression = 0;
pBMPINFO->bmiHeader.biHeight = height;
pBMPINFO->bmiHeader.biPlanes = bitmap.bmPlanes;
pBMPINFO->bmiHeader.biSize = sizeof(BITMAPINFO);
pBMPINFO->bmiHeader.biSizeImage = bitmap.bmWidthBytes*bitmap.bmHeight;
pBMPINFO->bmiHeader.biWidth = width;
pBMPINFO->bmiHeader.biXPelsPerMeter = 0;
pBMPINFO->bmiHeader.biYPelsPerMeter = 0;
memDC.BitBlt(0,0,width,height,pDeskDC,0,0,SRCCOPY);
TotalSize = bitmap.bmWidthBytes * bitmap.bmHeight;
pData = new BYTE[TotalSize];
if(::GetDIBits(memDC.m_hDC,bmp,0,bitmap.bmHeight,pData,pBMPINFO,DIB_RGB_COLORS)==0)
{
printf(“Return 0\n”);
//delete pData;
pData = NULL;
return;
}
}

#include “Common.h”
#include “MySocket.h”

class CScreen
{
private:
void GetScreen();
void SendBmpHeaderinfo();
void SendBmpData();
BYTE* pData;
BITMAPINFO *pBMPINFO;
CMySocket m_sock;
UINT TotalSize;
int HeadTotal;
double panelsize;
public:
HANDLE m_h;
void CleanData();
void SendScreenData();
CScreen(void);
~CScreen(void);
bool flag;
SOCKET m_sock_screen;
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1144910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式锁-Redis红锁解决方案

一 分布式锁的概念 1&#xff1a;概念 分布式锁&#xff08;多服务共享锁&#xff09; 在分布式的部署环境下&#xff0c;通过锁机制来让多客户端互斥的对共享资源进行访问控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共…

Oracle数据库设置归档模式(超级简单)

1、打开监听 查看监听的状态&#xff0c;如果没打开监听需要打开监听&#xff0c;如果打开直接下一步 lsnrctl status 打开监听 lsnrctl start 2、启动数据库 首先进入数据库 sqlplus /nolog 然后连接管理员 conn / as sysdba 3、查看当前模式 archive log list 可以…

Spring5学习笔记—CGlib动态代理

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…

Linux UWB Stack实现——FiRa会话状态机

在FiRa标准中&#xff0c;很重要的一个概念就是FiRa会话以及会话的管理&#xff0c;本文主要介绍了在Linux UWB Stack实现中&#xff0c;FiRa会话状态机管理的实现。 在FiRa中&#xff0c;会话分为INIT、DEINIT、ACTIVE、IDLE四种状态&#xff0c;其定义如下。 enum fira_sess…

2023年上半年上午易错题(软件设计师考试)

计算机中&#xff0c;系统总线用于 &#xff08;1&#xff09; 连接。 A. 接口和外设 B. 运算器、控制器和寄存器 C. CPU、主存及外设部件 D. DMA控制器和中断控制器 在由高速缓存、主存和硬盘构成的三级存储体系中&#xff0c;CPU执行指令时需要读取数据&#xff0c;那…

常用JQuery插件汇总

Jquery插件&#xff0c;数字动画特效&#xff0c;从n到m数字跳动JJ​​​​​​​CountUp.jsA javascript class that animates a numerical value by counting to it.http://inorganik.github.io/countUp.js/

pycharm 2023.2.3设置conda虚拟环境

分两步&#xff1a; &#xff08;1&#xff09;设置Virtualenv Environment &#xff08;2&#xff09;设值Conda Executable 加载conda环境&#xff0c;然后选择conda环境

系列二十三、bean的创建顺序是由什么决定的

一、bean的创建顺序是由什么决定的 bean的创建顺序是由bean的注册顺序决定的。 # 第一步&#xff1a; AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(MySpringConfig.class);# 第二步&#xff1a; refresh();# 第三步&#xff1a; fi…

绿色先行——建行江门市分行支助力补齐“三农”金融服务短板

7月的台山&#xff0c;稻谷飘香。在大耕户李胜业的农田里&#xff0c;金灿灿的稻谷翻起层层稻浪&#xff0c;收割机在稻浪里来回穿梭&#xff0c;割稻、脱粒、装车等工序一气呵成。空气中弥漫着丰收的喜悦。 夏粮迎丰收的背后&#xff0c;是中国建设银行江门市分行&#xff08;…

【计算机网络】(谢希仁第八版)第一章课后习题答案

1.计算机网络可以向用户提供哪些服务&#xff1f; 答&#xff1a;例如音频&#xff0c;视频&#xff0c;游戏等&#xff0c;但本质是提供连通性和共享这两个功能。 连通性&#xff1a;计算机网络使上网用户之间可以交换信息&#xff0c;好像这些用户的计算机都可以彼此直接连…

【机器学习可解释性】4.SHAP 值

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP 值5.SHAP 值 高级使用 正文 理解各自特征的预测结果&#xff1f; 介绍 您已经看到(并使用)了从机器学习模型中提取一般解释技术。但是&#xff0c;如果你想要打破模型对单个预测的工作原理? SHAP 值…

第三章 SysML入门|系统建模语言SysML实用指南学习

仅供个人学习记录 UML与SysML的联系 可以稍微参考UML与SysML的联系 UML&#xff08;统一建模语言&#xff09;和SysML&#xff08;系统建模语言&#xff09;是两种与建模相关的语言&#xff0c;它们之间存在联系和区别。 SysML的图分类如下图所示。 SysML 图概述 这里只…

GZ035 5G组网与运维赛题第3套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第3套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

锐捷smartWeb管理系统存在逻辑缺陷漏洞

通过弱口令进行登录 guest/guest 通过低权限用户构造payload&#xff1a; /web/xml/webuser-auth.xml访问漏洞url&#xff0c;直接获得所有账户的等级标志和base64加密的账号密码&#xff0c;解秘后即可登录后台 解密管理员的账号密码 成功登录 文笔生疏&#xff0c;措辞浅…

C++快餐——C++11(1)

文章目录 背景简介统一列表初始化{}初始化initializer_lists初始化 关键字autodecltypenullptr 范围for右值引用和移动语义左值和右值左值引用和右值引用完美转发 默认成员函数总结 背景简介 C11&#xff0c;也被称为C0x&#xff08;在它被正式标准化之前的名字&#xff09;&a…

JVM调优(10)JVM的运行时数据区

一、概述 对于 C C 来说&#xff0c;在内存管理领域&#xff0c;JVM既拥有最高的权利&#xff0c;但是同时他们又是从事最基础工作的劳动人员&#xff0c;因为他们担负着每一个对象从开始到结束的维护责任。而对于Java来说&#xff0c;再虚拟机自动内存管理的帮助下&#xff0…

Proteus仿真--花样流水灯(仿真文件+程序)

本文主要介绍基于51单片机的花样流水灯仿真&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真运行视频 Proteus仿真--花样流水灯&#xff08;仿真文件程序&#xff09; 附完整Proteus仿真资料代码资料 链接: https://pan.baidu.com/s/1coEEBQcTQSzWQiSH_nNiUQ?pw…

vm虚拟机保护技术简介EzMachine例题-vm逆向分析

文章目录 前言0x1 虚拟机保护技术原理0x1A 关于调用约定0x1B Handler0x1C 指令 0x2 vm虚拟机逆向 实战[GKCTF 2020]EzMachine题目分析&#xff0c;花指令去除Handler分析脚本编写 前言 关于虚拟机逆向的知识网上很少&#xff0c;我看了几篇感觉都看不太明白&#xff0c;最后还…

如何设置3D模型的凹凸贴图?

1、凹凸贴图的原理&#xff1f; 凹凸贴图&#xff08;bump mapping&#xff09;是一种计算机图形技术&#xff0c;用于增强表面的视觉效果&#xff0c;使其看起来具有凹凸感&#xff0c;而实际上并没有改变模型的几何形状。 凹凸贴图的原理基于光照模型。通常&#xff0c;我们…

分布式理论和分布式锁知识点总结

文章目录 (一) 分布式理论算法和协议1&#xff09;CAP理论总结 2&#xff09;BASE理论BASE 理论的核心思想基本可用软状态最终一致性 3&#xff09;Paxos算法Basic Paxos 算法4&#xff09; Raft算法1 拜占庭将军 5&#xff09;Gossip协议 (二) 分布式锁分布式锁应该具备哪些条…