DuplicateHandle复制句柄保护文件

STM32串口接收避坑指南:为什么你的USART_IT_IDLE中断不触发?附完整调试流程 本文深入解析STM32串口接收中断机制,特别是USART_IT_IDLE中断不触发的常见原因及解决方案。通过详细分析中断标志清除顺序、波特率配置、硬件连接等关键因素,并提供完整的调试流程和代码示例,帮助开发者快速定位并解决串口通信问题。 阅读详情

以独占方式打开一个文件,然后将文件的句柄复制到另一个进程,比如复制到System进程,然后自己的进程就可以退出。

在Ring3下只要句柄没有关闭,别人就删除不了文件。

 

#include <windows.h>
#include <stdio.h>

 

void SetPrivilege()
{
 HANDLE hToken;
 LUID destLuid;
 TOKEN_PRIVILEGES TokenPrivileges;
 OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken); //获得进程访问令牌的句柄
 LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &destLuid);   //操作的类型为SE_DEBUG_NAME       
 TokenPrivileges.PrivilegeCount = 1;
 TokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 TokenPrivileges.Privileges[0].Luid = destLuid;
 AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges, 0, NULL, NULL); //提升权限
 CloseHandle(hToken);   //关闭句柄
}

 

BOOL ProtectFile(
     IN LPCTSTR pszFilePath,
     IN DWORD dwProcessId,
     IN BOOL bFileCanBeRead
     )
{
 HANDLE hFile;
 HANDLE hProcess;
 
 // get the file handle
 
 hFile = CreateFile(
  pszFilePath,
  GENERIC_READ,
  (bFileCanBeRead ? FILE_SHARE_READ : 0),
  NULL,
  OPEN_EXISTING,
  FILE_ATTRIBUTE_NORMAL,
  NULL
  );
 if (hFile == INVALID_HANDLE_VALUE)
 {
  return FALSE;
 }
 
 // open the process handle
 
 hProcess = OpenProcess(PROCESS_DUP_HANDLE, FALSE, dwProcessId);
 if (!hProcess)
 {
  printf("OpenProcess error/n");
  CloseHandle(hFile);
  return FALSE;
 }
 
 // call duplicatehandle
 
 BOOL fOk = DuplicateHandle(
  GetCurrentProcess(),              // source process handle
  hFile,                                     // source handle
  hProcess,                              // target process handle
  NULL,                                    // target handle, we don't care it
  0,
  FALSE,                                  
  DUPLICATE_SAME_ACCESS
  );
 
 CloseHandle(hFile);
 CloseHandle(hProcess);
 return fOk;
}

void main()
{
 SetPrivilege();   //提升进程权限
 ProtectFile("C://1.txt",4,false);
}

论文阅读:Training language models to follow instructions with human feedback 这篇论文的目标是通过引入一种基于人类反馈的训练方法,来让语言模型更好地按照用户意图行事。这是因为大规模语言模型虽然强大,但有时候会生成不准确、有偏见或者对用户无帮助的内容,这说明它们和用户的需求之间存在一定的“错位”。论文提出了一个新方法,将 GPT-3 进行优化,称为示例数据与监督学习:让人类标注员生成一些正确行为的示例,并使用这些示例来初步优化模型。比较数据与奖励模型:让标注员比较模型生成的多个输出,并将其排序,从中学到模型输出的优劣规则。强化学习优化:基于这些规则,使用强化学习算法进一步优化模型。 阅读详情

相关推荐

关于卷积过程中通道数如何变化问题

对卷积操作前后通道数问题进行解释,输出通道数=卷积核的个数。

你好,明天,,的博客 4316

DuplicateHandle

功能:将一个进程内的伪句柄,转化为可以用来进程间通信的实句柄 BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess, BOOL bI...

dclutwoku16741537的博客 326

open-mmlab / mmpose安装、使用教程

mmpose安装、使用教程mmpose安装教程1. 安装mmcv-full2. 安装MMPose2. 安装mmdet使用教程1. 预测图片2. 预测视频 mmpose mmpose是商汤旗下有又一款好用的工具箱,主要是针对姿态识别任务开发的,包括人体姿态识别和动物姿态识别。里面继承很多现成的网络可以供大家使用,并且提供了训练好的权重。用户可以更具自己的需求训练自己的数据,或者直接应用他们的结果,反正就是很全面啦!!!! github连接:https://github.com/open-mmlab/mmpos

CharmsLUO的博客 1万+

利用DuplicateHandle()无驱动的另类读写内存方法,理论上可以过游戏保护读写

突发奇想出的原创思路,在理论上经过完善应该可以做到过游戏保护无驱动读写内存 首先看一下MSDN对这个函数的定义 BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, ...

CalvinXu 6569

告别爆显存!手把手教你为ComfyUI+华为Atlas 300I Duo配置wan2.1视频生成工作流(含CPU-VAE参数)

