bluehacker

Windows2k下的同步机制

windows2000在同步机制上有一个非常独到的设计,kernel中实现mutualexclusive的关键是IRQL.这是MS的巧妙设计,系统中允许的每个线程都被分配一个适合的IRQL,普通的usermode线程和系统线程均运行于Passive_LEVEL,这是最低一级的IRQL,而线程调度器运行在Dispactchlevel,从di

windows2k的设备安装

win2k下的APC机制

利用filter driver实现键盘记录

hook未导出native api的好办法

昨天写的那个hookssdt的驱动,用的是硬编码的办法,这样在不同的系统中由于NtShutdownSystem的服务号都不相同,所以在不同的操作系统上代码都要做修改,这个比较不爽.今天听老大PJF说有避免硬编码的方法,google了下,发现下面的文章,代码稍微改了改,用在我的驱动中,果然好使.

编程获取硬盘序列号

昨天查了查网上的文章,发现有人已经提出通过向磁盘驱动程序发送Ioctl请求来获取硬盘序列号的。参考别人的代码,把那个获取硬盘序列号的程序写出来了,测试通过。下面的API函数用于获取硬盘序列号:SYSINFO_APIBOOLGetHardDiskSerialNumber(char*buffer,intDiskNum){DWO

WDF设备驱动程序

\去年花了点时间了解了下microsoft下一代驱动程序模型WDF的东东.这两天写了个帖子用来罐水1.引言设备驱动程序是硬件设备连接到计算机系统的软件接口,任何设备都必须有相应的驱动程序才能在计算机系统上正常工作。设备驱动程序的优劣直接关系到整个系统的性能和稳定性,

NDIS_PROTOCOL_BLOCK 结构

NDIS_PROTOCOL_BLOCK结构的完整定义我翻遍了DDK都没找到,翻windows2000源代码也没找到。google到驱动开发网上一篇讲封包过滤技术的文章,里面给出了NDIS_PROTOCOL_BLOCK的定义。我打印出来对照的一个NDISprotocolhook的代码看,总感觉这个结构的定义有问题。不爽了好几

关于NT内核的apc机制

AsynchronousProcedureCalls(APCs)areafundamentalbuildingblockinNTsasynchronousprocessingarchitecture.AnunderstandingofthismechanismisessentialtobetterunderstandhowNTworksandperformsseveralcoresystemoperations.Basically,APCsallowuserprogramsandsystemco

Asynchronous Procedure Calls in NT

DoingThings"Whenever"-AsynchronousProcedureCallsinNTTheNTInsider,Vol5,Issue1,Jan-Feb1998|Published:15-Feb-98|Modified:20-Aug-02InWindowsNT,theconceptof"AsynchronousProcedureCalls"(APCs)arementionednumeroustimes,althoughpreciselywh

为什么在中断上下文中不能休眠?

这个问题有很多人问过,我看了下linux得内核代码,原因如下当然我不能保证一定对,如果有牛人理解得更好,欢迎指正)1.中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级的中断,它不会被进程打断(这点对于softirq,tasklet也

关于NT驱动irp pending的注意事项

用APC实现在内核模式运行用户程序

关于NT内核cancel irp的问题

4.4bsd中的signal实现part2

psignal()分下面几步post信号:1.根据进程描述符里面的p_sigignore,p_sigmask,和p_sigcatch域确定进程要采取的行为.如果对于这个进程既不block(即mask)也不忽略也不catch,则认为采用defaultaction.(15句),如果被忽略则直接返回什么也不做(8~9句),如果被屏蔽则只记录不del