
驱动
文章平均质量分 71
trents
这个作者很懒,什么都没留下…
展开
-
inf文件的编写
标 题: 【原创】【成果3.2】inf文件的编写作 者: sislcb时 间: 2008-01-02,15:19链 接: http://bbs.pediy.com/showthread.php?t=57571这部分主要讲解inf文件的编写,其实inf文件不仅仅可以用来做为安装驱动使用,还有很多其他用法,这里就不涉及了,先讲下inf的语法,这些语法都是转载 2010-05-04 16:41:00 · 794 阅读 · 0 评论 -
DbgPrint/KdPrint输出格式控制
DbgPrint/KdPrint输出格式控制符号格式说明符类型%c, %lcANSI字符char%C, %wc宽字符wchar_t%d, %i十进制有符号整数int%D十进制__int64__int64%L十六进制的LARGE_INTEGERLARGE_INTEGER转载 2012-04-10 17:44:47 · 1167 阅读 · 0 评论 -
Windows文件过滤驱动开发
http://hi.baidu.com/%B6%AC%D2%E2%BE%D3/blog/item/8e6aa0d1bd1043de562c8413.html由于项目需要,这十天做了个Windows文件过滤驱动, 感觉windows下的驱动也不是那么的神秘, Mirosoft可以说是把API做到了极致(尽管有时真的是没必要), 他们喜欢把API包装了又包装, 不让你看清楚底层的东西.转载 2012-04-23 15:21:46 · 996 阅读 · 0 评论 -
NDIS开发[网络驱动开发] NDIS开发1
转自:http://wuli5164233.blog.163.com/blog/static/46019544200912555843646/NDIS开发[网络驱动开发] NDIS开发(1) 2009-02-25 17:58:43| 分类:VPN编程|字号 订阅目 录1 NDIS中间层驱动程序 21.1 NDIS中间层驱动程序(NDIS Inte转载 2012-07-11 15:08:41 · 4375 阅读 · 0 评论 -
NDIS开发[网络驱动开发] NDIS开发(2)
转自:http://wuli5164233.blog.163.com/blog/static/460195442009125682591/NDIS开发[网络驱动开发] NDIS开发(2) 2009-02-25 18:08:25| 分类:VPN编程 |字号 订阅接 NDIS开发[网络驱动开发] NDIS开发(1) 3.4 在微端口驱动程序上实转载 2012-07-11 15:10:53 · 2246 阅读 · 0 评论 -
NDIS开发[网络驱动开发] NDIS开发(3)
转自:http://wuli5164233.blog.163.com/blog/static/460195442009125682094/NDIS开发[网络驱动开发] NDIS开发(3) 2009-02-25 18:08:20| 分类:VPN编程 |字号 订阅接 NDIS开发[网络驱动开发] NDIS开发(2)值名 值 描述 Para转载 2012-07-11 15:11:44 · 2327 阅读 · 0 评论 -
[Sfilter]在SfCreate()函数一开始得到文件名的方法(含长短名转换)
转自:http://bbs3.driverdevelop.com/read.php?tid-110833.html编译环境:ifs2003目标系统:windowsXP + sp2基本是按照楚狂人的教程来的,长短名转换确实挺麻烦,已通过测试。在驱网看了很多好文章,心底有很多谢意,也许这个东西能对别人有用。FYI://get the name with FILE_OBJ转载 2012-08-22 13:56:21 · 2211 阅读 · 0 评论 -
filemon hook IRP_MJ_READ 读用户名问题
在IRP_MJ_READ的处理函数filemonread中,调用了获得当前用户名方法:NTSTATUS GetUserName( char* a ){ NTSTATUS status = STATUS_SUCCESS; HANDLE TokenHandle; ULONG ReturnLength原创 2012-10-24 13:21:51 · 1466 阅读 · 0 评论 -
FilemonRead 蓝屏错误分析
分析结果是FilemonRead这个函数里使用栈太大,如果多次陷入导致栈空间不够导致。mark给自己堆栈如下:kd> !analyze -v********************************************************************************原创 2013-01-30 11:18:54 · 1242 阅读 · 0 评论 -
一个驱动创建多个设备的问题
一个驱动可以创建多个设备,典型的例子就是楚狂人在TDI驱动教程中创建了TCP,UDP,ICMP的三个过滤设备。实际上为了能和应用层做IO管理,可能还需要创建一个控制设备,这个设备只负责接收应用层下发的策略。但我觉得这存在问题,特别是在驱动卸载的时候存在问题。如果驱动只对应一个设备,能保证DriverUnload调用时是独占的,即不存在同步问题。但当对应多个设备时,可能在驱动卸载的时候(原创 2013-04-21 22:17:57 · 3367 阅读 · 1 评论 -
如何控制驱动加载顺序
转自:http://support.microsoft.com/kb/115486/zh-cn有两种方法可以用于控制设备驱动程序的加载顺序。这两种方法都利用了位于 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 的注册表项。第一种方法是修改 ServiceGroupOrder。第二种方法是根据 GroupOrderList 分配转载 2013-05-28 10:07:48 · 1620 阅读 · 0 评论 -
TDI Filter 过滤驱动
By Fanxiushu 2013, 引用和转载请注明原作者为了让大家有兴趣阅读下去,举个正在使用的可能大家都比较熟悉的例子: 360 的安全卫士里,有个流量防火墙的功能,它可以监视每个进程的流量情况,可以限制上传下载速度,等等。他的驱动部分的就是一个 TDI Filter 驱动。TDI Filter ,这是个快被微软淘汰的驱动模式,但是为了兼容,又不得不使用的驱动。转载 2013-07-02 09:58:29 · 6448 阅读 · 0 评论 -
tdifw tdi_event_receive_datagram 问题
tdi过滤在tdifw基础上改的,发现在Windows2008上 tdi_event_receive_datagram函数老是蓝屏,用windbg查看dmp信息,定位到:done: // cleanup if (ote_addr != NULL) KeReleaseSpinLock(&g_ot_hash_guard, irql);// i原创 2013-11-14 14:51:51 · 1809 阅读 · 0 评论 -
内核无HOOK文件防删除
内核无HOOK文件防删除,可以过冰刃,xuetr,easydelete 本来是打算写暴力删除文件的程序的,结果意外发现,只需要在内核发送irp打开一个文件,之后不关闭Object,就拒绝其他程序访问了,easydelete这个工具还是比较强的,不过也不能删除,关键是不挂钩任何函数,不修该系统内核,看属性的时候只能看到一个常规,其它的什么都看不到,当然了360(7.0)版本的转载 2012-03-07 13:33:54 · 2280 阅读 · 0 评论 -
使用WinDbg调试程序
使用WinDbg调试程序【转】什么是WinDBG?WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。由于大部分程序员不需要做Kernel模式调试,我在这篇文章中不会介绍Kernel模式调试。Kernel模式调试对学习Windows核心极有帮助。如果你对此感兴趣,可以阅读Inside Windo转载 2012-02-29 18:07:03 · 509 阅读 · 0 评论 -
内核文件ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe, ntkrpamp.exe到底有什么区别
简单来说,是同一套源代码根据编译选项的不同而编译出四个可执行文件,分别用于:ntoskrnl - 单处理器,不支持PAEntkrnlpa - 单处理器,支持PAEntkrnlmp - 多处理器,不支持PAEntkrpamp - 多处理器,支持PAE转载 2012-02-29 21:54:44 · 6260 阅读 · 2 评论 -
Windows 文件过滤驱动经验总结
看了 ChuKuangRen的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少?只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。发自己心得的人无非是两种目的,一是引发一些讨论,好纠正自己错误的认识,以便从中获取更多的知识使自己进步的更快。二是做一份备忘,当自己遗忘的时候能够马上找到相关资料。我这转载 2010-05-11 11:19:00 · 571 阅读 · 0 评论 -
EPROCESS 的结构导出(WINXP和WIN2003)
WINXP lkd> dt nt!_EPROCESS +0x000 Pcb : _KPROCESS +0x06c ProcessLock : _EX_PUSH_LOCK +0x070 CreateTime转载 2011-09-15 18:15:11 · 634 阅读 · 0 评论 -
进程注入检测方法
进程注入通常都是涉及 CreateRemoteThread调用。在内核会调用到NtCreateThread(2008,vista,win7是NtCreateThreadEx),所以检测方法是Hook NtCreateThread,在钩子函数中判别是否是CreateRemoteTh原创 2011-09-18 11:45:10 · 5404 阅读 · 0 评论 -
sfilter和应用层通讯处理
基于sfilter修改的磁盘过滤驱动,在应用层和驱动进行通讯时,在调用CreateFile时会返回Errorcode 1,原因是对sfilter本身对sfCreate做了处理,不允许对自身对象进行操作。sfilter的sfCreate代码如下:...if (IS_MY_CONTROL_DEVICE_OBJECT(DeviceObject)) { //原创 2011-12-08 14:34:38 · 1485 阅读 · 1 评论 -
sfilter.inf 修改
基于sfilter改的过滤驱动,想把它改个名称。结果就BSOD了。做了如下修改:1、把sfilter的地方都修改为processmon.(注意LoadOrderGroup = "FSFilter Activity Monitor" ,这里的FSFilter不是sfilter)。2、修改了provider和时间等信息。结果发现直接蓝屏了,挨个试了一下。发现只要原创 2011-12-27 15:00:38 · 1338 阅读 · 0 评论 -
本地目录的只读控制(禁止写、删除、新建))
正文: 0 准备工作: 由于是对文件、目录的拦截。首先要知道如何得到路径、文件名、盘符等等。否则 你没有办法去做判断。我使用IFS 中的sfilter修改。因此没有filemon那样有直接的 函数取得。 在驱动中取得盘符和路径是分开的。取得盘符使用RtlVolumeDeviceToDosName (file->DeviceObject,&dosname); 取得路径的方法是:转载 2012-02-07 11:12:12 · 2214 阅读 · 0 评论 -
zwCreateProcess获得目标进程名
参数KeyHandle 为SectionHandle。解决了文件名因为缓冲机制导致的修改文件名,但获得的文件名是老名的问题。有两种文件对象控制区域,DataSection 和 ImageSectionImageSection :文件映像,进程退出时没被释放,而被放到空闲内存区域,以被重用DataSection : 数据副本, 进程退出,被释放在获得文件对象方法中,原创 2012-02-13 17:11:08 · 3113 阅读 · 0 评论 -
《Windows内核原理与实现》中定义的EPROCESS
《Windows内核原理与实现》中,定义的EPROCESS结构如下:(注,没改偏移地址,不能直接使用偏移地址)typedef struct _EPROCESS { KPROCESS Pcb; // +0x000 EX_PUSH_LOCK ProcessLock; //原创 2012-02-27 20:45:48 · 1251 阅读 · 0 评论 -
Windows驱动获得当前进程全路径的方法
方法:通过ZwQueryInformationProcess函数查询ImageFileName支持的系统:XP以上操作系统具体方法如下:BOOL GetProcessPathNameByHandle(HANDLE ProcessHandle,char * path) { DWORD ret; ULONG原创 2012-02-20 14:59:12 · 3177 阅读 · 0 评论 -
各系统 EPROCESS 结构
2000操作系统nt!_EPROCESS +0x000 Pcb : _KPROCESS +0x06c ExitStatus : 259 +0x070 LockEvent : _KEVENT +0x080 LockCount : 1 +0x088 CreateTime : _LA转载 2012-02-18 22:25:58 · 4849 阅读 · 0 评论 -
绕过文件系统过滤驱动和钩子
1对付文件系统过滤驱动文件系统过滤驱动Attach在正常的文件系统之上,监视和过滤我们的文件访问。文件系统驱动栈就是由这一连串的Attach起来的过滤驱动组成。我们可以用IoGetRelatedDeviceObject这个函数来获得一个FileObject对应的最底层的那个功能驱动对象(FDO)。但是这样虽然绕过了那些过滤驱动,却同时也绕过了正常的FSD如Ntfs/Fastfat,因为正常转载 2012-02-28 21:51:48 · 3745 阅读 · 1 评论 -
网络防火墙开发二三事
网络防火墙开发二三事- haoxg -花了近一个月的时间研究 Windows 平台下的网络防火墙相关技术,并实现了一个简单的防火墙。在独自摸索的过程中,由于以往的开发经历从未涉及此领域,所以碰到了不少困难,也走了些弯路。现此项目暂告一段,遂将相关心得整理成文。文章以归纳总结为主,没有创新性技术,高手免看。◎ 防火墙的数据包拦截方式小结网络防火墙都是基于数据包的拦截技术之上的。在 W转载 2012-02-20 22:04:15 · 1682 阅读 · 1 评论 -
查看SSDTHOOK其修改
#define SYSTEMSERVICE(_function) KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_function+1)]typedef unsigned long DWORD;typedef unsigned long *PDWORD;typedef unsigned short WORD;转载 2012-02-29 18:44:50 · 1559 阅读 · 0 评论 -
Win2008 R2 EPROCESS结构
lkd> dt _eprocessnt!_EPROCESS +0x000 Pcb : _KPROCESS +0x160 ProcessLock : _EX_PUSH_LOCK +0x168 CreateTime : _LARGE_INTEGER +0x170 ExitTime : _LARGE_IN原创 2014-10-20 13:11:44 · 1229 阅读 · 0 评论