本文详细介绍了华为Atlas 300I Duo与ComfyUI的深度适配实战,重点优化wan2.1视频生成工作流。从硬件散热改造到软件栈配置,再到ComfyUI专项优化,提供完整的解决方案,显著提升视频生成效率与稳定性,特别适合需要高效文生视频的应用场景。

weixin_26812607的博客 463

WRF实战:自定义Vtable解析ECMWF海温数据的关键步骤与技巧

本文详细介绍了在WRF模型中自定义Vtable以解析ECMWF海温数据的关键步骤与技巧。通过解剖GRIB文件、编写自定义Vtable条目以及配置METGRID.TBL,解决了ECMWF数据与WRF模型对接的难题,为海洋气象和台风模拟研究提供了高精度数据输入方案。

weixin_29279101的博客 338

DuplicateHandle进程间句柄复制

1、 BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwOpt

小米的修行之路 5599

基于springboot医院医疗仪器管理系统

基于Spring Boot的医院医疗仪器管理系统是一款专门为医院设计的高效管理工具。

2201_75927219的博客 1014

windows笔记-跨越进程边界共享内核对象【复制对象句柄】

跨越进程边界共享内核对象有三种方法: 对象句柄的继承性 命名对象 复制对象句柄 复制对象句柄 共享跨越进程边界的内核对象的最后一个方法是使用 BOOL DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, ...

weixin_30387339的博客 211

AppStore逆向分析(登录、查询、下单)

某网站全协议流程逆向与分析(自动登录、激活、查询、下单)

吴秋霖的博客 3029

【002】C++ 语言核心:关键字深度解析与分类指南

auto:自动类型推导bool:布尔类型break:跳出循环或switch语句case:switch语句分支char:字符类型class:定义类const:常量continue:结束当前循环,开始下一次循环default:switch语句默认分支delete:删除对象do:do-while循环double:双精度浮点数类型else:if语句的否定分支enum:枚举类型explicit:显式构造函数export:导出符号extern:声明外部变量或函数。

Lion_Long的博客 1250

伪句柄

伪句柄在使用很多函数的时候,我们都需要获得一个对象的句柄,而某些函数返回的是伪句柄。伪句柄本身不会打开内核对象的句柄表,因此内核对象的使用计数就不会增加。它本身就只指向调用它的主调进程或线程。会因为调用者的不同而改变,比如:调用者A使用一个伪句柄,这个句柄指向调用者A,而调用者A将该句柄传递给调用者X,则这个句柄就指向调用者X。我们可以通过调试的方式查看伪句柄,可以得知,进程的伪句柄总是0xffffffff,而线程的伪句柄总是0xfffffffe。通过使用DuplicateHandle这个强大的函数,可以将

bookish_2010_prj的专栏 1492

华为防火墙——本地Portal认证

配置IP地址、路由、Nat策略使得内网主机可以访问公网服务器对网段不进行认证,对网段进行portal认证。

m0_49864110的博客 3263

DuplicateHandle GetCurrentProcess 实句柄 伪句柄

GetCurrentProcess得到得到的称之为"伪句柄" 只是一个标识,你可以发现,其实就是返回$FFFFFFFF, 每个进程得句柄都是一样得,只是实用于进程内部得使用. 如果你想得到实际得句柄,在进程间进行通讯,必需要进行转化, 调用DuplicateHandle,注意,得实句柄使用完成以后,你必须要调用CloseHandle去关闭. 其实,你应该明白了为何"伪句柄"得存在,就是使

2202

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

文件占坑法过360查杀

原理是以独占的方式打开文件,再把文件句柄复制到另一个程序中去,达到本程序退出后目标文件仍被打开的目的programcreatefile;usesWindows,SysUtils;//提权函数procedureSetPrivilege;varTPPrev,TP:TTokenPrivileges;TokenHandle:THandle;...

baduan2162的博客 378

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

阻止删除文件(文件占坑)+nevergone逆向代码一份

文章来源:http://forum.eviloctal.com/thread-32738-1-3.html 信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 逆向作者:nevergone 作者:Written by 风泽(EvilHsu)[E.S.T] 真正的技术作者是DebugMan上《ring3文件占坑大法》的作者。 介绍: dhfile是参

daiafei 3989

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ring3层一种占用文件的方法

前段时间,一个测试工程师问我关于怎样长时间的占用一个文件,而使别的程序无法再访问这个文件,想起以前很多病毒木马经常劫持hosts文件不放,除非你找到占用文件的程序,并强行结束掉,否则怎么也访问不了hosts文件,病毒通过劫持这个文件来达到劫持你的域名的目的,很有可能你输入了www.baidu.com,访问的却是一个带颜色的网站,并稀里哗啦在后台下了上百个病毒,扯远了,呵呵。    其实sdk里

magictong的专栏 2399

