自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 day5 - udp模拟tcp

​ udp模仿tcp类似于socket实现tcp的功能(单方向),比如三次握手,四次挥手,超时重传快速重传等等。模拟TCP的功能三次握手四次挥手发送端要带有计时器,要实现RTT估计和RTO(重传计时器)估计。RTT如下SampleRTT某报文段被发出到对该报文段的确认被收到之间的时间量EstimatedRTT=(1-α)* EstimatedRTT+α*SampleRTT(α=0....

2021-08-09 22:27:00 608

原创 day4 - udp和tcp的区别

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因...

2021-08-08 20:56:00 160

原创 day3 – 心跳包和TCP

心跳包的实现思路:客户端连接上服务端后,在服务端会维护一个在线客户端列表。客户端每隔一段时间,向服务端发送一个心跳包,服务端受收到包以后,会更新客户端最近一次在线时间。一旦服务端超过规定时间没有接收到客户端发来的包,则视为掉线。代码:客户端每隔一段时间,发送一个心跳包:var timer = new System.Timers.Timer();timer.Interval = 60...

2021-08-08 20:55:00 212

原创 day2 – udp聊天室

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP...

2021-08-08 20:54:00 100

原创 day1 – upd

1. 什么是TCP/IP、UDP?\2. Socket在哪里呢?\3. Socket是什么呢?\4. 你会使用它们吗?什么是TCP/IP、UDP?​ TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。...

2021-08-08 20:52:00 82

原创 day13 – 钩子和服务

远程线程注入dll卸载FreeLibraryAndExitThread将已加载的动态链接库(DLL)的引用计数减一,然后调用 ExitThread终止调用线程。该函数不返回。void FreeLibraryAndExitThread( HMODULE hLibModule, DWORD dwExitCode);参数hLibModuleDLL模块的句柄,其引用计数函数递减...

2021-08-08 20:50:00 165

原创 day12 – 补课

MFC DLL规则DLL规则DLL也叫常规DLL - 导出的接口是标准的,可以给SDK,MFC使用共享规则DLL在DLL里任何使用MFC函数的第一行代码都需要加入如下代码:// 切换资源的模块句柄AFX_MANAGE_STATE(AfxGetStaticModuleState());静态规则DLL可以直接使用扩展DLL导出的MFC类【专门给MFC使用】,使用 AFX_EXT_...

2021-08-08 20:49:00 70

原创 day11 – c线程和mfc线程

1 为什么要使用ini或者其它(例如xml,json)配置文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序发布后还能根据需要进行必要的配置;配置文件有很多如INI配置文件,XML配置文件,还有就是可以使用系统注册表等。注意:ini的后缀名也不一定是”.ini”也可以是”.cfg”,”....

2021-08-08 20:48:00 88

原创 day10 – 远程线程注入

CreateRemoteThreadVirtualAllocEX做的这个例子首先是创建了一个MFC 对话框程序,然后自己创建了一个 带有导出函数 (简单的减法) 的DLL , 这个Calc按键就是调用自己DLL里面的减法函数 计算1 – 1, 其次创建一个拥有能够修改进程中某函数的入口代码功能的DLL(为什么是DLL,网上有大量详细的资料,), 然后我们还创建一个windows控制台程序 也...

2021-08-08 20:46:00 119

原创 day9 – 同步

windows支持4种类型的同步对象,可以用来同步由并发运行的线程所执行的操作:临界区互斥量事件信号量MFC在名为CCriticalSection、CMutex、CEvent和CSemaphore的类中封装了这些对象。下面分别对这些同步对象进行介绍。临界区最简单类型的线程同步对象就是临界区。临界区用来串行化对由两个或者多个线程共享的资源的访问。这些线程必须属于相...

2021-08-08 20:44:00 77

原创 day8 – 线程的创建和退出

概念区分程序 – 磁盘上的可执行文件进程 – 程序执行代码所需资源的集合, 不活泼的,懒惰的线程 – 程序执行代码的最小单位, 活泼的,勤奋的线程的运行(调度)原理cpu时间切片线程的创建createThreadExitThread第一种AfxBeginThread()用AfxBeginThread()函数来创建一个新线程来执行任务,工作者线程的AfxBeginThrea...

2021-08-08 20:41:00 228

原创 day7 – 补课

以下简单的控制台应用程序获取正在运行的进程列表。首先,该GetProcessList函数使用CreateToolhelp32Snapshot获取系统中当前正在执行的进程的快照,然后使用Process32First和Process32Next遍历快照中记录的列表。为依次在每个过程中,GetProcessList调用ListProcessModules其描述函数遍历模块列表,并且ListProces...

2021-08-08 20:39:00 91

原创 day6 – 管道和进程遍历

createpipe创建一个匿名管道,并将句柄返回到该管道的读取和写入端。BOOL CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize...

2021-08-08 20:37:00 106

原创 day5 – 进程间通信

进程间通信WM_COPYDATA数据流向是单向的,不推荐携带大量数据。效率低下,因为他需要通过高2g物理内存进行两次拷贝。SendMessage(hwnd,WM_COPYDATA,wParam,lParam);其中,WM_COPYDATA对应的十六进制数为0x004AwParam设置为包含数据的窗口的句柄。lParam指向一个COPYDATASTRUCT的结构:typedef st...

2021-08-08 20:34:00 85

原创 day4 – 跨进程使用句柄和进程间操作内存

openprocessgetwindowthreadprocessid findwindowgetcurrentprocess 0xffffffff 伪句柄duplicatehandlewriteprocessmemeryvirtualprotectex内存分页跨进程使用句柄获取进程句柄OpenProcess : 打开现有的本地处理对象HANDLE OpenProcess(...

2021-08-08 20:32:00 314

原创 day3 – 进程的创建和退出

创建进程•WinexecUINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow);lpCmdLine要执行的应用程序的命令行(文件名加上可选参数)。如果lpCmdLine参数中的可执行文件名称不包含目录路径,则系统按以下顺序搜索可执行文件:1.应用程序加载的目录。2.当前目录。3.Windows 系统目录。该 GetSystem...

2021-08-08 20:29:00 67

原创 day2 – def导出,dllmain和dll劫持

模块定义 (.def) 文件是包含一个或多个描述 DLL 各种属性的 Module 语句的文本文件。如果不使用 __declspec(dllexport) 关键字导出 DLL 的函数,则 DLL 需要 .def 文件。.def 文件必须至少包含下列模块定义语句:文件中的第一个语句必须是 LIBRARY 语句。此语句将 .def 文件标识为属于 DLL。LIBRARY 语句的后面是 DLL 的...

2021-08-08 20:28:00 152

原创 day1 – 静态库和动态库

静态库使用功能但是不提供源码的方式一:提供头文件和obj文件obj文件的使用方式:1) 直接拖到VS工程2) 在 链接器->输入->附加依赖项 中添加使用obj,同时兼容c和c++的做法#ifdef __cplusplusextern "C" {#endif int Add(int n1, int n2);#ifdef __cplusplus}#endi...

