自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WdIg-2023的博客

一位专心搞网安的大学生的学习之路

  • 博客(127)
  • 收藏
  • 关注

原创 格式化字符串漏洞原理及其利用(附带pwn例题讲解)

格式化字符串漏洞在实际利用过程中现在几乎挖掘不到了,但是在CTF的pwn题中,由于其可以结合其他溢出漏洞利用,还是经常会遇到格式化字符串漏洞的。在我们初识C语言的时候,我们经常会使用到printf这之类的函数,printf函数的第一个参数就是一个格式化字符串,就是程序员可以使用占位符,指定格式,这些占位符用来替代后面的变量或者是数据。简单总结就是说,我们可以在一个字符串中,执行某个位置应该输出怎么样的数据,使用占位符代替,在输出的时候函数会自动按照我们指定的格式,寻找参数并以我们预想的形式输出。

2024-04-09 14:41:37 1640

原创 Windows下堆保护机制原理及其绕过

1>.堆刚初始化,所以我们申请的堆是从FreeList[0]中申请的,从FreeList[0]中拆卸下来的chunk在分配好后将剩余的空间新建一个chunk插入到FreeList[0]中,这样的话,h1后面就会有一大段空闲的空间。.后面的chunk块首被覆盖了,当h2再申请空间的时候,程序就会从破坏了的chunk中申请空间,并将剩余的空间新建为一个chunk并插入到FreeList[0]中。大家考虑一下,如果说,我们将旧chunk的Flink和Blink都覆盖掉了,那么会发生什么情况?

2024-04-09 14:40:20 890

原创 Windows下的SEHOP保护机制详解及其绕过

SafeSEH是建立了一张安全SEH表,在调用异常处理之前与安全SEH表中的指针进行比对,我们也有很多绕过方式。微软的天才工程师发现了问题,于是又写出了一种针对于异常处理的保护:SEHOP。

2024-04-09 14:39:59 842

原创 Windows下的ASLR保护机制详解及其绕过

我们前面已经详细介绍过GS,SafeSEH,和DEP保护机制,大家想一想,如果没有开启任何保护,如果程序存在漏洞我们是不是很容易攻击成功?就算开了前面已经介绍过的保护,我们也有很容易的方法突破这些保护,进而完成攻击。那么我们再次站在开发者的角度,我们如何制定一种保护机制,从而让攻击很难完成呢?

2024-04-09 14:39:14 692

原创 Windows下DEP保护机制详解及其绕过

在开始DEP保护机制的介绍之前,想一想没有开保护时我们的攻击过程,以及开了我们前面介绍的GS和SafeSEH保护的攻击过程,相信大家都能发现一个问题:就是我们本来写入数据区的数据被当作代码执行了,那么站在一个开发者的角度,我们该如何避免这种问题?

2024-04-09 14:38:17 575

原创 Windows下SafeSEH保护机制详解及其绕过

我们知道通常情况下,异常处理机制都是系统帮我们写好,编译进程序里面的,那我们如何对这些异常处理地址进行保护呢?我们想想是不是可以像前面的GS那样,我们在另一个地方保存,然后在调用异常处理的时候进行验证呢?实际上是可以的,这张表我们称之为安全S.E.H表。当程序开启了SafeSEH保护后,在编译期间,编译器将所有的异常处理地址提取出来,并且编入一张安全SEH表中,并且将这张表放到程序的映像里面。

2024-04-09 14:37:00 782

原创 Windows下的GS保护详解及其绕过

站在一个开发者的角度,我们如何防止栈溢出?试想一下,我们在返回地址之前,加入一个数字,这样,当覆盖返回地址之前,这个数字已经被覆盖了,我们来通过这个数字来检测是否发生了栈溢出,是否可行呢?变量a变量变量canary0xxxxxxxx0xxxxxxxxxebp0xxxxxxxxx返回地址这样,当发生栈溢出的时候,就会首先将canary覆盖掉,我们在函数返回的时候检测这个canary的值,就可以发现是否发生了溢出。