关于伪句柄

一、什么是伪句柄 在使用很多函数的时候,我们都需要获得一个对象的句柄,而某些函数返回的是伪句柄。伪句柄本身不会打开内核对象的句柄表,因此内核对象的使用计数就不会增加。它本身就只指向调用它的主调进程或线程。会因为调用者的不同而改变,比如:调用者A使用一个伪句柄,这个句柄指向调用者A,而调用者A将该句柄传递给调用者X,则这个句柄就指向调用者X。我们可以通过调试的方式查看伪句柄,可以得知,进程的伪

W Blog 3153

windows核心编程 第三章,跨越进程边界共享内核对象,对象句柄的继承性,改变句柄的标志,命名对象,终端服务器的名字空间,复制对象句柄

windows核心编程 3.3 跨越进程边界共享内核对象 3.3.1 对象句柄的继承性 3.3.2 改变句柄的标志 3.3.3命名对象 3.3.4终端服务器的名字空间 3.3.5 复制对象句柄 文章目录windows核心编程3.3 跨越进程边界共享内核对象3.3.1 对象句柄的继承性3.3.2 改变句柄的标志3.3.3命名对象3.3.4终端服务器的名字空间3.3.5 复制对象句柄3.3 跨越进程边界共享内核对象3.3.1 对象句柄的继承性3.3.2 改变句柄的标志3.3.3命名对象3.3.4终端服务器的名字

zhyjhacker的博客 1482

域渗透实战:无驱动绕过LSA保护的创新方法解析

本文深入解析了无驱动绕过LSA保护机制的创新方法,重点探讨了域渗透中如何利用进程句柄复制和内存操作技术绕过LSASS保护。通过实战案例和工具解析,展示了Pypykatz等工具在绕过LSA保护中的应用,同时提供了防御视角下的检测与加固建议,帮助安全人员应对现代域渗透挑战。

hh234的博客 627

gopsutil 全平台系统监控实战指南:从 psutil 移植到 Go 的 CPU、内存、进程与 Docker 指标采集

gopsutil 是 Python 版 psutil 的 Go 移植项目(仓库模块路径为 `github.com/shirou/gopsutil/v4`),提供跨平台的 CPU、内存、磁盘、网络、进程、主机信息与 Docker cgroup 等系统指标采集能力,并且在不依赖 cgo 的前提下将底层 C 结构体移植为 Go 结构体。读完本文,你将掌握 gopsutil 的快速接入方式、跨平台支持边界

gitblog_00291的博客 944

《windows核心编程系列》三谈谈内核对象及句柄的本质

http://blog.youkuaiyun.com/ithzhang/article/details/7920204                              内核对象     本章讨论的是相对抽象的概念,不涉及任何具体的内核对象的细节而是讨论所有内核对象的共有特性。 首先让我们来了解一下什么是内核对象。内核对象通过API来创建,每个内核对象是一个数据结构,它对应一块内

收集学习过程中对自己有帮助的牛人文章 1087

操作被占用的文件-unlocker机理分析

http://www.cppblog.com/free2000fly/archive/2009/07/14/89988.html ==================================================================== 以下为转帖 操作被占用的文件-unlocker机理分析 *[标题]: 操作被占用的文件-unlocker机理分析 *[

wcppcw的专栏 1461

怎样让文件不被移动,删除,复制

01 #include 02 #include 03 BOOL OccupyFile( LPCTSTR lpFileName );//锁定文件 04 BOOL ReleaseFile(LPCTSTR lpFileName);//释放文件

u012345965的专栏 1012

hook pte_API hook实现r3下简单的进程保护

发点东西敷衍敷衍吧。。其实在r3下似乎做进程保护没什么强度可言,不过总是可以用来玩玩的:P现在似乎没有多少人还会去hook kernel32中的函数了,因为大多数(或许有一些是例外的)函数都得从ntdll.dll中过然后sysenter。——至少,我们需要照顾的几个函数是需要过ntdll的 :)杀进程常见的就是OpenProcess+TerminateProcess,也可以一个一个线程杀(Open...

weixin_39707941的博客 706

R3下取伪句柄表的几种方式

R3下取伪句柄表的几种方式 最近碰到一个简单的老游戏,看了一下它的防多开就是通过 CreateFileMapping 函数以只读 方式创建了个文件映射对象 就和互斥体一样,本来劫持个DLL hook下就完事了,但是发现只有几个陌生的DLL可劫持 重点在于这个DLL加载时候对多开的检测已经完成,这就十分尴尬了。。。只好通过远程关闭文件映射句柄来实现多开 然后发现既然DLL可以劫持,又再句柄创建完成...

AperOdry的博客 1352
上一篇: 禁止Dockpanel拖动
下一篇: VC++打开、保存文件对话框和浏览文件夹对话框
sysprogram
博客等级 码龄17年 298粉丝 442原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值