Windows 内核开发市面上流传的教程基本上都在写 CmRegisterCallback 函数的功能,而 CmRegisterCallbackEx 几乎没有(本人没有见到有描述比较清晰的)。看任何人写的教程都不如看一眼 MSDNExample,跟着微软的例子我详细记录一下这个函数的每个参数,希望可以帮到后面要使用该函数的人,如果大家看到有什么不对的地方请指证,以免我误导他人。

Continue reading

你有没有发现,使用笔记本开发 Windows 程序的时候,屏幕的宽度虽然可以满足 Visual Studio 的工具栏和代码编辑器的位置,但是高度却很不尽人意。能看到代码的位置很有限,如果再把输出、搜索等窗口放到代码编辑框的下面,那看代码的空间有少了很多,哪怕你是高分辨率的屏幕也会有同样的感受。所以对使用笔记本开发程序的人来说,Visual Studio 纵向显示内容的区域真的是寸土寸金。

Continue reading

前段时间一直在学习内核监控进程创建的知识,虽然成功监视,但一直在内核输出到 DebugView 中,不能通知我们的应用程序来显示指定内容,无论如何也不方便,所以赶在周末参考了 Windows 内核安全与驱动开发 中第五章 “应用与内核通讯” 制作了以下程序。程序主要使用了内核事件 KEVENT 实现同步,更多请参考 Windows 内核安全与驱动开发,程序运行后的效果如下:

Continue reading

Vista 以后微软在任务栏加入了新的快速启动功能(可能叫快速启动已经不合适了),程序需要人为的去手动点击固定到任务栏或从任务栏取消固定,且微软没有提供任何接口让用户在后台静默设定默认的快速启动程序,这也是为了保护任务栏的生态,不被一些恶意软件强制修改。但如果你必须要通过静默的方式实现这个功能怎么办?别着急,使用以下脚本即可解决你的问题。

Continue reading

前段时间借助开源项目 EasyHook 制作了一个在应用层下的监控进程创建的工具。但应用层实现有一些限制,比如 Hook 时风险较高、能取到的信息有限、XP 和 Win7 需要 Hook 不同的函数等。这些问题最终让我向内核研究,希望可以通过一份代码,编译出适应不同系统的驱动程序实现我们的需求,所以就有了本文的内容,我们先来看一下效果图。

Continue reading