2021-08-08 20:26:00 75

原创 day13 – 补课

概要:对话框:​ App – 负责整个程序的初始化,包括对话框的创建,InitInstanceDialog – 对话框单文档:App – 负责整个程序的初始化,包括主窗口的创建,doc的创建,InitInstanceMainFrame – 负责非客户区(菜单,状态栏,工具栏,快捷键, 视图分割)和客户区view的创建view – 负责客户区的界面的展示App – 单例:...

2021-08-08 18:47:00 80

原创 day12 – 滚动截图

CPoint ptWnd; GetCursorPos(&ptWnd); CWnd* pWnd = WindowFromPoint(ptWnd); pWnd->SetForegroundWindow(); CDC* pDc = pWnd->GetDC(); int nBpp = pDc->GetDeviceCaps(BITSPIXEL); int tmpP...

2021-08-08 18:46:00 76

原创 day11 – 其他UI

1.1建立一个MFC对话框应用程序,在对话框中拖入Tab Control控件,效果如下:1.2在对话框类中,声明一个CTabCtrl变量:CTabCtrl m_tab;变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句:DDX_Control(pDX, IDC_TAB_TEST, m_tab);2.1在...

2021-08-08 18:45:00 64

原创 day10 – 视图分割

视图分割动态分割 – 2×2 视图一样静态分割视图操作:GetXXCtrl转对应的控件类视图之间的通信:方法一:某个view修改了doc中的数据,通过调用 GetDocument()->UpdateAllViews(NULL);通知其他view数据被修改其他view重写onUpdate函数来接受数据被修改的通知。方法二:CDocument* pDoc = GetDocum...

