avatar
文章
331
标签
30
分类
0

Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About
The Blog of Monoceros406
搜索
Home
Archives
Tags
Categories
List
  • Music
  • Movie
Link
About

The Blog of Monoceros406

WindowsAPI编程核心技术-模块加载监控
发表于2024-05-29|Win内核安全
WindowsAPI编程核心技术-模块加载监控前置芝士PsSetLoadImageNotifyRoutine设置模块加载回调函数,完成模块加载时通知回调函数。 123NTSTATUS PsSetLoadImageNotifyRoutine( _In_ PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine //指向回调函数); 可通过PsRemoveLoadImageNotifyRoutine删除回调。 PLOAD_IMAGE_NOTIFY_ROUTINE回调函数。 12345VOID SetLoadImageNotifyRoutine( _In_opt_ PUNICODE_STRING FullImageName, //标识可执行映像文件 _In_ HANDLE ProcessId, //加载模块所属进程ID 驱动程序为0 _In_ PIMAGE_INFO ImageInfo); IMAGE_INFO1234567891011121314151617181920typedef struct _IMAGE_INFO { ...
WindowsAPI编程核心技术-进线程监控
发表于2024-05-28|Win内核安全
WindowsAPI编程核心技术-进线程监控进线程枚举进程枚举: 1234567891011121314151617181920212223242526272829#include <ntifs.h>NTKERNELAPI UCHAR* PsGetProcessImageFileName(IN PEPROCESS Process); //未公开的进行导出即可NTKERNELAPI HANDLE PsGetProcessInheritedFromUniqueProcessId(IN PEPROCESS Process);//未公开进行导出// 根据进程ID返回进程EPROCESS结构体,失败返回NULLPEPROCESS LookupProcess(HANDLE Pid){ PEPROCESS eprocess = NULL; NTSTATUS Status = STATUS_UNSUCCESSFUL; Status = PsLookupProcessByProcessId(Pid, &eprocess); if (NT_SUCCES ...
WindowsAPI编程核心技术-键盘按键记录过滤驱动
发表于2024-05-28|Win内核安全
WindowsAPI编程核心技术-键盘按键记录过滤驱动实现原理驱动中有设备栈的概念,栈内成员是设备,一个连着一个。同一个设备栈中的设备,IRP传递方向是从栈顶到栈底。新添加的设备附加在设备栈顶,新设备总最先获取IRP数据。 键盘过滤驱动工作在异步模式下,发送请求IRP_MJ_READ到驱动设备栈,驱动收到后挂起,直到按下一个键,驱动完成IRP并作为返回值返回。IRP带着数据返回后被传递给对应事件系统处理,系统再紧接着发送下一个IRP_MJ_READ请求。 驱动程序创建一个键盘设备,附加在键盘类KbdClass设备栈上顶。 创建过滤驱动设备123456789101112131415161718192021222324252627282930NTSTATUS AttachKdbClass(PDEVICE_OBJECT pDevObj) { DbgPrint("Enter HookKdbClass\n"); NTSTATUS status = STATUS_SUCCESS; UNICODE_STRING ustrObjectName; P ...
WindowsAPI编程核心技术-SSDT_Hook
发表于2024-05-28|Win内核安全
WindowsAPI编程核心技术-SSDT HookSSDT入门SSDT系统服务描述符表。SSDT把Ring3的WIN32 API函数与Ring0的内核API函数联系起来。Ring3下一些API最终对应于ntdll.dll里的一个以“Nt”为前缀的函数。例如CreateFile最终会调用ntdll.dll里的NtCreateFile函数,NtCreateFile将系统服务号放入EAX,再调用系统服务分发函数KiSystemService进入到内核中,这样完成一次系统服务调用。 SSDT Hook就是修改此表的函数地址,对常用的Windows函数进行挂钩,对一些核心系统动作进行过滤、监控。 获取SSDT函数索引号ZwCreateSection创建一个节对象。 123456789NTSTATUS ZwCreateSection( _Out_ PHANDLE SectionHandle, //接收段对象句柄 _In_ ACCESS_MASK DesiredAccess, //请求的对象访问 SECTION_MAP_READ SECTION_MAP_WRITE 读取/编写该部分视图 ...
Windows驱动开发入门-Minifilter示例代码
发表于2024-05-28|Win驱动开发
Windows驱动开发入门-Minifilter示例代码NPminifilter.inf、DLL源代码、应用层源代码在教程节都有完整的,这里不贴了。 NPminifilter.c123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 ...
Windows驱动开发入门-文件系统微过滤驱动
发表于2024-05-28|Win驱动开发
Windows驱动开发入门-文件系统微过滤驱动本节讲文件系统微/小过滤驱动Minifilter,是sfilter(遗留过滤驱动)的新型替代品,使用比sfilter方便,因为不需要手动构造IRP、维护设备对象等,但也有些局限性,更底层的功能完全实现不了。 系统内部有个叫做过滤管理器的遗留过滤驱动,用来管理小过滤驱动。每个小过滤驱动都有自身高度值,该值确定它在设备栈中相对位置,从大到小顺序调用。当某些小过滤驱动高度会比遗留过滤驱动要高而某些要低,此时系统装入多个驱动管理器实例(称为帧),每个实例管理自己的小过滤驱动。 本节例子是限制notepad.exe文件的操作,使其无法被双击执行、无法被复制、无法被改名、无法被删除。 微软把Minifilter框架从VS2022的WDK中删除了,从这里找:https://learn.microsoft.com/en-us/windows-hardware/drivers/samples/file-system-driver-samples。 这里有个很好的示例:https://github.com/hkx3upper/FOKS-TROT。 编 ...
Windows驱动开发入门-文件系统透明加密源码
发表于2024-05-27|Win驱动开发
Windows驱动开发入门-文件系统透明加密源码上一节的源码。 源代码cf_create.c1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871 ...
Windows驱动开发入门-文件系统透明加密
发表于2024-05-26|Win驱动开发
Windows驱动开发入门-文件系统透明加密这一节的内容就是讲讲知识点,没法做作品,本节的例子针对Windows XP和FAT32文件系统,且透明加密仅针对记事本软件进程。 区分进程找到进程名字位置进程名字保存在EPROCESS结构中,但每个Windows版本都不一样。又已知当前驱动进程名一定为“System”,所以在EPROCESS结构中搜索“System”字样即可。 1234567891011121314// 这个函数必须在DriverEntry中调用,否则cfCurProcName将不起作用。static size_t s_cf_proc_name_offset = 0; //要寻找的偏移位置VOID cfCurProcNameInit(VOID){ ULONG i; PEPROCESS curproc; curproc = PsGetCurrentProcess(); // 搜索EPROCESS结构,在其中找到字符串 for (i = 0; i < 3 * 4 * 1024; i++) if (!strncmp(&q ...
Windows驱动开发入门-sfilter源代码
发表于2024-05-26|Win驱动开发
Windows驱动开发入门-sfilter源代码sfilter这玩意儿因为过时了,微软官方WDK已经不再包含sfilter的实例源码模板了,所以这里放出。 sfilter.c12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317 ...
Windows驱动开发入门-文件系统过滤与监控
发表于2024-05-23|Win驱动开发
Windows驱动开发入门-文件系统过滤与监控碎碎念sfilter貌似已经过时,建议使用Minifilter写文件系统过滤。 当要求区分目录、涉及文件系统的要求时,存储设备驱动很难解决问题,需要使用文件系统过滤。FAT32的驱动为fastfat.sys,NTFS的驱动叫ntfs.sys,这俩都在Windows的drivers目录下。像这样的FS文件系统生成两类设备,一类CDO控制对象,用来修改这个驱动内部配置,一个文件系统只对应一个CDO;另一类文件系统卷设备,一个卷对应一个逻辑盘。例如逻辑盘“C:”只是个符号链接,真正的设备名叫“\Device\HarddiskVolume1”。卷设备时卷管理器生成的,没名字,不能直接绑定,要不绑定的不是系统生成的卷设备而是真正的卷设备。对文件的读写IRP都发送到卷设备,不论卷文件系统是什么,一个卷一个卷设备。绑定卷设备前先绑定文件系统控制设备。 在文件过滤中,按照国际惯例应该把控制设备生成到“\FileSystem\Filters”下,但有些早期Windows系统没这个路径,所以直接生成到“\FileSystem”下。 这节代码太复杂了,不打算格式 ...
1…101112…34
avatar
Monoceros406
Windows系统安全爱好者
文章
331
标签
30
分类
0
Follow Me
公告
哪里排版出锅了请告诉我QwQ QQ:1295625063
最新文章
Linux编程入门-系统选项2025-06-21
Linux编程入门-时间2025-06-15
Linux编程入门-用户管理与安全2025-06-15
Linux编程入门-内存管理2025-06-15
Linux编程入门-进程2025-06-14
标签
漏洞复现 恶意代码 密码学 Python 渗透测试 取证 编程语言 逆向工程 AWD Win系统调试 其他 GUI开发 解题报告 沙盒逃逸 算法 Win内核安全 OpenSSL 移动安全 UEFI 数学建模 Win驱动开发 WinAPI IoT PWN 前端开发 Web Linux Web3 后端开发 Misc
归档
  • 六月 20258
  • 五月 20259
  • 十二月 202413
  • 十一月 202412
  • 十月 202420
  • 九月 20243
  • 八月 20248
  • 七月 202413
网站资讯
文章数目 :
331
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Monoceros406
框架 Hexo|主题 Butterfly