05 2016 档案

摘要:中断请求级 中断请求被分为软件中断和硬件中断两种,这些中断都映射成不同级别的中断请求级。每个中断请求都有各自的优先级别,正在运行的线程随时都可以被中断打断,进入到中断处理程序。优先级高的中断来临时,处在优先级低的中断处理程序,也会被打断,进入到更高级别的中断处理函数。 Windows规定了32个中断 阅读全文
posted @ 2016-05-30 17:22 _No.47 阅读(940) 评论(0) 推荐(0)
摘要:缓冲区方式读写操作 设置缓冲区读写方式: 读写操作一般是由ReadFile和WriteFile函数引起的,这里先以WriteFile函数为例进行介绍。WriteFile要求用户提供一段缓冲区,并且说明缓冲区的大小,然后WriteFile将这段内存的数据传入到驱动程序中。这种方法,操作系统将应用程序提 阅读全文
posted @ 2016-05-26 17:59 _No.47 阅读(5831) 评论(0) 推荐(0)
摘要:驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的。用户模式下所有对驱动程序的I/O请求,全部由操作系统转化为一个叫做IRP的数据结构,不同的IRP数据会被“派遣”到不同的派遣函数中。 IRP与派遣函数 IRP的全称是输入输出请求包。 其部分结构如下: 用图表示数据结构 阅读全文
posted @ 2016-05-26 11:26 _No.47 阅读(1831) 评论(0) 推荐(0)
摘要:一般这种错误就是你使用一个函数的时候,可能只是在头文件中对他进行了声明,但是并没有在.c文件对他进行实现。 或者是没有引入相应的lib文件。 可以#pragma comment(lib, "XXX.lib")来实现,也可以添加外部依赖库来实现: 注意路径要正确。 阅读全文
posted @ 2016-05-26 10:34 _No.47 阅读(288) 评论(0) 推荐(0)
摘要:内核模式下字符串操作 ANSI_STRING和UNICODE_STRING分别定义如下: 以UnicodeString类型对象进行初始化为例,代码如下: 输出: 进行复制字符串操作,代码如下: 输出: 但是如果这里改为: 加载驱动运行就会蓝屏。Why?其实,RltFreeUnicodeString是 阅读全文
posted @ 2016-05-24 17:50 _No.47 阅读(766) 评论(0) 推荐(0)
摘要:虚拟内存地址 Windows所有的程序(Ring0和Ring3层)可以操作的都是虚拟内存。有一部分单元会和物理内存对应起来,但并非一一对应,多个虚拟内存页可以映射同一个物理内存页。还有一部分单元会被映射成磁盘上的文件,并标记为脏的。读取这段虚拟内存的时候,系统会发出一个异常,此时会出发异常处理函数, 阅读全文
posted @ 2016-05-23 21:55 _No.47 阅读(1083) 评论(0) 推荐(0)
摘要:驱动对象 每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱动加载的时候被内核中的对象管理程序所创建的。驱动对象用DRIVER_OBJECT数据结构表示,它作为驱动的一个实例被内核加载,并且内核对一个驱动只加载一个实例。确切的说,是由内核中的I/O管理器负责加载的。驱动程序需要在Driv 阅读全文
posted @ 2016-05-22 11:36 _No.47 阅读(5899) 评论(0) 推荐(0)
摘要:之前我们加载驱动都是利用INSTDRV这个应用,其原理是在注册表中写入相应的字段,这一节我们手动编写代码去加载驱动,其原理类似: 设备驱动程序的动态加载主要由服务控制管理程序(Service Control Manager,SCM)系统组件完成。加载和卸载NT驱动分为四个步骤: 为NT驱动创建新的服 阅读全文
posted @ 2016-05-21 09:48 _No.47 阅读(2262) 评论(0) 推荐(0)
摘要:拷贝 删除 阅读全文
posted @ 2016-05-21 09:27 _No.47 阅读(192) 评论(0) 推荐(0)
摘要:一、Win键相关的快捷键键位 操作Win + Home 将所有使用中窗口以外的窗口最小化(和摇动使用中窗口一样意思)Win + Space空格键 将所有桌面上的窗口透明化(和鼠标移到工作列的最右下角一样意思)Win +上方向键 最大化使用中窗口(和将窗口用鼠标拖到屏幕上缘一样意思)Shift + W 阅读全文
posted @ 2016-05-21 09:18 _No.47 阅读(506) 评论(0) 推荐(0)
摘要:编写如下代码: 运行会报错: 这里的原因是有没有引用到的形参,需要添加如下代码即可: 记得在系统启动时按F8禁用掉数字签名: 将编译好的驱动拖入虚拟机,以管理员身份运行DbgView捕捉内核态输出数据,以管理员身份运行InstDrv以加载驱动,我们就可以看到启动和停止时,DriverEntry和Dr 阅读全文
posted @ 2016-05-19 22:41 _No.47 阅读(1344) 评论(0) 推荐(0)
摘要:转自:http://blog.sina.com.cn/s/blog_4b6e98810100n37k.html 休眠(Hibernate),将系统切换到该模式后,系统会自动将内存中的数据全部转存到硬盘上一个休眠文件中,然后切断对所有设备的供电。这样当恢复的时候,系统会从硬盘上将休眠文件的内容直接读入 阅读全文
posted @ 2016-05-16 14:50 _No.47 阅读(4831) 评论(0) 推荐(0)
摘要:实验原本是模拟一个密码验证程序,其代码如下: 发现漏洞 其中verify_password代码如下: 用红框圈起来的地方发现有一个缓冲区漏洞,我们就利用这里进行栈溢出操作。我们这里只是尝试着弹出一个calc.exe。 构造汇编代码来利用漏洞 先构造汇编代码,这里是先利用LoadLibrary加载ms 阅读全文
posted @ 2016-05-10 23:40 _No.47 阅读(2734) 评论(0) 推荐(0)