使用 ReadDirectoryChangesw 时如何绕过 UAC?

2024-03-29

我有一个应用程序需要通过以下方式监视主驱动器的文件更改ReadDirectoryChangesW。但是,当UAC启用时,它不起作用。

所有 Windows API 调用均成功,但我没有收到任何更改通知。

我可以通过单独监视根目录中的每个目录来解决此问题,但这是一个问题,因为如果目录太多,可能会导致蓝屏。

是否有一种可接受的方法来绕过 UAC 并在整个主驱动器上接收文件更改通知?

相关的CreateFile and ReadDirectoryChangesW在下面。在不起作用的情况下,directory是C:\。如果我监控任何辅助驱动器(即 E:\、F:\、G:\),它会按预期工作。所有调用均不会返回错误。

HANDLE fileHandle = CreateFileW(directory.c_str(), FILE_LIST_DIRECTORY, 
    FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, 
    FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL);

BOOL success = ReadDirectoryChangesW(fileHandle, watched.buffer.data(),
    watched.buffer.size(), TRUE, 
    FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_LAST_WRITE, 
    NULL, &watched.overlapped, NULL);

有趣的是,.NETSystem.IO.FileSystemWatcher does工作正常,并且它使用与我正在使用的完全相同的函数和参数,但它的行为正确。


首先,它最适合使用ReadDirectoryChangesW用于运行提升的 API 为您的应用程序创建清单文件并设置requireAdministrator as the requestedExecutionLevel等级。查看here http://msdn.microsoft.com/en-us/library/bb756929.aspx以供参考。

尝试删除FILE_SHARE_WRITE来自CreateFile如果您正在使用它,请致电。