2024-04-09 14:36:14 1036

原创 基础ROP之:ret2text,ret2libc,ret2syscall,ret2shellcode

在上一篇文章中学习了gdb和pwntools的基本使用后,这篇文章来带领大家入门pwn,包括:ret2text,ret2libc,ret2syscall,ret2shellcode。

2024-01-30 08:52:23 929 1

原创 以题目:ciscn_2019_n_1来详细学习dbg和pwntools

我们在做Linux平台下的pwn题目的时候,调试是必不可少的一步,在调试的过程中找到漏洞并用pwntools写出攻击脚本。

2024-01-21 14:24:20 1008 1

原创 C语言函数调用栈,栈溢出基础,canary和pie保护的绕过思路

C语言函数调用栈,栈溢出基础,canary和pie保护的绕过思路

2024-01-19 11:29:35 1017

原创 ELF文件概述,虚拟内存装载,段与节

ELF文件结构详解,从本质上理解ELF文件结构,段与节的区别,虚拟内存装载。

2024-01-17 17:52:08 882

原创 05.WinInet API基础

WinInet API基础

2023-11-09 09:43:20 187

原创 03.UDP套接字与原始套接字

API:recvfrom:接受数据包,并存储源地址(UDP)返回值:如果未发生错误,recvfrom函数将返回收到的字节数commentcomment。

2023-11-08 17:31:02 900

原创 【远控】主机上线

【代码】【远控】主机上线。

2023-11-08 09:58:44 222

原创 【Windows网络编程】二.TCP套接字编程与主机上线实验

socket:套接字函数创建绑定到特定传输服务提供程序的套接字。af:地址规范系列:type:新套接字的类型规范protocol:如果指定值 0,则调用方不希望指定协议,服务提供商将选择要使用的 协议listen:侦听函数将套接字置于侦听传入连接的状态参数:s:表示绑定的未连接的套接字的描述符backlog:挂起的连接队列的最大长度返回值:如果未发生错误,侦听将返回0accept:连接套接字sockopt:设置套接字选项。

2023-11-08 09:57:13 433

原创 【Windows网络编程】一.主机相关网络信息编程

Windows网络编程,与主机相关的网络信息编程

2023-11-06 11:15:59 128

原创 网络层:控制平面

路由选择算法就是为了在端到端的数据传输中,选择路径上路由器的最好的路径。通常,一条好的路径指具有最低开销的路径。最低开销路径是指源和目的地之间具有最低开销的一条路。

2023-11-05 17:43:27 575

原创 【计算机网络】网络层:数据平面

每台路由器的数据平面的主要功能时从其输入链路向其输出链路转发数据报,控制平面的主要功能是协调这些本地的每路由转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。转发是数据平面实现的唯一功能。转发是指将分组从一个输入链路接口转移到适当的输出链路接口的路由器本地操作,路由选择是指确定分组从源到目的地所采取的端到端路径的网络范围处理过程。

2023-11-03 09:40:06 945

原创 【计算机网络】运输层

运输层协议为运行在不同主机上的应用程序提供了功能。运输层协议是在端系统中而不是在路由器中实现的。

2023-11-02 15:34:27 507

原创 【计算机网络】计算机网络和因特网

端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起,连接这些端系统和分组交换机的物理媒体包括:同轴电缆,铜线,光纤和无线电频谱。而不同的物理媒体具有不同的传输速率(transmission rate),传输速率以比。

2023-11-02 11:32:00 590

原创 【计算机网络】应用层

DNS一种简单的设计是在英特网上只用一个DNS服务器,该服务器包含所有的映射。但是这种设计肯定存在很多问题:单点故障:如果说这个服务器发生了故障,整个因特网将瘫痪!通信容量:这个服务器要处理来自因特网上所有的DNS查询。远距离的集中式数据库:有时候真的可能要跨越半个地球!这中间可能有低俗的拥塞链路,那将会特别慢!维护:如果说出现了一个新的主机,他就要维护。那么解决方法有哪些?

