内核安全编程(一)读写驱动程序1.2
2013-11-16 23:53
169 查看
内核安全编程(一)读写驱动程序1.2
1.1介绍了内核驱动读写程序中驱动程序部分,接下来学习ring3是如何和ring0的这些驱动来交互的 :)代码:
#include "iostream" #include "windows.h" int main() { HANDLE hFile=CreateFileA("\\\\.\\Driver_write0",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(INVALID_HANDLE_VALUE==hFile) { printf("CreateFile False:%d\n",GetLastError()); return 0; } DWORD dwRet=0; int bRet=WriteFile(hFile,"I love U",8,&dwRet,NULL); if(!bRet) { printf("WriteFile False:%d\n",GetLastError()); CloseHandle(hFile); return 0; } //char Buffer[20]; //bRet=ReadFile(hFile,Buffer,20,&dwRet,NULL); //if(!bRet) //{ // printf("ReadFile False:%d\n",GetLastError()); // CloseHandle(hFile); // return 0; //} //printf("Read Buffer from Driver:%s",Buffer); }驱动程序通过CreateFile打开,这里的驱动名称要注意,应该是与创建驱动设备时调用IOCreateDrvice建立的设备名相同,只不过路径为"\\\\..\\"+驱动名。
当调用WriteFile时,会发送IRP_Write,驱动层通过Irp_AssocaitedIrp_SystemBuffer获取或者Irp_MdlAddress获取要写入的数据,然后调用RtlMemCopy将数据拷贝到前面申请的10个字节的空间中。IRP_Read一样。
分别通过写驱动和读驱动测试结果:
相关文章推荐
- 内核安全编程(一)读写驱动程序1.1
- 内核安全编程(一)IO控制驱动程序
- <寒江独钓>Windows内核安全编程__一个简单的Windows串口过滤驱动程序的开发
- 发生系统错误 1275.此驱动程序被阻止加载 寒江孤钓<<windows 内核安全编程>> 学习笔记
- 字符驱动程序内核编程小结
- 内核编程之安全字符串
- Win64 驱动内核编程-27.强制读写受保护的内存
- 内核安全编程(一)共享内存
- Debuggee not connected 寒江孤钓<<windows 内核安全编程>> 学习笔记
- VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术 分类: 磁盘的扇区读写 VC++ 2015-04-29 10:38 357人阅读 评论(0) 收藏
- 对<<寒江独钓---Windows内核安全编程>>中第3章<<串口过滤>>的改进
- <寒江独钓>Windows内核安全编程__键盘过滤之内核级Hook(二)
- <寒江独钓>Windows内核安全编程__Ramdisk源码解读
- ERROR: Symbol file could not be found 寒江孤钓<<windows 内核安全编程>> 学习笔记
- linux 内核模块编程之LED驱动程序(六)
- VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术
- Linux驱动程序开发基础, -->内核模块编程,内核的调试方法
- VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术
- VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术
- VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术