建立一个不能打开的文件(占坑)---C语言高级API调用
来源:互联网 发布:货物找车软件 编辑:程序博客网 时间:2024/05/16 14:28
建立一个不能打开的文件。当你看懂这段代码,就是一次质的改变。
源自 windows 核心编程 扩展...
#include <windows.h>void RaiseToDebugP(){/* GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄 LookupPrivilegeValue 查询进程的权限 AdjustTokenPrivileges 调整令牌权限*/ HANDLE hToken; HANDLE hProcess = GetCurrentProcess(); if ( OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) ) { TOKEN_PRIVILEGES tkp; if ( LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid) ) { tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; BOOL bREt = AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0) ; } CloseHandle(hToken); } }int main(){ BOOL bRet; LPCTSTR lpFileName ="c:\\auplicateHandle_Test.txt"; RaiseToDebugP(); HANDLE hProcess = OpenProcess( PROCESS_DUP_HANDLE, FALSE, 4); // 微软公司窗口系统进程-- 4 为 system pid : 复制打开一个已经存在的进程对象 if ( hProcess == NULL ) { hProcess = OpenProcess( PROCESS_DUP_HANDLE, FALSE, 8); // winOS-2K is 8 if ( hProcess == NULL ) return FALSE; } HANDLE hFile; HANDLE hTargetHandle; /* CreateFile是创建File这个内核对象,而不是创建物理磁盘上的“文件”。Win32 API中有一系列操作内核对象的函数,其大多命名为CreateXxx型。*/ hFile = CreateFile( lpFileName, GENERIC_READ, 0, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL); //0:表示不能共享 FILE_SHARE_READ FILE_SHARE_WRITE if ( hFile == INVALID_HANDLE_VALUE ) { CloseHandle( hProcess ); return FALSE; } bRet = DuplicateHandle( GetCurrentProcess(), hFile, hProcess, &hTargetHandle, 0, FALSE, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE); CloseHandle( hProcess ); return bRet;}
- 建立一个不能打开的文件(占坑)---C语言高级API调用
- 【C语言】【unix c】文件的打开与文件的关闭(系统调用函数)
- c调用api打开文件对话框
- fstream中建立bmp文件总是不能打开的一个处理办法
- C语言利用Windows api创建文件打开对话框模板
- 关于一个工程中多个文件的相互调用的学习笔记(C语言)
- 【C#】 Debug运行文件只能运行一个(不能打开多个)
- 文件的打开与保存(C语言)
- C语言打开文件的追加参数
- C语言文件的打开与关闭
- C语言~文件的打开方式
- C语言 打开文件的操作方式
- C语言文件的打开与关闭
- C语言打开一个文件(有内容),倒序打印出文件中的内容
- PHP语言 fopen()函数不能打开文件的问题
- C语言不能调用Python
- C语言文件打开和二进制打开方式的区别
- C#语言调用C语言的Win32 API
- C/C++编写dll动态链接库使用操作与非基本类型参数声明错误(2)
- dll动态链接库之用类写配置文件和调用判断方法接口的实现中遇到的若干问题
- VS2010 如何添加H文件目录和LIB目录
- ubuntu linux mysql 开发模式与连接编译
- 软件版本命名格式
- 建立一个不能打开的文件(占坑)---C语言高级API调用
- 用C查看系统任务管理器中运行的程序
- 回调函数编写和注重点
- 创建一个进程和两个管道,实现与进程通信
- 打开一个网页,以html代码保存于txt文件中
- error LNK2001: 无法解析的外部符号
- 怎么把下载的dll和def生成lib,以用于编程
- 常见两种LINK错误
- windows 调用带参数 exe