• 2024-09-11c++ 数字转化成 string
       ULONG转换成string方法1:使用std::to_string(C++11及更高版本)std::to_string是将数字转换为字符串的简单方式,适用于C++11及更高版本。#include<iostream>#include<string>intmain(){ULONGvalue=1234567890UL;//定义一个ULONG类型的值/
  • 2024-08-25skf接口规范
      #ifndef__SKF_TYPE_DEF_H__#define__SKF_TYPE_DEF_H__#include"base_type.h"#ifndef_WINDOWS#definePACKED_ST(st)__attribute__((packed,aligned(1)))st#else#pragmapack(push,skf,1)#definePACKED_ST(st)st#endif/*6.4.1版本
  • 2024-08-16windows 内核驱动通过哪些方式直接访问硬件
    Windows内核驱动可以通过以下几种主要方式直接访问硬件:1.内存映射I/O(Memory-MappedI/O,MMIO)  -使用MmMapIoSpace函数将物理地址映射到虚拟地址空间  -直接读写映射后的内存地址来访问硬件寄存器  示例:  ```c  PHYSICAL_ADDRESSphysicalAddre
  • 2024-08-11【Python蓝屏程序(管理员)】
    说明:该程序为临摹(
  • 2024-05-18驱动断链
    03驱动断链获取驱动信息的途径是从Driver和FileSystem两个目录下获得的正常情况下我们自己做驱动遍历只能便利Driver下的所有驱动,也就是驱动链表里的驱动分析这里我们F12进去找一下DRIVER_OBJECT的结构typedefstruct_DRIVER_OBJECT*PDRIVER_OBJECT;WinDbg里dt一下kd
  • 2024-05-13[ida pro] 设置RVA 偏移
    在使用IDAPRO分析X64异常展开,进行_SCOPE_TABLE类型设置时,将操作数转换为偏移量目录示例:UNWIND_INFO分析1、添加ScopeRecord类型2、设置类型3、将操作数转换为偏移量4、设置完成链接1链接2示例:UNWIND_INFO分析_C_specific_handler_0是一个导入函数,是进行异常处理分发
  • 2024-04-05DwmGetDxSharedSurface函数,可用于窗口后台截图
    ReturnsdetailsforawindowsDirectXsurfaceSyntaxBOOLWINAPIDwmGetDxSharedSurface(    HWNDhwnd,    HANDLE*phSurface,    LUID*pAdapterLuid,    ULONG*pFmtWindow,    ULONG*pPresentFlags,    ULONGLONG*pWin32kUpdateId)
  • 2023-11-29获取Windows内核对象的索引与对象名
    下列提出两种获取对象名的方式通过_OBJECT_TYPE::Name获取对象名称,通过_OBJECT_TYPE::Index获取对象索引;通过NtQueryObject的方式获取,r0与r3通用,代码如下:#include<cstdio>#include<cstdlib>#include<iostream>#include<Windows.h>#defineNT_SUCCESS(Status)((NTST
  • 2023-11-255.7 Windows驱动开发:取进程模块函数地址
    在笔者上一篇文章《内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中
  • 2023-11-245.1 Windows驱动开发:判断驱动加载状态
    在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功,则输出该驱动的详细路径信息。该功能实现的核心函数是NtQuerySystemInformation这是一个微软未公开的函数,也
  • 2023-11-239.9 Windows驱动开发:内核远程线程实现DLL注入
    在笔者上一篇文章《内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的,本章将继续探索全新的注入方式,通过NtCreateThreadEx这个内核函数实现注入DLL的目的,需要注意的是该函数在微软系统中未被导出使用时需要首先得到该函数的入口地址,NtCreateThreadEx
  • 2023-11-215.2 Windows驱动开发:内核取KERNEL模块基址
    模块是程序加载时被动态装载的,模块在装载后其存在于内存中同样存在一个内存基址,当我们需要操作这个模块时,通常第一步就是要得到该模块的内存基址,模块分为用户模块和内核模块,这里的用户模块指的是应用层进程运行后加载的模块,内核模块指的是内核中特定模块地址,本篇文章将实现一个获
  • 2023-11-215.4 Windows驱动开发:内核通过PEB取进程参数
    PEB结构(ProcessEnvirormentBlockStructure)其中文名是进程环境块信息,进程环境块内部包含了进程运行的详细参数信息,每一个进程在运行后都会存在一个特有的PEB结构,通过附加进程并遍历这段结构即可得到非常多的有用信息。在应用层下,如果想要得到PEB的基地址只需要取fs:[0x30]即
  • 2023-11-217.1 Windows驱动开发:内核监控进程与线程回调
    在前面的文章中LyShark一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以监控进程线程创建为例,在Win10系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回
  • 2023-11-218.2 Windows驱动开发:内核解锁与强删文件
    在某些时候我们的系统中会出现一些无法被正常删除的文件,如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉,而所谓的解锁其实就是释放掉文件描述符(句柄表)占用,文件解锁的核心原理是通过调用ObSetHandleAttributes函数将特定句柄设置为可关闭状态,然后在调用ZwClose将其文件关
  • 2023-11-07Windows ObjectType Hook 之 SecurityProcedure
    1、背景  ObjectTypeHook是基于ObjectType的一种深入的Hook,比起常用的SSDTHook更为深入。  有关ObjectType的分析见文章《Windows驱动开发学习记录-ObjectTypeHook之ObjectType结构相关分析》。  这里进行的Hook为其中之一的SecurityProcedure。文章实
  • 2023-11-05Windows ObjectType Hook 之 OkayToCloseProcedure
    1、背景  ObjectTypeHook是基于ObjectType的一种深入的Hook,比起常用的SSDTHook更为深入。  有关ObjectType的分析见文章《Windows驱动开发学习记录-ObjectTypeHook之ObjectType结构相关分析》。  这里进行的Hook为其中之一的OkayToCloseProcedure。文
  • 2023-11-01Windows ObjectType Hook 之 OpenProcedure
    1、背景  ObjectTypeHook是基于ObjectType的一种深入的Hook,比起常用的SSDTHook更为深入。  有关ObjectType的分析见文章《Windows驱动开发学习记录-ObjectTypeHook之ObjectType结构相关分析》。  这里进行的Hook为其中之一的OpenProcedure。文章分两部
  • 2023-10-16C#调用libsodium加密库
    C#自带加密库在System.Security.Cryptography中,但是其自带的加密功能比较简单,只有一些基础的加密功能,一些高级加密方法如Aead加密,在最新版本中也只支持AesGcm96。而基于C#的比较全面的第三方加密库如BouncyCastle.NET功能虽然比较全面,但是执行效率比较差,一般比用C语言实现的加密
  • 2023-09-19KdMapper扩展实现之LG(LHA.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称LHA.sys 时间戳5C255B03
  • 2023-09-14KdMapper扩展实现之Huawei(Phymemx64.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称Phymemx64.sys 时间戳5835
  • 2023-09-05KdMapper扩展实现之ASUS(EneIo64.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称EneIo64.sys 时间戳5AB087
  • 2023-09-04KdMapper扩展实现之虚拟地址转物理地址
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能时遇到的问题,需要大家对KdMapper的代码有一定了解。  在《【转载】利用签名驱动漏洞加载未签名驱动》
  • 2023-08-09C语言驱动开发之内核解锁与强删文件
    在某些时候我们的系统中会出现一些无法被正常删除的文件,如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉,而所谓的解锁其实就是释放掉文件描述符(句柄表)占用,文件解锁的核心原理是通过调用ObSetHandleAttributes函数将特定句柄设置为可关闭状态,然后在调用ZwClose将其文件关闭
  • 2023-08-09C语言驱动开发之内核解锁与强删文件
    在某些时候我们的系统中会出现一些无法被正常删除的文件,如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉,而所谓的解锁其实就是释放掉文件描述符(句柄表)占用,文件解锁的核心原理是通过调用ObSetHandleAttributes函数将特定句柄设置为可关闭状态,然后在调用ZwClose将其文件关闭