2023-11-01 20:10:55 716 1

原创 系统调用与函数地址动态寻找(详解版)

F9,进入程序领空,搜索所有用户模块的跨模块调用,F2下断点x64Dbg:F7单步步入,F8单步步过进内核的时候,通常会带一个参数(最基本的是系统服务号)SSDT表:系统描述符表系统服务号作用:在内核中的SSDT表中进行对照寻找,实际上就是SSDT的索引在SSDT中寻找对应的内核函数。

2023-09-02 12:23:25 290

原创 资源表的应用:病毒基础释放资源文件

我们自己写一个木马,病毒等东西,往外释放的时候,通常会随即名称,随机路径填进资源里:添加资源,导入,选择exe。

2023-09-02 12:16:53 189

原创 导入表解析与IATHook

代码提取IAT表信息,IAT Hook

2023-08-29 19:36:31 148

原创 【Windows系统编程】08.异常处理与异常Hook(软件断点Hook,硬件断点Hook)

异常处理,断点寄存器讲解,软件断点Hook,硬件断点Hook

2023-08-19 21:19:56 546

原创 【Windows系统编程】07.进程通信与线程同步

Windows进程通信(邮槽,剪贴板),线程同步技术

2023-08-18 11:15:14 137

原创 【Windows系统编程】06.HotFixHook与进程通信(详解HotFixHook)

上一讲讲到的InlineHook,每次Hook的时候,都要读写两次内存(先Hook,再还原)这种Hook方式,性能比较低,今天我们讲的这种Hook方式,可以说是InlineHook的升级版本。进程间通信:文件映像,命名管道

2023-08-17 23:13:34 418

原创 【Windows系统编程】05.内存操作与InlineHook(详解InlineHook实现)

内存相关操作,InlineHook实现详解

2023-08-17 12:51:28 302

原创 【Windows系统编程】04.动态库与静态库(详解远线程注入dll)-笔记

静态链接库的使用,动态链接库的使用,详解远线程注入ShellCode

2023-08-16 19:04:50 202

原创 【Windows系统编程】03.远线程注入ShellCode

shellcode:本质上也是一段普通的代码,只不过特殊的编程手法,可以在任意环境下,不依赖于原有的依赖库执行。本篇文章以最简单的方式为大家讲解远线程注入ShellCode

2023-08-15 09:49:14 672

原创 【Windows系统编程】02.进程与线程(一)-笔记

但是如果我们想结束不是我们自己创建的进程/线程,我们该如何拿到句柄,如何关闭?进程不能执行代码,数据结构,三环PEB,0怀EPROCESS对进程进行管理。上述关闭进程,ID是在任务管理器中得到的,对于权限较低的进程,能够关掉。上面介绍的关闭进程/线程都是通过自己创建进程,通过返回值得到的句柄。我们尝试关闭权限较高的进程的时候,会出错(拒绝访问了)线程依赖于cpu时间片切换。主线程挂掉了,子线程必挂。线程才是真正执行代码。主线程消息,进程销毁。

2023-08-15 09:41:58 191

原创 病毒基础:文件加密(Windows文件与目录操作练习)

我们知道有很多病毒都是对我们系统的文件做了一些手脚,我们上一篇文章学习了如何对Windows下的文件和目录操作,现在我们写一个小练习:遍历指定目录,循环加密文件内容:这边建议大家还是在虚拟机上做实验,万一一不小心就将系统文件给打乱了。

2023-08-13 21:07:40 160

原创 【Windows系统编程】01.文件与目录操作-笔记

本专栏从这篇文章开始做Windows系统编程的笔记,本章主要讲解:Windows文件操作(读写文件,删除文件,拷贝文件,移动文件等),目录操作(遍历目录,删除目录等)硬盘的一点小知识。参考书:Windows核心编程。

2023-08-13 21:03:18 362

