写在前面

本科毕业设计是实现一个基于 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 内核文件系统一个较为系统的了解。

一些学习资源:

我与 windows kernel 的一段时光的更多相关文章

  1. Windows Kernel Way 1:Windows内核调试技术

    掌握Windows内核调试技术是学习与研究Windows内核的基础,调试Windows内核的方式大致分为两种: (1)通过Windbg工具在Windows系统运行之初连接到Windows内核,连接成功 ...

  2. Windows Kernel Way 扉言

    七年寒窗,但求一道. 笔者在学习windows/linux以及各类编程语言.框架之初因摸不到门路而磕磕绊绊,因寻不到明师而步履蹒跚,或不知缘从何起,或不知路在何处,只能尝试.回溯.重来.反反复复,竟也 ...

  3. Windows kernel pool 初探(2014.12)

    Windows kernel pool 1. 简介 Kernel pool类似于Windows用户层所使用Heap,其为内核组件提供系统资源.在系统初始化的时候,内存管理模块就创建了pool. 严格的 ...

  4. Windows Kernel Security Training Courses

    http://www.codemachine.com/courses.html#kerdbg Windows Kernel Internals for Security Researchers Thi ...

  5. [微软官网]One Windows Kernel

    One Windows Kernel https://techcommunity.microsoft.com/t5/Windows-Kernel-Internals/One-Windows-Kerne ...

  6. 显示器驱动程序 NVIDIA Windows Kernel Mode Driver Version 已停止响应 并且己成功恢复 解决方法

    原文:http://news.160.com/?p=1890 在玩游戏中 经常 出现显示器驱动程序 NVIDIA Windows Kernel Mode Driver Version 已停止响应 并且 ...

  7. OD: Windows Kernel Debug

    内核调试入门 内核程序运行在内核态,因此不能像对用户态应用程序那样来调试.关于内核调试方面的知识请参考<软件调试>这本书.目前内核调试主要有以下三种方法. 一是使用硬件调试器,它通过特定的 ...

  8. Windows多线程中关键段(Critical Section)的应用

    先看如下代码:(用Visual Studio 2010按照Win32 Console程序创建向导创建) #include "stdafx.h" #include <proce ...

  9. MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45

    wget "https://raw.githubusercontent.com/rapid7/metasploit-framework/6d81ca42087efd6548bfcf92417 ...

随机推荐

  1. P2704 炮兵阵地

    题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图.在每一格平原地形上最 ...

  2. Android APK反编译 apktool使用教程

    2017年棋牌游戏突然就火了,正所谓春江水暖鸭先知本猿处在软件行业中就能清晰的感受到市场的变化,最近老家那边也是玩的风生水起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路 (注:反编译 ...

  3. SaltStack 架构自动部署 03

    架构图 模块化部署 系统模块:系统优化,内核参数,网络参数 功能模块:如:nginx,tomcat, 业务模块: 1.在salt-master端修改配置文件 [root@01 salt]# vim / ...

  4. 关于Unity里动态加载图片

    Resources.Load 使用该方法可以动态加载资源 过程: 1.首先需要在Project面板里创建一个名为Resources的文件夹(名字必须是这个 不能写错啊) 2.把要加载的游戏对象放到该目 ...

  5. JavaScript正则表达式(Regular Expression):RegExp对象

    第一部分:新建正则表达式 JavaScript中正则表达式是参照Perl 5(一门历史很悠久的语言,现在tiobe编程语言排行依然在10名左右)建立的. 新建正则表达式的方法有两种: 1.使用字面量( ...

  6. leetcode算法题2: 合并两个二叉树。递归,如何切入并保持清醒?

    /* Given two binary trees and imagine that when you put one of them to cover the other, some nodes o ...

  7. 自己动手实现mybatis动态sql

    发现要坚持写博客真的是一件很困难的事情,各种原因都会导致顾不上博客.本来打算写自己动手实现orm,看看时间,还是先实现一个动态sql,下次有时间再补上orm完整的实现吧. 用过mybatis的人,估计 ...

  8. JavaSE之绘制菱形

    在JavaSE的算法练习中,绘制菱形是一个比较常见的案例.菱形效果如下图所示: 我们在解决算法问题时,通常情况下,先不要急于马上编码,而是要先观察,找出解决问题的关键所在. 在上图中,我们可以看到,菱 ...

  9. zzuli 1815: easy problem 打表

    1815: easy problem Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 243  Solved: 108 SubmitStatusWeb ...

  10. Scala入门系列(十):函数式编程之集合操作

    1. Scala的集合体系结构 Scala中的集合体系主要包括(结构跟Java相似): Iterable(所有集合trait的根trait) Seq(Range.ArrayBuffer.List等) ...