<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_45844442的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_45844442</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_45844442]]></copyright><item><title><![CDATA[等待块结构]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/151063654</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/151063654</guid><author>qq_45844442</author><pubDate>Tue, 02 Sep 2025 11:18:15 +0800</pubDate><description><![CDATA[等待块是用于描述可等待对象的一个结构数据，它将对象和线程联系在一起，其包含了对象所在地址以及所属线程等信息。本质上等待块就是描述线程和对象之间关系的结构，其主要通过两个链表和将所有的等待块串起来。串起来的是同一个对象的等待块，串起来的是同一个线程的等待块。]]></description><category></category></item><item><title><![CDATA[原子指令锁]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/150339766</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/150339766</guid><author>qq_45844442</author><pubDate>Fri, 29 Aug 2025 11:33:26 +0800</pubDate><description><![CDATA[上述代码中最为关键的点在于xchg原子性操作，保障了读写同时进行，这样避免不断的线程切换使读写操作出现分离。]]></description><category></category></item><item><title><![CDATA[DPC与定时器]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/150219855</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/150219855</guid><author>qq_45844442</author><pubDate>Mon, 11 Aug 2025 16:57:38 +0800</pubDate><description><![CDATA[本项目主要为使用定时器做的示例，可以把DPC理解为是基于CPU核心的一个定时任务，下面通过使用DPC和定时器来演示在与分别如何创建定时循环任务。]]></description><category></category></item><item><title><![CDATA[ETW HOOK[InfinityHook]技术解析]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/145186814</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/145186814</guid><author>qq_45844442</author><pubDate>Thu, 16 Jan 2025 18:28:49 +0800</pubDate><description><![CDATA[ETW是操作系统为了对系统调用、异常等信息做了一个日志操作，本质就是在进行调用这些中断、异常、系统调用时会走向这个代码函数区域日志保存的功能。而ETW HOOK就是在驱动层微软的PatchGuard并未对其做到很好的检测，以致于可以通过patch某些函数达到HOOK的目的，再加上系统调用、异常、上下文切换等都会经过这个，故功能也十分强大。]]></description><category></category></item><item><title><![CDATA[WFP网络过滤]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/145118940</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/145118940</guid><author>qq_45844442</author><pubDate>Mon, 13 Jan 2025 16:52:59 +0800</pubDate><description><![CDATA[WFP框架整体代码比较死板，直接使用其封装好的API调用，此项目代码整体框架源于WFP网络过滤驱动——限制网站访问。]]></description><category></category></item><item><title><![CDATA[MiniFilter文件过滤（与用户层通信）]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/145057342</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/145057342</guid><author>qq_45844442</author><pubDate>Fri, 10 Jan 2025 14:18:19 +0800</pubDate><description><![CDATA[minifilter已经不仅封装好了irp，使我们使用时不用注意其底层实现，还封装好了一系列的用户层与驱动层minifilter通信的代码，所以直接按照使用规范调用相应api即可实现与用户层通信。]]></description><category></category></item><item><title><![CDATA[MiniFilter文件过滤]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/145039515</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/145039515</guid><author>qq_45844442</author><pubDate>Thu, 09 Jan 2025 18:09:37 +0800</pubDate><description><![CDATA[MiniFilter文件过滤驱动整体代码都比较死板，没有太多的流程内容，它的建立本质也是为了方便处理IRP请求，通过注册相应的前回调和后回调以对相应的文件做过滤操作处理，以下代码示例为阻止一个名为name.txt文件的写入操作。]]></description><category></category></item><item><title><![CDATA[鼠标过滤驱动]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/145025504</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/145025504</guid><author>qq_45844442</author><pubDate>Thu, 09 Jan 2025 10:06:28 +0800</pubDate><description><![CDATA[其编写过程大体与键盘过滤驱动相似，只需要切换一下附加的目标设备以及创建的设备类型等。但在该操作后依然无法捕获到Vmware创建的win7操作系统的鼠标irp信息，于是通过在获取鼠标驱动，遍历其所有的设备进而附加，这样便可以获取到鼠标的irp信息。]]></description><category></category></item><item><title><![CDATA[键盘过滤驱动]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/145004805</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/145004805</guid><author>qq_45844442</author><pubDate>Wed, 08 Jan 2025 12:07:06 +0800</pubDate><description><![CDATA[irp请求会从io管理器中传递到设备栈中依次向下发送，当到达底层真实设备处理完成后，会依次返回，这时如果在设备栈中有我们自己注册的设备，就可以起到一个过滤的功能。键盘过滤驱动就是如此，通过附加到原本存在的设备KeyboardClass0中，这时当发生按键时irp也会返回到我们的设备中，进而实现起响应。]]></description><category></category></item><item><title><![CDATA[内核上项目【自动化加壳签名】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/143862390</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/143862390</guid><author>qq_45844442</author><pubDate>Mon, 18 Nov 2024 17:33:04 +0800</pubDate><description><![CDATA[本节主要是通过使用三个工具，一个是nginx进行搭建一个http服务器进行云下发，另一个是签名工具，还有就是VMP加壳工具（配置文件在.vmp文件中），通过编写批处理文件，使得在程序运行后自动化加壳上传到服务器。]]></description><category></category></item><item><title><![CDATA[内核上项目【隐藏驱动】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/143798336</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/143798336</guid><author>qq_45844442</author><pubDate>Fri, 15 Nov 2024 14:34:10 +0800</pubDate><description><![CDATA[该项目主要功能是通过一个驱动程序将内置的另一个驱动程序进行解密自加载，最终实现加载的另一个驱动无法查到。整体主要分三个大的框架，自加载驱动、删除自身加载时的注册表、删除驱动自身文件。运用PE结构的知识拉伸一个驱动程序，并将其重定位表、导入表、cookie值（为了兼容win10）进行修复将自身驱动在注册时写入的的键值进行删除通过获取驱动程序文件对象，修改其对象的删除相关属性，最好调用ZwDeleteFile删除自身即可这是被隐藏的驱动本身
DriverMode1.c
这是将上述驱动进行加密后放到的头文件
dl]]></description><category></category></item><item><title><![CDATA[内核上项目【远程call】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/143405200</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/143405200</guid><author>qq_45844442</author><pubDate>Thu, 31 Oct 2024 16:29:00 +0800</pubDate><description><![CDATA[本次项目代码量过多，但思路相对简单，主要功能为挂起目标主线程，将主线程TrapFrame的rip进行修改跳转到指定的shellcode位置,该ShellCode我写的是弹出MessageBox,然后再恢复线程，最后创建一个工作队列，让系统将我们的ShellCode等痕迹进行清除，因为我只写了关于64位的进程操作，如果是操作32位进程，要在定位到Context结构，进而修改eip。]]></description><category></category></item><item><title><![CDATA[WinDbg符号表下载问题解决]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/143287621</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/143287621</guid><author>qq_45844442</author><pubDate>Mon, 28 Oct 2024 11:10:23 +0800</pubDate><description><![CDATA[之前下载符号表只需要科学上网即可，结果最近搞了新电脑发现不行了，看网上也都基本上对下载windbg符号文件的回答是翻墙或者设置一些环境变量什么的，但是搞了半天还是不行，但是我发现像这种工具就能下载pdb文件，经过摸索发现已经有人写了这种原因，使用SOCKET5代理的都不可以下载。]]></description><category></category></item><item><title><![CDATA[内核上项目【让ntoskrnl.exe保护程序】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/143236644</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/143236644</guid><author>qq_45844442</author><pubDate>Fri, 25 Oct 2024 15:59:19 +0800</pubDate><description><![CDATA[如题让ntoskrnl.exe保护我们的程序,乍眼一看好像挺强,实际操作主要是借用了一下ntoskrnl.exe中的jump ecx指令,在注册回调的时候第一个参数就是ecx,所以直接将回调函数注册成ntoskrnl.exe的jump ecx,真正的回调函数放到参数即可。]]></description><category></category></item><item><title><![CDATA[内核上项目【读内存的几种方式】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/143229786</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/143229786</guid><author>qq_45844442</author><pubDate>Fri, 25 Oct 2024 12:54:12 +0800</pubDate><description><![CDATA[在内核编程有时为了能够读取目标三环进程的内存，主要有以下几种不错的方式1.附加后通过直接memcpy复制目标内存进行读取，但是这种方式非常不稳定，不推荐2.使用MmCopyVirtualMemory进行读取，因为这是微软写好的一个内核函数，所以异常分发等都完善可以直接使用3.切换CR3读取，当切换了CR3时，访问的地址都将以CR3为目录项基址，所以可以直接访问到目标进程的内存4.使用MDL方式，附加进程然后将物理页上的内容映射一份到了内核，进而通过memcpy对映射后的地址进行拷贝即可。]]></description><category></category></item><item><title><![CDATA[漏洞利用开发基础学习记录]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/139982732</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/139982732</guid><author>qq_45844442</author><pubDate>Wed, 26 Jun 2024 14:54:28 +0800</pubDate><description><![CDATA[本文基于ERC.Xdbg漏洞分析文章进行初步归纳整理，主要有Win32 缓冲区溢出、SEH 溢出、Egg Hunters、Unicode 溢出、x86-64 缓冲区溢出，工具下载链接ERC.Xdbg。]]></description><category></category></item><item><title><![CDATA[内核上项目【通信】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/134960230</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/134960230</guid><author>qq_45844442</author><pubDate>Tue, 12 Dec 2023 22:27:44 +0800</pubDate><description><![CDATA[获取ExRegisterAttributeInformationCallback中ExpDisSetAttributeInformation、ExpDisQueryAttributeInformation全局变量位置，并将其置为0，以实现执行到注册的目标回调函数。箭头所标记位置进行判断全局变量ExpDisSetAttributeInformation、ExpDisQueryAttributeInformation是否为空，如果不为空就不进行注册，所以需要在操作步骤一中将其进行置0。进行通信，最后一项的。]]></description><category></category></item><item><title><![CDATA[内核上项目【获取模块】]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/134221540</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/134221540</guid><author>qq_45844442</author><pubDate>Sat, 04 Nov 2023 19:13:14 +0800</pubDate><description><![CDATA[在Win7 64位系统编写驱动获取目标进程的模块地址。]]></description><category></category></item><item><title><![CDATA[APC学习记录]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/134089592</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/134089592</guid><author>qq_45844442</author><pubDate>Sat, 28 Oct 2023 19:16:16 +0800</pubDate><description><![CDATA[插入过程主要是根据参数决定APC插入链表的位置执行过程主要是先执行参数的KernelRoutine的代码，如果有NormalRoutine则跳到三环去遍历执行再回到内核，以此往复将链表中的所有APC执行完毕。]]></description><category></category></item><item><title><![CDATA[指定PID句柄提权]]></title><link>https://blog.youkuaiyun.com/qq_45844442/article/details/131977496</link><guid>https://blog.youkuaiyun.com/qq_45844442/article/details/131977496</guid><author>qq_45844442</author><pubDate>Fri, 28 Jul 2023 12:39:26 +0800</pubDate><description><![CDATA[上一节句柄降权是降权驱动将我们CE中的私有句柄表的DbgVIew成员权限给换了，所以我们的方案就是将这个权限提升回去，但是这样就会出现一闪一闪的样子，因为降权驱动一遍在降权提权驱动一遍在提权，所以这时候的思路是让降权驱动失效。根据上节我们可以看到降权驱动是在判断CE中的私有句柄表中是否有DbgView的句柄，那么办法就是换掉这个CE私有句柄表中的DbgView句柄，但是新的DbgView句柄中内容和原来保存的是一致的，代码如下。3.在驱动中抹除CR3、PID、名称只是为了防止更深层检测，并不影响提权。]]></description><category></category></item></channel></rss>