2021-08-08 18:42:00 87

原创 day9 – CAD 序列化

一、实现步骤:要实现一个能够序列化的类,必须要经过一下几步1.这个类必须间接火直接地由CObject派生而来2.定义一个不带参数的构造函数3.在头文件中,必须有如下声明:DECLARE_SERIAL( Your name of class)4.在源文件中开头有如下声明IMPLEMENT_SERIAL (Your name of class,CObject,1)其中的第三个参数代表...

2021-08-08 18:41:00 136

原创 day8 – CAD 撤销重做

class IOpt{ public: virtual void Undo() = 0; //撤销 virtual void Redo() = 0; //重做}class CDelOpt:public IOpt{public: void Undo(); //撤销, 把图形重新放回链表 void Redo(); //重做, 把图形从链表删除 private...

2021-08-08 18:40:00 86

原创 day7 – CAD 操作

旋转// common.h : ///////////////////////////////////////////////////////////////////////////////#if !defined(AFX_ROTATE_H__73DFDF03_3596_48CE_851E_4BD6D70B5495__INCLUDED_)#define AFX_ROTATE_H__73...

2021-08-08 18:39:00 83

原创 day6 – 补课

在VS2008SP1以后的版本都可以快速的建立一个类似资源管理器的工程,或者也可以利用BCG第三库,下面以VS2008SP1版本为例说明构建资源管理器的步骤。第一步:建立一个“基于对话框”的工程,窗体上放置一个Tree和List控件第二步:分别为他们添加变量,然后修改声明变量那里为CMFCShellTreeCtrl m_wbdShellTree;CMFCShellListCtrl m_w...

2021-08-08 18:36:00 83

原创 day5 – CAD2 CAD 类工厂

工厂方法模式定义厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式:是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实...

2021-08-08 18:34:00 116

原创 day4 – CAD1 双缓冲绘图

文档的使用, GDI(graphics device interface), 对话框的使用2.双缓冲1) 什么时候绘制 WM_PAINTWM_PAINT –> OnPaint –> OnDraw2) 在哪里绘制 DCBeginPaint/EndPaint CPaintDC 绘制区域不超过无效区GetDC/ReleaseDC ...

2021-08-08 18:32:00 162

原创 day3 – 子类化和控件的使用

按钮控件按钮控件包括命令按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)等。按钮控件会向父窗口发送通知消息,最常用的通知消息莫过于BN_CLICKED和BN_DOUBLECLICKED了。用户在按钮上单击鼠标时会向父窗口发送BN_CLICKED消息,双击鼠标时发送BN_DOUBLECLICKED消息。命令按钮(Button)命令按钮是我们最熟悉...

2021-08-08 18:31:00 127

原创 day2 – 最小MFC和消息响应

可以双击button写代码,除了按钮其他的右击删掉双击出不来子类化:扩展控件的功能重写控件的过程函数实现自己的功能,核心函数 SetWindowLongMFC中子类化创建新的类,继承MFC对应的控件类在新的类中实现所需要的逻辑代码为对应的控件创建对应的MFC控件类的变量,将变量类型改成自己新创建的类DDXvoid CMFCApplication1Dlg::DoDataEx...

2021-08-08 18:24:00 80

原创 day5 – 对话框的创建和控件的基本使用

