Windows 内核开发市面上流传的教程基本上都在写 CmRegisterCallback
函数的功能,而 CmRegisterCallbackEx
几乎没有(本人没有见到有描述比较清晰的)。看任何人写的教程都不如看一眼 MSDN 和 Example,跟着微软的例子我详细记录一下这个函数的每个参数,希望可以帮到后面要使用该函数的人,如果大家看到有什么不对的地方请指证,以免我误导他人。
Hide Main Menu 隐藏 Visual Studio 的菜单栏
你有没有发现,使用笔记本开发 Windows 程序的时候,屏幕的宽度虽然可以满足 Visual Studio 的工具栏和代码编辑器的位置,但是高度却很不尽人意。能看到代码的位置很有限,如果再把输出、搜索等窗口放到代码编辑框的下面,那看代码的空间有少了很多,哪怕你是高分辨率的屏幕也会有同样的感受。所以对使用笔记本开发程序的人来说,Visual Studio 纵向显示内容的区域真的是寸土寸金。
内核事件 KEVENT 实现驱动与应用层通讯
前段时间一直在学习内核监控进程创建的知识,虽然成功监视,但一直在内核输出到 DebugView 中,不能通知我们的应用程序来显示指定内容,无论如何也不方便,所以赶在周末参考了 Windows 内核安全与驱动开发
中第五章 “应用与内核通讯” 制作了以下程序。程序主要使用了内核事件 KEVENT
实现同步,更多请参考 Windows 内核安全与驱动开发
,程序运行后的效果如下:
Win7 将程序在任务栏固定或取消固定(Au3)
Vista 以后微软在任务栏加入了新的快速启动功能(可能叫快速启动已经不合适了),程序需要人为的去手动点击固定到任务栏或从任务栏取消固定,且微软没有提供任何接口让用户在后台静默设定默认的快速启动程序,这也是为了保护任务栏的生态,不被一些恶意软件强制修改。但如果你必须要通过静默的方式实现这个功能怎么办?别着急,使用以下脚本即可解决你的问题。
驱动实现监控进程创建及退出(支持64-bit系统)
前段时间借助开源项目 EasyHook 制作了一个在应用层下的监控进程创建的工具。但应用层实现有一些限制,比如 Hook 时风险较高、能取到的信息有限、XP 和 Win7 需要 Hook 不同的函数等。这些问题最终让我向内核研究,希望可以通过一份代码,编译出适应不同系统的驱动程序实现我们的需求,所以就有了本文的内容,我们先来看一下效果图。
VS2015+WDK10+Win10 Win7以上系统驱动发开环境搭建
文本主要介绍 Win10 系统下安装 VS2015 及 WDK10 驱动开发环境的搭建,搭建完成后可通过 VS2015 直接新建驱动项目并编译通过后可在 Win7 以上系统运行。无需自己制作模版等繁琐步骤(其实早在 VS2013+WDK8.1 的时候就已经支持直接从 IDE 中新建项目)。以下是相关截图:
修改注册表解决 Win7 DbgView 不显示调试信息
默认情况下 Win7 系统使用 DebugView 无法查看到我们在驱动或者应用程序中打印的信息,如 OutputDebugString
,KdPrint
等函数的输出。这需要在注册表中单独的设置使其可以打印相关信息。注册表如下: