Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by WSADATA wsaData
c++服务器学习从零开始:第一期使用windows的建议api搭建简单服务器和客户端通信-CSDN博客
我今天写的是通过windows的api搭建界面和效果的实现 代码分为服务器端的代码,客户端的代码 客户端和服务器代码结构分为 1.界面绘制 2.网络通信模块 3.多线程管理模块 4.消息处理模块 //客户端代码 #include <Windows.h> #include <string.h> #include <tchar.h> #include <stdio.h> #include <Commctrl.h> #pragma comment(lib,"wsock32.lib") #include<Windows.h> #include<iostream> #include<string> #define ID_STATE 1 #define ID_TEXTLIST 2 #define ID_SENDTEXT 3 #define ID_CLOSE 4 #define ID_SEND 5 #define ID_CONNECT 6 #define ID_CLOSELINK 7 #define ID_IP 8 #define ID_CLIENTLIST 9 //全局变量 TCHAR...
免杀手法大总结(入门)
zZ华 2024-04-14 发布于广东 | 转藏 前言 这是这段时间入门免杀的一些尝试,集合了我觉得目前还算比较有用的一些方法,也算可供师傅们入门免杀的时候的一些思路,如有不当之处,望指正。 0.零散知识 尝试了几种大众方法,感觉还是这篇文章的方法好用 sigthief下载地址:https://github.com/secretsquirrel/SigThief python sigthief.py -i 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' -t C:\Users\xx\Desktop\Project1.exe -o 1.exe 熵值也是一些杀软查杀的条件之一,把shellcode和loader分开能有效降低熵值 https://xz.aliyun.com/t/13332?time__1311=mqmxnDBG0QiQPGNDQ0KBKg77x9YreDcjYoD&alichlgref=https%3A%2F%2Fxz.aliyun.com%2F%3Fpage%3D3...
计算机网络课程设计-简单 Web Server 程序的设计与实现
目录 前言 5 代码 前言 本实验为计算机网络课程设计内容,基本上所有代码都是根据指导书给的附录写出来的。有些实验需要实现图形界面,但是出于期末考试压力,我所有实验均是在控制台输入输出的,没有花额外时间去学习qt了,有精力的同学可以自学一下qt实现简单的图形界面。同时,该博客内容为部分报告内容,仅为大家提供参考,请勿直接抄袭。另外,本次实验所用平台是dev c++5.11 1 实验题目 实验九 简单 Web Server 程序的设计与实现 2 实验目的 Web 服务是 Internet 最方便与受用户欢迎的服务类型,它的影响力也远远超出了专业技术范畴,已广泛应用于电子商务、远程教育、远程医疗与信息服务等领域,并且有继续扩大的趋势。目前很多的 Internet 应用都是基于 Web 技术的,因此掌握 Web 环境的软件编程技术对软件人员是至关重要的。 编写简单的 Web Server 有助于读者了解 Web Server 的工作流程,掌握超文本传送协议( HTTP)基本原理,掌握 Windows 环境中用 socket 实现 C/S 结构程序的编程方法。 3 实验内容...
DevC++ 用C语言的多线程 实现简单的客户端和服务器
知识来源一: 使用Dev-C++实现简单的客户端和服务器-CSDN博客 此先生的博客使用的是win32 SDK来创建多线程,然后鄙人对这个版本的多线程细节不明。于是又重新用C语言的线程替代win32API,以此继续学习服务器代码。 知识来源二:DevC++ 多线程创建与删除与exe文件脱离DevC++运行中发现dll文件和exe文件的关系-CSDN博客 这是C语言多线程简单样例。 然后在这两个基础上优化知识来源一的服务端代码,过程中查询函数,然后复制博客链接和截取解释,产生了知识来源三如下,作为函数忘了可以怎么开发了,就翻回去参考的,集成小文案。 知识来源三: DevC++ socket嵌套字实现局域网客户端服务端函数详解注释-CSDN博客 优化功能说明: 客户端命令: log_out : 切断客户端在服务器的联系 消息反馈功能:客户端输入消息后,服务端发送反馈消息,说明可以服务端可以直接利用已经建立的链接传输消息,不用再另外建一新联系。 增加过程提示:函数执行过程中printf运行阶段,是当时改线程创建忘新建线程的bug加的测试点。 效果如图...
udp简介4.0-CSDN博客
服务端: (1)使用函数socket(),生成套接字文件描述符; (2)通过struct sockaddr_in 结构设置服务器地址和监听端口; (3)使用bind() 函数绑定监听端口,将套接字文件描述符和地址类型变量(struct sockaddr_in )进行绑定; (4)接收客户端的数据,使用recvfrom() 函数接收客户端的网络数据; (5)向客户端发送数据,使用sendto() 函数向服务器主机发送数据; (6)关闭套接字,使用close() 函数释放资源; 客户端: (1)使用socket(),生成套接字文件描述符; (2)通过struct sockaddr_in 结构设置服务器地址和监听端口; (3)向服务器发送数据,sendto() ; (4)接收服务器的数据,recvfrom() ; (5)关闭套接字,close() ; +++ 网络通信之htonl()、htons()、ntohl()、ntohs()四个函数以及小端大端(小尾大尾)模式 htonl()函数 函数原型是:uint32_t htonl(uint32_t hostlong)...
HTTP 代理服务器的设计与实现(C++)
实验内容 设计并实现一个基本 HTTP 代理服务器。要求在指定端口(例如 8080)接收来自客户的 HTTP 请求并且根据其中的 URL 地址访问该地址 所指向的 HTTP 服务器(原服务器),接收 HTTP 服 务器的响应报文,并 将响应报文转发给对应的客户进行浏览。 设计并实现一个支持 Cache 功能的 HTTP 代理服务器。要求能缓 存原服务器响应的对象,并 能够通过修改请求报文(添加 if-modified-since 头行),向原服务器确认缓存对象是否是最新版本。 (选作内容) 扩展 HTTP 代理服务器,支持如下功能: (选作内容) 网站过滤:允许/不允许访问某些网站; 用户过滤:支持/不支持某些用户访问外部网站; 网站引导:将用户对某个网站的访问引导至一个模拟网站(钓鱼)。 代理服务器的概念 代理服务器,允许一个网络终端(一般为客户端)通过这个服务与另一 个网络终端(一般为服务器)进行非直接的连接。普通 Web 应用通信方式与采用代理服务器的 通信方式的对比如下图所示:...
20.6 OpenSSL 套接字分发RSA公钥
开发者社区 人工智能 文章 正文 2023-11-04 4 简介: 通过上一节的学习读者应该能够更好的理解`RSA`加密算法在套接字传输中的使用技巧,但上述代码其实并不算完美的,因为我们的公钥和私钥都必须存储在本地文本中且公钥与私钥是固定的无法做到更好的保护效果,而一旦公钥与私钥泄密则整个传输流程都将会变得不安全,最好的保护效果是`RSA`密钥在每次通信时都进行变换,依次来实现随机密钥对的功能。 通过上一节的学习读者应该能够更好的理解RSA加密算法在套接字传输中的使用技巧,但上述代码其实并不算完美的,因为我们的公钥和私钥都必须存储在本地文本中且公钥与私钥是固定的无法做到更好的保护效果,而一旦公钥与私钥泄密则整个传输流程都将会变得不安全,最好的保护效果是RSA密钥在每次通信时都进行变换,依次来实现随机密钥对的功能。 要实现这个效果我们就需要封装一套可以在内存中生成密钥对的函数,当需要传输数据时动态的生成密钥对,并将公钥部分通过套接字传输给对应的客户端,当客户端收到公钥后则可以使用该公钥进行通信,此时公钥与私钥全程不会存储为文件,这能极大的提升RSA算法的安全性。...
20.5 OpenSSL 套接字RSA加密传输
开发者社区 安全 文章 正文 2023-11-04 5 简介: RSA算法同样可以用于加密传输,但此类加密算法虽然非常安全,但通常不会用于大量的数据传输,这是因为`RSA`算法加解密过程涉及大量的数学运算,尤其是模幂运算(即计算大数的幂模运算),这些运算对于计算机而言是十分耗时。其次在`RSA`算法中,加密数据的长度不能超过密钥长度减去一定的填充长度。一般情况下,当RSA密钥长度为`1024`位时,可以加密长度为`128`字节,密钥长度为`2048`位时,可以加密长度为`245`字节;当密钥长度为`3072`位时,可以加密长度为`371`字节。因此,如果需要加密的数据长度超过了密钥长度允许的范围,可以采用分段加密的方法。我们可以将数据包切割为每个`128` RSA算法同样可以用于加密传输,但此类加密算法虽然非常安全,但通常不会用于大量的数据传输,这是因为RSA算法加解密过程涉及大量的数学运算,尤其是模幂运算(即计算大数的幂模运算),这些运算对于计算机而言是十分耗时。...
【C++】TCP通信服务端与客户端代码实现及详解_tcp client/server c++代码-CSDN博客
一、服务端server实现 #include <WinSock2.h> #include <WS2tcpip.h> #include <iostream> #include <string> #include <thread> #pragma comment(lib, "ws2_32.lib") #define PORT 65432 void Cleanup(SOCKET socket) { closesocket(socket); WSACleanup(); } void HandleClientCommunication(SOCKET clientSocket) { std::cout << "成功和" << clientSocket << "建立连接!" << std::endl; while (true) { char buffer[1000]; std::cout << "服务器向" << clientSocket << "发送数据:" << std::endl; std::cin.getline(buffer, sizeof(buffer)); std::string...
15.2 主机探测与路由追踪 - lyshark - 博客园
Ping 使用 Internet 控制消息协议(ICMP)来测试主机之间的连接。当用户发送一个 ping 请求时,则对应的发送一个 ICMP Echo 请求消息到目标主机,并等待目标主机回复一个 ICMP Echo 回应消息。如果目标主机接收到请求并且网络连接正常,则会返回一个回应消息,表示主机之间的网络连接是正常的。如果目标主机没有收到请求消息或网络连接不正常,则不会有回应消息返回。 Ping 工作的步骤如下: Ping发送一个ICMP Echo请求消息到目标主机。 目标主机接收到请求消息后,检查消息中的目标IP地址是否正确,并回复一个ICMP Echo回应消息表示收到请求。 Ping接收到回应消息后,并计算从发送到接收的时延(即往返时间 RTT)和丢包率等统计信息,然后输出到命令行上。 Ping不断进行第1到第3步的操作,直到达到指定的停止条件(如发送一定数量的请求或持续一定的时间等)为止。 Ping的实现依赖于ICMP协议,Internet控制消息协议(Internet Control Message Protocol,简称...
windows编程之线程同步万字总结(创建线程,互斥对象,互斥事件,信号量,关键段,多线程群聊服务器)_pp不会算法^v^的博客-CSDN博客
创建线程 window创建线程的方法有两种 方法一_beginthreadex 所在头文件: #include<process.h> 函数原型: uintptr_t _beginthreadex( void *security, unsigned stack_size, unsigned ( __clrcall *start_address )( void * ), void *arglist,/要传递到新线程的参数列表或 NULL。 unsigned initflag, unsigned *thrdaddr ); 线程函数示例: unsigned WINAPI 函数名称(void*arg) { .........
TCP-消息队列模型_老白_的博客-CSDN博客
#include "main.h" fd_win_set setSockets; VOID Server_write_error() { } int cteateserver(HWND hwnd) { WORD wVersionRequested; WSADATA wsaData; int err; /* 使用Windef.h中声明的MAKEWORD(低字节、高字节)宏 */ wVersionRequested = MAKEWORD(2, 2); /*启用网络链接库,调用的封装库命令*/ err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { /* Tell the user that we could not find a usable */ /* Winsock DLL.
TCP-select网络模型_老白_的博客-CSDN博客
#include "main.h" /*1.打开网络库 * 2.校验网络库版本 * 3.创建SOCKET * 4.绑定IP地址和端口 * 5.开始监听 * 6.创建客户端socket/接受链接 * 7.与客户端收发消息 * 8.(6.7)两步的函数accept,send,recv 有堵塞,可以用select解决,这种函数可以处理小型网络 */ int create(const char* IpAdress) { WORD wVersionRequested; WSADATA wsaData; int err; /* 使用Windef.h中声明的MAKEWORD(低字节、高字节)宏 */ wVersionRequested = MAKEWORD(2, 2); /*启用网络链接库,调用的封装库命令*/ err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { /* Tell the user that we could not find a usable */ /* Winsock DLL.
APT之木马动态免杀绕过Windows Defender
c++编译环境 apt-get install g++-mingw-w64-x86-64 简单的演示 一串简单的将shellcode加载入windows内存执行的c++代码 #include <windows.h> #include <stdio.h> int main() { unsigned char payload[] = "\x00"; LPVOID alloc_mem = VirtualAlloc(NULL, sizeof(payload), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); if (!alloc_mem) { printf("Failed to Allocate memory (%u)\n", GetLastError()); return -1; } MoveMemory(alloc_mem, payload, sizeof(payload)); DWORD oldProtect; if (!VirtualProtect(alloc_mem, sizeof(payload), PAGE_EXECUTE_READ,...
网络编程 tcp udp http编程流程 网络基础知识
OSI分层:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 tcp/ip: 应用层 传输层 网络层 数据链路 ip地址:唯一标识一台主机 ipv4 32位 ipv6 128位 寻址 可以反映物理上的一个变化 MAC地址:48 固化在计算机中 ip地址又两部分构成:网络号+主机号 端口号:标识一个应用程序的代号 短整型 协议:共同遵守的约定 tcp协议 网络中的规则 ip , http/https,/ftp, tcp/ ipv4头部结构 4位头部长度:表示15行 每行4字节就是60字节 减去 基本的20字节 剩余的选项 40字节 TCP头部结构 剩余的选项仍然是 40字节 应用程序传递数据的一个过程 tcp协议 这四层:应用层 传输层 网络层 数据链路 ip地址由网络号和主机号共同构成的 "129.168.1.1"点分十进制转化为 无符号整型: unsignal int inet_addr(); 无符号整型转化为点分十进制: inet_ntoa(); 每一个字节8位 都是十进制转化的,最后将四个字节组合在一起,变成一个无符号整型 大端:网络字节序列 htons()...
Day2:Windows网络编程-TCP_windows编程_貌美不及玲珑心,贤妻扶我青云志的博客-CSDN博客
关于C/S模式 C:Client 客户端: 打开一个通信通道,并连接到服务器所在主机的特定端口 向服务器发服务请求,等待并接收应答,继续提出请求 请求结束后关闭通信通道并终止 S:Server 服务端: 首先服务器先启动,并根据请求提供相应的服务 打开一个通信通道,在某一地址和端口上接收请求 等待客户请求到达该端口 接收到服务请求,处理该请求并发送应答信号 返回第二步,等待另一客户请求 关闭服务器 关于TCP与UDP TCP:面向连接的套接字 传输过程中数据不会丢失 按顺序传输数据 传输的过程中不存在数据边界 UDP:面向消息的套接字 强调快速传输而非顺序 传输的数据可能丢失也可能损毁 限制每次传输数据的大小 传输的数据由数据边界 关于IP 是分配给用户上网使用的网际协议 常见的IP地址分为IPv4与IPv6两大类两大类 关于端口 为区分程序中创建的套接字而分配给套接字的序号 不同的端口对应不同的应用程序 端口有65536之多 关于套接字类型与协议设置 SOCK_STREAM 对应TCP协议 SOCK_DGRAM 对应UDP SOCK_RAW...
Day3:Windows网络编程-UDP_貌美不及玲珑心,贤妻扶我青云志的博客-CSDN博客
对比TCP与UDP的通信区别 UDP Server没有listen()和accept() TCP Server #include <iostream> #include <WinSock2.h> // 包含网络库 #pragma comment(lib,"ws2_32.lib") using namespace std; int main() { // 1. 初始化套接字 初始化套接字库 cout << "UDP Server" << endl; WORD wVersion; WSADATA wsaData; int err; wVersion = MAKEWORD(1, 1); err = WSAStartup(wVersion, &wsaData); if (err != 0) { return err; } if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) { WSACleanup(); return -1; } // 2.
基于TCP协议的聊天室详细教学(C++)_小马哥来了0325的博客-CSDN博客
1.ide: VS2010旗舰版(学生版应该也可以) 2.编程语言: C++ 1.服务器效果 服务器只转发消息不参到信息交流中 2.客户端效果 客户端输入用户名后默认进入群聊模式,输入“获取用户列表”可以获取在线用户用户名列表,如果需要私聊某一个用户需要输入“私聊+用户名”可进入私聊模式,输入“退出私聊”可退出私聊重新进入群聊模式。 基本群聊展示 获取用户列表展示 私聊效果展示 ps:我们在使用tcp协议是不需要完全了解这部分代码的作用,只需要了解怎么初始化和使用它就行 1.确定协议版本信息 2.创建socket 3.确定服务器地址族 4.连接服务器 5.使用后关闭scoket和清理协议版本信息,减少系统占用 2.客户端程序 (1)连接到客户端时使用用户名设定模块,将输入的用户名发送到服务器存储 (2)通信函数,用于在多线程函数中使用 (3)收发消息实现模块,如果收到消息,使用标准输出\b和输出空格遮挡通信函数输出的基础内容,再重新打印一次使得控制台程序收发消息美观 (4)客户端整体代码如下 #include<stdio.h> #include<WinSock.h>...
FPGA1-ROM存储经千兆以太网口到Qt上位机显示2022-10-23_qt以太网上位机_晓晓暮雨潇潇的博客-CSDN博客
1.场景: 将存储在FPGA片上BlockRAM中的图片数据通过网口传输到上位机显示,目标是FPGA通过网口发送图片,其大小为1920*1200,位深为8bit,30fps,上位机可以实时显示即可。这个小项目中考虑的问题有①使用FPGA的Block Memory Generate IP,②开发图片数据转换成coe文件的软件,①②两步实现将图片数据存储到FPGA片上。③通过千兆以太网口将ROM图片数据传输到上位机。④使用Qt开发网口数据接收上位机,先可以显示一张图片,然后通过多线程配置使之能够动态显示图片流即视频数据。该项目主要用来验证,网口传输到上位机多线程显示两个问题,ROM图片数据可以看成是模拟的视频流,实际应用可以来自其他数据源如CMOS图像传感器等。大的验证步骤分为两个,一个是验证静态图片即一张图片的数据流,在此基础上验证视频流传输与显示。该小项目开发环境基于Qt5.15.2,vivado2020.2,winsock2.h ,以及xc7a35tfgg芯片。 2.实现思路:...
Windows 上的网络通信编程
1. 关于 Servers 和 Clients 有两种不同类型的套接字网络应用程序:服务器和客户端。 服务器和客户端的行为不同;因此,创建它们的流程也是不一样的。以下是用于创建流式 TCP/IP 服务器和客户端的一般模型。 1.1 Server Initialize Winsock. Create a socket. Bind the socket. Listen on the socket for a client. Accept a connection from a client. Receive and send data. Disconnect. 1.2 Client Initialize Winsock. Create a socket. Connect to the server. Send and receive data. Disconnect. 2.
windows openssl安装和基本使用(代码演示)
本文主要讲到了openssl的基本使用方法,开发环境为windows,开发工具为VS2019.本文主要是说明openssl如何使用,不介绍任何理论知识,如果有不懂的,请自行百度。个人建议下一个everything查询工具,真的很好用,比window自带的查询快了很多,可以查询自己想要的文件 安装过程网上有很多,OPENSSL安装,注意你安装的OPENSSL的版本以及位数(32位或者64位),假如我安装的是64位的openssl,安装目录为D:\Program Files\OpenSSL-Win64,你可以自行选择你的安装目录,安装完成后,查看安装的openssl版本,使用控制台输入openssl version即可 在控制命令行中输入以下命令: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 网上有很多生成秘钥和公钥的文章,不过都没成功,最后在stackoverflow找到了可以用的方法,原文地址为:openssl秘钥和公钥的生成,以下是截图 Enter PEM...
C++中UDP通讯详解_c++ udp_luckyone906的博客-CSDN博客
C++ Socket编程及TCP/UDP通信代码实现 一、简介 Socket编程的目的是使网络的进程进行通信,基于TCP/IP协议簇,通过三元组(ip地址、协议、端口)标志进程,并通过该标志与其他进行进行交互。使用TCP/IP协议的应用程序通常采用应用编程接口,套接字Socket是当前的主流通信方式,“一切皆可Socket”。 Socket通信流程图: 二、Socket是什么 网络的进程通过Socket进行通信,Socket本身起源于Unix,基于“一切皆文件”理论,通过“打开->读写->关闭”的模式进行操作,而Socket本身也是基于这种模式,可以把Socket理解成一种特殊的文件,而Socket函数就是对其进行操作,如打开、读、写、关闭等。 三、Socket的基本操作 1.socket()函数 #include <sys/socket.h> int socket(int domain, int type, int protocol); 函数描述:创建一个socket描述符,唯一标志一个socket,用于后续的读写操作 参数解释:...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with WSADATA
Contact WSADATA, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack