我与 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 ...
随机推荐
- 【深度学习系列】用PaddlePaddle和Tensorflow进行图像分类
上个月发布了四篇文章,主要讲了深度学习中的"hello world"----mnist图像识别,以及卷积神经网络的原理详解,包括基本原理.自己手写CNN和paddlepaddle的 ...
- RaspberryPi2B使用bcm2835c库控制GPIO
RaspberryPi2B使用bcm2835c库控制GPIO 网上有很多RaspberryPi控制GPIO的方法,有Python.WiringPi.bcm2835 C library 使用bcm283 ...
- 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心
在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...
- codeforces 895B XK Segments 二分 思维
codeforces 895B XK Segments 题目大意: 寻找符合要求的\((i,j)\)对,有:\[a_i \le a_j \] 同时存在\(k\),且\(k\)能够被\(x\)整除,\( ...
- pku 1401 Factorial 算数基本定理 && 51nod 1003 阶乘后面0的数量
链接:http://poj.org/problem?id=1401 题意:计算N!的末尾0的个数 思路:算数基本定理 有0,分解为2*5,寻找2*5的对数,2的因子个数大于5,转化为寻找因子5的个数. ...
- 51Nod 1108 距离之和最小 V2 1096 距离之和最小 中位数性质
1108 距离之和最小 V2基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注三维空间上有N个点, 求一个点使它到这N个点的曼哈顿距离之和最小,输出这个最小 ...
- saltstack_grains
1. [root@kylin1 grains]# cd /srv/salt/_grains/ [root@kylin1 _grains]# ls cpu.py [root@kylin1 _grains ...
- 数据库服务器---Tps
事务处理系统:Transactionprocessingsystems(TPS) 提高事务处理效率与保证其正确性 在数据(信息)发生处将它们记录下来 通过OLTP产生新的信息 将信息保存到数据库中供其 ...
- SpringCache与redis集成,优雅的缓存解决方案
缓存可以说是加速服务响应速度的一种非常有效并且简单的方式.在缓存领域,有很多知名的框架,如EhCache .Guava.HazelCast等.Redis作为key-value型数据库,由于他的这一特性 ...
- UWP 实现App多语言为所欲为切换
为所欲为,嗯 话不多说,先看效果吧(事先说明,我的方法不是最好的,但是我用着最有效.) [吐槽一下博客园上传的图片,我的App敲鸡漂亮滴,自带亚克力效果,怎么图片上传上来这么多的噪点啊.] [ 商店地 ...