我与 windows kernel 的一段时光
写在前面
本科毕业设计是实现一个基于 windows 的透明加密过滤系统。由此对 windows kernel development,尤其是 file system 进行过较为深入的探索。对于防终止的需求,转到调用层实现,由此对 HOOK 技术进行了系统的学习和探索。
学习过程中作了不少笔记,但由于时间原因只是间断零碎的整理了一些到博客中。后来研究生阶段转向 machine learning 和 data mining 的相关课题,对系统安全的这一块内容涉及甚少,也就没有进一步整理更新。
期间有不少网友与我沟通联系表示对该话题很感兴趣。工作落实以后,对自己的文件进行整理,现在将一些自己的学习资料跟大家分享,希望对研究系统尤其是 windows 内核的同仁们有一点帮助。
这里主要对曾经已经发布的资料进行梳理并将一些 demo 进行分享。 需要注意的是,分享的程序在 Windows 7 及以前版本的操作系统上运行没有问题,但不保证其他环境可以正常运行。对于相关的环境配置和参数说明,至今不一定适用。建议读者注意参考官网最新的文档,通过 google或更新的blog解决问题。不过话说回来,最靠谱的还是官方文档!!。
此处主要是对自己工作的一个总结,如果能对大家起到帮助就更好了。代码和调试过程的细节本人不再提供支持和维护,毕竟精力有限。由于个人能力有限,资料难免有纰漏,欢迎指正。如果大家有更有趣的发现或更好的进展欢迎分享,相互学习。
总的来说,整个学习过程确实踩了不少坑,但也正因此让整个过程更有趣。 The road to success was trial and error development, recompilation, and lots of crashes. ——— 这句话是曾经看书时记下来的,用来形容这一过程再贴切不过。与大家共勉~。
github 文件夹, 可能会不定期更新。
资料整理
相关内容整理如下。技术分享-windows kernel 是一次技术沙龙的分享,对内核程序开发进行了一个粗略的介绍,其中还分享了一些有趣的小 demo。HOOK,一些 HOOK 的小程序和code。防终止的基于Windows透明加密 过滤系统研究与实现 是我的论文和答辩 ppt,可以对 windows 内核文件系统一个较为系统的了解。
- Windebug双机调试环境搭建
- 实战调试,第一个内核程序
- 串口过滤
- visual studio 2010 配置驱动开发环境
- 内核环境及其特殊性,驱动编程基础篇
- 技术原理 & 键盘过滤框架
- 键盘过滤的请求处理
- 从请求中打印出按键信息
- 键盘过滤第一个例子ctrl2cap
- HOOK分发函数
- 寒假学习内核编程小结
- 内核编程之安全字符串
- HOOK API(一)——HOOK基础+一个鼠标钩子实例.blog.code
- HOOK API(二)—— HOOK自己程序的 MessageBox. blog. code
- HOOK API(三)—— HOOK 所有程序的 MessageBox.blog.code
- HOOK API(四)—— 进程防终止.blog. code
- HOOK 剪切板. code
一些学习资源:
- Everything Windows Driver Development,OSR Online
- 看雪
- msdn
- 微软官网
- CODE PROJECT
- 驱网
- CSDN、博客园等也有一些文章。会百度,会google也能找到的。
- 几本重要的书:《windows 核心编程》,《汉江独钓windows内核安全编程》,《汇编语言》--王爽,微软官方文档
我与 windows kernel 的一段时光的更多相关文章
- Windows Kernel Way 1:Windows内核调试技术
掌握Windows内核调试技术是学习与研究Windows内核的基础,调试Windows内核的方式大致分为两种: (1)通过Windbg工具在Windows系统运行之初连接到Windows内核,连接成功 ...
- Windows Kernel Way 扉言
七年寒窗,但求一道. 笔者在学习windows/linux以及各类编程语言.框架之初因摸不到门路而磕磕绊绊,因寻不到明师而步履蹒跚,或不知缘从何起,或不知路在何处,只能尝试.回溯.重来.反反复复,竟也 ...
- Windows kernel pool 初探(2014.12)
Windows kernel pool 1. 简介 Kernel pool类似于Windows用户层所使用Heap,其为内核组件提供系统资源.在系统初始化的时候,内存管理模块就创建了pool. 严格的 ...
- Windows Kernel Security Training Courses
http://www.codemachine.com/courses.html#kerdbg Windows Kernel Internals for Security Researchers Thi ...
- [微软官网]One Windows Kernel
One Windows Kernel https://techcommunity.microsoft.com/t5/Windows-Kernel-Internals/One-Windows-Kerne ...
- 显示器驱动程序 NVIDIA Windows Kernel Mode Driver Version 已停止响应 并且己成功恢复 解决方法
原文:http://news.160.com/?p=1890 在玩游戏中 经常 出现显示器驱动程序 NVIDIA Windows Kernel Mode Driver Version 已停止响应 并且 ...
- OD: Windows Kernel Debug
内核调试入门 内核程序运行在内核态,因此不能像对用户态应用程序那样来调试.关于内核调试方面的知识请参考<软件调试>这本书.目前内核调试主要有以下三种方法. 一是使用硬件调试器,它通过特定的 ...
- Windows多线程中关键段(Critical Section)的应用
先看如下代码:(用Visual Studio 2010按照Win32 Console程序创建向导创建) #include "stdafx.h" #include <proce ...
- MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45
wget "https://raw.githubusercontent.com/rapid7/metasploit-framework/6d81ca42087efd6548bfcf92417 ...
随机推荐
- 源码剖析Django REST framework的请求生命周期
学习Django的时候知道,在Django请求的生命周期中,请求经过WSGI和中间件到达路由,不管是FBV还是CBV都会先执行View视图函数中的dispatch方法 REST framework是基 ...
- Less的内置函数
杂项函数 color 解析颜色,将代表颜色的字符串转换为颜色值. 参数: string: 代表颜色值的字符串. 返回值: color 案例: color("#aaa"); 输出: ...
- CATransition
CATransition *transition = [CATransition animation]; transition.duration = 1.0f; /* 间隔时间* ...
- 洛谷教主花园dp
洛谷-教主的花园-动态规划 题目描述 教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价 ...
- nyoj 2 括号配对问题 栈
nyoj 2 括号配对问题 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=2 思路: 栈:'(' '['入栈,遇到 ']' ')'出栈 ...
- XAMPP重要文件目录及配置
一.XAMPP 的安装过程 1:下载XAMPP 的 Linux 版 (1.7.4) http://www.apachefriends.org/en/xampp-linux.html#374 2:安装( ...
- SQL图像查看器 —— SQL Image Viewer
有时候往数据库里面存储了一些图片,但是如果不写读取程序的话,就不知道存储的对不对. 或者查看SQL数据库里面二进制看不懂,这个看图片很直观的. 就需要SQL Image Viewer这么一个
- eclipse导入新项目后,运行时找不到主类解决办法
最近在学习多线程,今天下了一套源码,导入到eclipse里后,随便找了个带main()的类试了一下,找不到主类. 首先想到的解决办法是把工程clean一下,并没有用.去网上找了一个遍终于找到了管用的方 ...
- 通过反射实现Microsoft Visual Studio International Pack 1.0 SR1里面的两个类
这两天打算实现拼音和简繁转换的方法, 发现Microsoft Visual Studio International Pack 1.0 SR1 提供了 . 下载地址 但是基于某些原因, 一来下载 ...
- 优先队列 poj3253 Fence Repair
Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 51411 Accepted: 16879 De ...