另一种选择是让您的程序作为服务运行,我不确定这是否适合您的需求。您可以发布一些代码来说明如何获取文件句柄以及传递给什么ReadDirectoryChangesW

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ReadDirectoryChangesw 时如何绕过 UAC? 的相关文章

  • Windows 中的信号处理

    在Windows中 我试图创建一个等待SIGINT信号的python进程 当它收到SIGINT时 我希望它只打印一条消息并等待SIGINT的另一次出现 所以我使用了信号处理程序 这是我的 signal receiver py 代码 impo
  • 如何将 man 和 zip 添加到 Windows 上的“git bash”安装中

    我在用git bash https git for windows github io 在 Windows 上 即git对于 Windows 通过集成bash 显然它使用的是MINGW MSYS支撑 来自 VonC 的更新 现在使用 msy
  • 如何以编程方式检索“Program Files”文件夹的实际路径? [复制]

    这个问题在这里已经有答案了 可能的重复 C 如何在 Windows Vista 64 位上获取程序文件 x86 https stackoverflow com questions 194157 c sharp how to get prog
  • Windows 服务器上的 .htaccess 文件

    我进行了研究 发现我的 htaccess 文件无法在我的新 Windows 服务器上运行 我发现我应该使用 web config 我尝试了一下 但没有任何效果 然后我发现我可以使用 htaccess 文件 但我必须将其命名为其他名称 例如
  • 原生 Linux 应用程序可像 ResHacker 一样编辑 Win32 PE

    我想运行自动修改 dll服务 用户提交特定的 dll 我在服务器上修改它 然后用户可以下载 dll的修改版本 是否有任何本机 Linux 应用程序提供常见的 Win32 PE 修改功能 例如图标 字符串 加速器 对话等 至少提供命令行或脚本
  • 如何使用 python 操作系统更改驱动器?

    我正在尝试更改当前目录C to Y 我试过 import os os chdir Y 但我不断收到错误消息 提示无法找到驱动器 本质上我正在寻找相当于 cd d cmd 中的命令 你确定吗Y 确实是有效的驱动器号吗 Try os chdir
  • 批量读取INI文件并将其设置为全局变量

    我有一个批处理文件 它已经做了很多事情 并试图扩展它以从 ini 文件中获取一些数据 例如 ini 文件看起来像这样 Settings1 Text Text Text1 Text Text2 Text Settings2 Text Text
  • 为什么 FindWindow 找到了 EnumChildWindows 找不到的窗口?

    我正在寻找一个类名称为 CLIPBRDWNDCLASS 的窗口 它可以在办公应用程序和其他应用程序中找到 如果我使用 FindWindow 或 FindWindowEx 我找到第一个具有此类的 HWND 但我想要all具有该类的窗口 因此我
  • 多重处理:如何从子进程重定向标准输出?

    注意 我见过multiprocessing Process 的日志输出 https stackoverflow com questions 1501651 log output of multiprocessing process 不幸的是
  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • 什么是标准 unicode 字体?

    以下操作系统的标准 unicode 字体是什么 视窗XP 视窗Vista Window 7 按照标准 我的意思是它们存在于操作系统的全新安装中 无需将它们作为附加包安装 我一直在寻找同样的东西 看起来所有 Win 操作系统中只有一种字体 L
  • Windows 任务计划程序报告不正确/不一致的结果代码

    背景 我正在尝试在计划任务失败时收到电子邮件通知 我的任务可以通过退出代码 错误级别 指示失败 我想使用它并遵循中描述的过滤方法这个答案 https stackoverflow com a 4289360 29805触发电子邮件 Probl
  • 没有设备的设备驱动程序?

    我正在创建一个需要使用一些内核级模块的应用程序 为此我将应用程序分为 2 个 一个用户级程序和一个内核级程序 在阅读了有关设备驱动程序并浏览一些教程后 我有点困惑 是否可以存在没有任何特定设备与之关联的设备驱动程序 除了设备驱动程序 内核代
  • tomcat 8 无法在自由端口上启动

    PROBLEM 通过 Windows 服务停止 gt 启动 tomcat 8 失败 因为 tomcat 关闭不知何故以 不可见 状态继续侦听端口 8080 并且 tomcat 无法启动 因为它无法绑定到端口 8080 背景 我们的一个构建脚
  • 检测注册表虚拟化

    我有一组 C v2 应用程序 并且在 Win7 以及较小程度上的 Vista 中的注册表虚拟化方面遇到了困难 我有一个共享注册表配置区域 我的应用程序需要在 HKLM Software Company 中访问该区域 在 Vista 之前 所
  • 如何在Windows上用C语言实现定时器

    如何在 C 中创建一个计时器 时间到期后 我应该能够调用回调函数 平台是windows 有人可以指导我吗 问候 米敦 看一眼SetTimer http msdn microsoft com en us library ms644906 28
  • 避免回绕的 timeGetTime 的最佳替代品是什么?

    time获取时间 http msdn microsoft com en us library dd757629 VS 85 aspx查询系统时间似乎相当不错 然而 它的返回值仅为 32 位 因此大约每 49 天环绕一次 在调用代码中检测翻转
  • ProcessBuilder 未正确执行 Java 类文件

    在一个java文件中 我调用命令行语句来执行另一个java文件 这就是我正在做的 List
  • 设置表单的父级

    我有一个 Windows 表单 我想从中打开一个状态表单 上面写着 正在保存 然后保存完成后消失 我想将这个小状态表单放在调用表单的中间 我尝试将 StartPosition 属性设置为 CenterParent 但它不起作用 我从其他表单
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref

