随笔分类 - Windows编程
【WindowsDDK】内核字符串操作蓝屏的一个解决办法
摘要:前一段时间参加了学校的网络安全竞赛。其中有一道题目是“拦截注册表”,使用SSDT HOOK ZwSetKeyValue函数。在自己的ZwSetKeyValue函数中,需要对传递进来的注册表路径与设定好的注册表路径进行匹配(ANSII 比较),如果一样,则被拦截。否则,则放行。 虽然在Windows内核中并不推荐使用C语言的字符串操作的库函数,但又没有其他好的办法的时候仍然需要使用。我在程序中使用了strcpy()与strcmp()函数。可以成功生成驱动,但加载之后,系统会蓝屏。开始始终搞不清楚,多次尝试之后,发现取消DriverEntry开头的#defineINITCODEcode_se...
阅读全文
【Windows编程】基于USB设备的开机锁
摘要:*代码参考了《黑客防线2011精华奉献本上册》的文章《U盘打造开机锁》。原理 U盘是一种即插即用的可移动设备(PnP),它具有VID、PID以及产品序列号等可以标识其身份。引用一下文章来浅要介绍一下VID与PID的相关内容: 不同的U盘具有不同的序列号,因此我们可以通过识别U盘的序列号来判断该计算机上是否插有该U盘,如果没有则会强制关机,如果有U盘的话,则可以进行操作。这就是通过U盘来实现开机锁的基本原理。相关内容 开发环境是VIsual Studio 2005+WDK7600。需要注意的是WDK是必须的。因为程序中需要用到WDK中的一些头文件与库文件。读者可以自行去微软网站下载相关软件...
阅读全文