上篇讲到通过DuplicateHandle共享内核对象的用法。下面先讲讲DuplicateHandle另一种用法:
假设一个进程对一个文件映射对象拥有读写权限。在程序的某个位置,调用一个函数,并希望它对文件只有读权限。应该使用DuplicateHandle为现有的对象创建一个新的只有读权限的句柄。然后把这个句柄传给该函数,而不是用原来的句柄。
int WINAPI_tWinMain(HINSTANCE hInstExe, HINSTANCE hPrevInstance, LPTSTR szCmdLine, int nCmdShow){
HANDLE hFileMapRW = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,
PAGE_READWRITE,0,10240,NULL);
HANDLE hFileMapRO;
DuplicateHandle(GetCurrentProcess(), hFileMapRW, GetCurrentProcess(),
&hFileMapRO, FILE_MAP_READ, FALSE,0);
//......
}
下面讨论(内核)对象命名
中遗留下来的问题。
终端服务(Terminal Service)
和前面的描述有些差别。在运行终端服务的计算机中,有多个内核对象的命名空间。其中一个是全局的,主要由服务使用,每个客户端都能够访问。另外,每个客户端都有自己的内核对象命名空间。
//通过ProcessIdToSessionId获得该进程所在的终端会话。
DWORD processID = GetCurrentProcessId();
DWORD sessionID;
if(ProcessIdToSessionId(processID, &sessioId)){
tprintf(TEXT("^^^^^^^"));
}else{
//.............
}
//显示的将内核对象创建在全局命名空间中。
HANDLE h = CreateEvent(NULL,FALSE, FALSE,TEXT("Global\\MyName"));
//显示的将内核对象创建在当前会话的命名空间中。
HANDLE h = CreateEvent(NULL,FALSE, FALSE,TEXT("Local\\MyName"));
对于一般的内核对象,我们最好应该模仿上面的方式,创建自己专有的命名空间,从而防止恶意程序的Dos攻击。
分享到:
相关推荐
Windows 编程入门涵盖了 Windows 操作系统、Windows 基本编程理论、API 文档、字符集与字符编码、内核对象、线程 API、WinDbg、SDK、PE 文件格式、文件系统等多个方面的知识点,是 Windows 编程的必备知识。
《寒江独钓--Windows内核安全编程》是一份深入探讨Windows操作系统内核安全编程的珍贵资源,由知名技术专家“寒江独钓”编著。这份资料包含了丰富的Windows内核驱动开发实例,覆盖了从磁盘驱动、文件系统驱动到网络...
《寒江独钓——Windows内核安全编程》是一本深入探讨Windows操作系统内核安全的专著。书名取自古诗词,寓意在信息技术的海洋中独自探索深奥的内核安全领域,暗示了作者对这一主题的独到见解和深入研究。这本书主要...
《寒江独钓——Windows内核安全编程》这一系列教程,是针对Windows操作系统内核安全编程的深度探讨。在Windows操作系统中,内核是系统的核心部分,它负责管理硬件资源,提供基本的服务供上层软件调用。内核安全编程...
### 多任务编程——Windows内核对象 #### 引言 在探讨Windows多任务编程时,内核对象是一个核心概念,对于深入理解Windows操作系统的工作原理至关重要。本文将围绕这一主题展开,详细介绍Windows内核对象的基本...
《天书夜读——从汇编语言到Windows内核编程》是一本深入探讨计算机底层原理和技术的书籍,尤其关注汇编语言与操作系统内核的交互。汇编语言是计算机科学的基础,它允许程序员直接控制硬件,是理解计算机工作原理的...
这包括了解Windows的内核、进程和线程管理、以及内存管理等核心概念。在学习Visual C++进行Windows程序开发时,通常会用到Windows API(应用程序编程接口),它是操作系统提供的一系列函数和宏,用来帮助开发者访问...
1. Windows内核概述:介绍Windows操作系统的核心部分,即内核,它是操作系统中管理硬件资源和软件资源的程序集合。内核负责进程调度、内存管理、文件系统、网络通信以及安全机制等基本功能。 2. ReactOS项目介绍:...
5. **Windows核心系统服务**: - **Windows执行体**:包含了系统服务、设备驱动程序、文件系统、网络堆栈等。 - **Windows内核**:处理调度、内存管理、中断处理等核心功能。 - **设备驱动程序**:为硬件设备提供...
1. **内核模式与用户模式**:在Windows操作系统中,程序运行在两种不同的模式下——内核模式和用户模式。内核模式允许程序直接访问硬件资源,而用户模式则对程序的操作进行了限制,以提高系统的稳定性和安全性。 2. ...
《Windows内核PDF》资源包含了两本重量级的书籍——官方英文原版的"Microsoft Windows Internals"和潘爱民翻译的"Windows内核原理与实现",这为深入理解Windows操作系统内核提供了宝贵的资料。 "Microsoft Windows ...
- **内核模块**:介绍了Windows内核的基本结构与功能,包括进程管理、内存管理、设备驱动等核心组件。 - **驱动程序模型**:分析了不同版本Windows中的驱动程序模型(如WDM、NDIS等),以及它们如何与内核交互以提供...
内核漏洞利用技术是网络安全领域中的重要研究方向,它涉及到操作系统的核心部分——内核的安全性。内核是操作系统的心脏,负责管理硬件资源、调度进程、处理系统调用等关键任务,因此,任何针对内核的漏洞都可能导致...
Windows内核是操作系统的核心部分,负责管理和调度系统资源。攻击者常利用内核漏洞植入根套件,如通过权限提升、驱动程序注入等方法。一旦成功,根套件可以控制网络连接、文件系统、内存管理等关键功能。 **三、C++...
- **Win32 API**:详细介绍Windows编程中最常用的API之一——Win32 API,包括其功能和用法。 - **COM组件对象模型**:讲解COM模型的基本概念以及如何利用它来构建组件化应用程序。 - **.NET Framework**:介绍.NET ...
《Windows操作系统核心技术——讲义与实验》是一份深入探讨Windows操作系统内部机制的教育资源,涵盖了从底层硬件交互到高级编程接口的广泛主题。这份资料主要针对Java、VB.NET、.NET、C/C++以及C#等编程语言的...
本文将聚焦于一个特定的内核开发实例——键盘记录器,通过分析“ctrl2cap”这个源码,揭示其在Windows内核层实现键盘监控和记录的原理。 键盘记录器,顾名思义,是一种可以捕捉并存储用户键盘输入的程序。在系统...
在IT领域,Windows驱动编程是构建操作系统与硬件设备交互的核心技术。这三本电子书——"MSWDM.chm"、"WALTONEY.CHM"和"WindowsWDMDriver.chm"显然涵盖了这一主题,旨在帮助读者深入理解并掌握Windows驱动程序的开发...