摘要: 第一个内核程序新建项目设置项目属性代码#include ​// 卸载VOID MyDriverUnload(PDRIVER_OBJECT driver){ // 避免编译器报未引用参数的报告 UNREFERENCED_PARAMETER(driver); // 打印 KdPrint(("Unload\n"));}​// 相当于mainNTSTATUS DriverEntry... 阅读全文
posted @ 2019-08-27 17:04 ltyandy 阅读(295) 评论(0) 推荐(1) 编辑
摘要: 环境安装 环境安装需要极其谨慎, 因为稍有不慎, 就需要重装系统. 驱动开发环境依赖WDK(Windows driver kit),也就是微软的驱动开发工具包. 这个工具包里面包含了驱动程序的编译工具 , 头文件, 库等. 缺了这个, 无法编译驱动程序. WDK有很多的版本, 版本的选择很重要. 一 阅读全文
posted @ 2019-08-27 15:05 ltyandy 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 调试寄存器 DRO~ DR7是调试寄存器. DRO ~ DR3 用于保存断点的线性地址. DR7 - 分别保存4个断点的中断条件. DR6 - 保存断点命中后的信息. 控制寄存器 CR0 包含处理器的大量控制标志位. 下面列出常用的三种: PE - 是否启用保护模式,置1则启用 PG - 是否使用分 阅读全文
posted @ 2019-08-27 14:59 ltyandy 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 1.双机调试下虚拟机打开test.exe文件int main(){ printf("%p" , "aaabbbccc");}exe打印的虚拟地址:00217B302.转二进制: 00000000 ‭00100001 01111011 00110000‬按10-10-12拆分:00000000‭00 1000010111 101100110000‬变成了:0-217-B303.kd> ! pr... 阅读全文
posted @ 2019-08-27 14:57 ltyandy 阅读(761) 评论(0) 推荐(0) 编辑
摘要: 概述每个进程都有0~4Gb的虚拟地址空间, 但是每个进程所使用的虚拟地址空间映射到的物理内存都是不一样的.意思就说是, 同样是虚拟地址0x401000 , 在不同的进程中能够访问出不同的数据来.这是因为Windows使用CPU的分页机制, 将一个进程的虚拟地址映射到了不同的物理地址上.分页机制当需要使用一个虚拟地址时, 就需要通过WindowsAPI先预定内存,然后再提交内存, 这样之后才能使用.... 阅读全文
posted @ 2019-08-27 14:53 ltyandy 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 壳2创建MFC-基于对话框项目。绘制界面图片插入,添加工具-picture control-属性属性-设置一键加壳按钮实现void CMFCShellDlg::OnBnClickedButton1(){ //设置过滤器 TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"); // 构造打开文件对话框 CFile... 阅读全文
posted @ 2019-08-27 00:25 ltyandy 阅读(365) 评论(1) 推荐(0) 编辑