对话框1) 模态对话框创建的步骤:编辑对话框资源模板创建对话框实现对话框过程函数模态对话框会阻塞父窗口的原因:a. 模态对话框内部自建消息循环b. 模态对话框调用Enablewindow禁用了父窗口的鼠标和键盘输入一、概述对话框是一种特殊的窗口,它依据对话框模板资源而建立。它与一般的窗口有些不同,很多过程由系统完成了,虽然用户还是要提供一个消息处理函数,但在此消息处理函...

2021-08-08 18:19:00 230

原创 day4 – 资源的使用

带资源的编译连接过程:cl /c FirstWindow.cpprc FirstWindow.rclink /subsystem:windows FirstWindow.res user32.lib firstwindow.obj菜单WM_COMMAND – 命令消息图标光标快捷键向窗口发送消息的api:PostMessage – 将消息投递到消息队列SendMess...

2021-08-08 18:14:00 56

原创 day3 – 绘图消息和键盘消息

界面分为客户区(client area)和 非客户区(non client area)在一个MDI(多文档)应用程序中每个概念如下图所标示:效果如下图窗口框架的客户区就是指图中的灰色部分:即蓝色方框内区域,框架的非客户区就是指蓝色方框之外的窗口区域,包括程序图标,标题栏,菜单,最大最小/关闭按纽,左右两个框和底下的状态条.视图的客户区就是指图中绿色部分:即红色方框内的区域,视图的非...

2021-08-08 18:12:00 55

原创 day2 – 窗口的创建

创建窗口的六要素设计注册窗口类创建窗口显示窗口更新窗口建立消息循环实现窗口过程函数(窗口回调函数、消息处理函数)@err,hr 获取错误信息(unsigned long)(tib+0x34),hr 获取错误信息(vc6)定义winMain函数我们在新添加的空的cpp文件中,添加如下程序入口的wWinMain函数:int APIENTRY wWinMain(_In_ HI...

2021-08-08 18:09:00 64

原创 day1 - SDK入门

SDK:Software Development Kit 软件开发工具包(套件)API:Application Programming Interface 应用程序接口(操作系统提供的一组功能性函数)内核对象 :Kernel object 内核对象是系统提供的用户模式下代码与内核模式下代码进行交互的基本接口句柄 :handle 内核对象的“ID”Windows程序 :多任务控制台程序 ...

2021-08-08 04:01:00 104

转载 MessageBox()函数用法及参数详解

转载https://blog.csdn.net/qq_36333591/article/details/88858314

2020-03-25 16:21:58 1245

原创 第三届上海市大学生网络安全大赛 签到题

第三届上海市大学生网络安全大赛 签到题 题目内容:https://www.ichunqiu.com/default/apppys 扫码下载APP你想要的flag就在CTF竞赛圈里~加入CTF竞赛圈,大表姐的buff在等着你~flag:flag{7heR3_i5_a_Lif3_4b0ut_tO_sT4rt_...

2019-02-07 20:48:00 971

原创 永不消逝的电波

永不消逝的电波 题目内容:熟悉的电波在天空中回荡,一场没有硝烟的战争已经打响……请收听“永不消逝的电波.mp3音频位置:https://static2.ichunqiu.com/icq/resources/ctf/download/60361A5FC9308684F5B1CBFBF84A6CF0.mp3...

2019-02-07 20:34:00 1430

原创 “百度杯”CTF比赛 十一月场 小可爱

“百度杯”CTF比赛 十一月场 小可爱 题目内容:小可爱最喜欢的图片就是它了tips:txt文件内容即为密码看到密码猜测为压缩包,后缀名改为rar发现里面有一张图片另一个文件提示密码为8位数字,自己暴力破解。(我丢到一些暴力破解的地方不能跑,最后试了好久才出来,尝试rar提示我zip文件改成后缀zip文件又打不开MDZZ)...

2019-01-21 17:16:00 858

原创 考眼力

考眼力 题目内容:gmbh{4d850d5c3c2756f67b91cbe8f046eebd}trytofindtheflag看到gmbh发现偏移,按照gmbh=flag发现字母向左发生偏移,字母全部向左移动一位即可得到flag。flag:flag{4c850c5b3b2756e67a91bad8e046dd...

2019-01-21 15:49:00 673

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除