原创 【MFC】12.双缓冲序列化机制-笔记

双缓冲在之前写字符雨的时候,已经简单介绍过,今天我们来写一个简单的程序来体会双缓冲机制我们实现一个在屏幕上画直线的功能:只有有了无效区域,绘图消息才会产生这样写完了之后,确实可以画出来直线,但是这是我们直接操作外设的,所以会出现闪屏的情况这时候就需要我们的双缓冲了双缓冲就是我们操作内存,将直线画在内存上,然后将内存完整拷贝到外设上,这样就可以避免操作慢,闪屏的问题:Win32中,能操作设备的,只有设备句柄hdc而在MFC中封装了:CDC------->对应Win32::GetDC。

2023-08-12 07:45:45 650

原创 【MFC】11.MFC文档和单文档架构-笔记

如果视图类和文档类没有绑定,会崩溃(这里交给视图类处理WM_CREATE消息)就省略了绑定的过程,所以就没有绑定。之前我们在写字符雨的时候,将数据都存储到了视图类中,这是不合理的,视图类只负责显示,不应该存储任何数据。文档类::UpdateAllViews 通知所有视图文档已被修改的消息。视图类::OnUpdate----如果文档类数据发生改变 你怎么绘制。去消息数组里遍历有没有WM_CREATE消息,如果有的话,处理。在WM_CREATE消息中,创建了视图。

2023-08-11 21:40:32 764

原创 【MFC】10.MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化-笔记

MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化

2023-08-11 15:24:00 926

原创 【MFC】实现字符雨(详细讲解,附完整代码)

这里需要注意,这里我们在视图类中实现了字符雨,但这是不科学的,因为视图类只负责显示窗口,数据不应该保存在视图类中,我们之后学习文档类,会解决该问题。我们这样创建了雨滴结构之后,我们还需要绘制,这时候,我们在视图类中创建一个定时器,当窗口有无效区域的时候,就去绘制。因为我们直接使用设备句柄,往设备上画图的时候,如果数据量非常大,就会闪屏,这里使用双缓冲,即可解决。然后我们创建定时器消息,使用MFC的宏:ON_WM_TIMER()我们先将绘图绘制在一张图片上,然后将图片完整复制给屏幕。

2023-08-09 00:18:48 313

原创 【MFC】09.MFC视图-笔记

MFC视图窗口:CView类 显示数据/画面我们之前的绘图消息,都是在框架类上画出来的视图窗口就覆盖在框架窗口上视图窗口本质上也是窗口,只是和框架窗口风格不同CView类也继承于CWnd类CView也能处理消息,因为它继承于CWnd类试图窗口没有边框等视图窗口是框架窗口的子类 WS_CHILD在框架窗口创建的时候,创建视图窗口

2023-08-09 00:15:26 937

原创 【MFC】08.MFC消息,自定义消息,常用控件(MFC菜单创建大总结),工具栏,状态栏-笔记

本专栏上几篇文章讲解了MFC几大机制,今天带领大家学习MFC自定义消息以及常用控件,最常用的控件请查看本专栏第一二篇文章,今天这篇文章介绍工具栏,菜单和状态栏,以及菜单创建大总结。

2023-08-08 11:21:27 1172

原创 【MFC】07.MFC六大机制:消息映射-笔记

本专栏上两篇文章分别介绍了【MFC】05.MFC第一大机制:程序启动机制和【MFC】06.MFC第二大机制:窗口创建机制,这篇文章来为大家介绍MFC的第三大机制:消息映射typfd要实现消息映射,必须满足的三个条件:类必须继承于CmdTargert类必须声明重定义 DECLARE_MESSAGE_MAP类外必须实现DEGIN_MESSINGE_MAP()在Win32程序中封装消息:我们定义一张映射表,当进入WndProc的时候,通过查找这张表的映射关系,来执行对应的函数:

2023-08-07 17:24:00 1107

空空如也

空空如也

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

TA关注的人

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