随机推荐

  • 如何安装uWebSockets?

    我通过 VMware 在 Windows 10 上运行 ubuntu 因为Udacity课程需要uWebSockets来运行模拟器 这是班级安装它的步骤 run chmod a x install linux sh 这是install li
  • 在 For 循环内创建线程 C++

    我一直在 for 循环内尝试多线程 基本代码块将是这样的 void function int a string b MyClass Obj MyClass2 Obj2 execution part void anotherclass Mem
  • C# 类多态

    为什么下面代码的结果是 Class AA级A级 public class A public virtual void f Console WriteLine Class A public class B A public virtual v
  • 如何保护网站免受 DoS 攻击

    保护站点免受 DoS 攻击的最佳方法是什么 知道流行的网站 服务如何处理这个问题吗 应用程序 操作系统 网络 托管级别的工具 服务是什么 如果有人能分享他们的真实经历 那就太好了 Thanks 您确定是说 DoS 不是注入吗 在 Web 编
  • Materialise css 图标不显示在 Safari 浏览器中

    我注意到materialized CSS图标不显示在Safari v5 1 7 7534 57 2 关于这个主题进行了很多搜索 但没有任何有关 safari 的浏览器兼容性的文档已列出 谁能告诉我这是否是一个需要修复的错误 或者是否有其他方
  • Python 正则表达式 findall 带变量

    我正在尝试使用 re findall 与后视和前瞻来提取数据 当我不使用 raw input 变量时 正则表达式工作正常 但我需要用户能够输入各种不同的搜索词 这是当前的代码 me re findall r lt variable vari
  • Angular Google 地图 - 自动设置“中心”和“缩放”以适应所有标记

    我的 Google 地图中有一个动态生成的标记列表 我希望地图的中心成为所有标记的中心 并缩小到足以使所有标记都在视图中 在计算地图中心方面 也许可以通过迭代所有的纬度和经度并找到中心点来实现 但是 我无法找出计算缩放比例的最佳方法 这有可
  • 异构词典,但是类型化?

    这更多的是一个学术探究而不是一个实际问题 是否有任何语言或框架功能可以或将来允许异构类型字典 例如 myDict Add Name Bill myDict Add Height 1 2 其中 myDict 现在不包含两个object类型作为
  • 错误:迁移到 androidx 后找不到符号类 MediaStyle

    android support v4 media app NotificationCompat MediaStyle 在音乐播放器应用程序中工作正常 但迁移到 android x 后出现此错误 找不到符号类 MediaStyle 任何帮助将
  • 使用 post 方法打开 URL android

    我必须向网址发送一些参数并打开它 但我不知道该怎么做 var variables URLVariables new URLVariables variables param1 param1 variables param2 param2 v
  • Objective-C 在 NSArray 中搜索字符串?

    我有一个字符串数组 我如何才能找出字符串在数组中的索引 NSArray indexOfObject http developer apple com mac library documentation Cocoa Reference Fou
  • Elixir - 递归列表值的总和

    只是尝试对列表值进行简单求和 defmodule Mth do def sum list do 0 end def sum list H T do H sum list T end end IO puts Mth sum list 1 2
  • Google App-Engine 按国家/地区阻止传入流量?

    我正在考虑通过 Google 的 App Engine for PHP 开发一个系统 我现在进展顺利 但意识到我不知道有什么好方法来拒绝来自以邪恶居民闻名的国家的传入流量 在其他站点上 我只是通过 htaccess 阻止子网 然而 我现在开
  • 如何继承并实现以抽象类为参数的纯虚方法?

    我有一个抽象类Node其中包含纯虚拟方法存根matches 需要另一个实例Node 即子类化的事物的实例Node 作为参数 class Node forward declaration class Node public Node pare
  • 使用 phpMailer 和 PHP 从表单发送文件附件

    我有一个表格example com contact us php看起来像这样 简化
  • woff 和 ttf 字体 404 未找到

    我正在使用 webpack 来编译我的 sass 文件 我有一个font face看起来像这样 font face font family Alef src url public fonts Alef Alef Webfont Alef B
  • MySQL 分组 MAX() 返回意外结果

    表 贷款 Loan no Amount SSS no Loan date 7 700 00 0104849222 2010 01 03 8 200 00 0104849222 2010 02 28 9 300 00 0119611199 2
  • 文件上传流从哪里获取内容?

    我有一个关于文件上传的问题 这与它的工作原理更相关 而不是代码问题 我在互联网上查看 但找不到正确的答案 我有一个在 tomcat 上运行的 Web 应用程序 它处理文件上传 通过 servlet 假设我现在想要上传大文件 gt 1 GB
  • multiprocessing.pool.MaybeEncodingError:发送结果时出错:原因:'TypeError(“无法序列化'_io.BufferedReader'对象”,)'

    我收到以下错误 multiprocessing pool MaybeEncodingError Error sending result
  • 使用 ReadDirectoryChangesw 时如何绕过 UAC?

    我有一个应用程序需要通过以下方式监视主驱动器的文件更改ReadDirectoryChangesW 但是 当UAC启用时 它不起作用 所有 Windows API 调用均成功 但我没有收到任何更改通知 我可以通过单独监视根目录中的每个目录来解