c++ - 运行句柄已打开的文件(C++ winapi)

标签 c++ winapi createprocess createfile

我在我的 C++ 应用程序中包含一个 exe 文件作为资源,我需要运行它,但我需要大量限制它的访问权限,以便用户无法复制它。 我需要保持它的句柄打开,这样外部程序就无法访问它,并且因为我使用 FILE_FLAG_DELETE_ON_CLOSE 作为标志,所以如果我的应用程序被杀死,它将被删除。

但正因为如此,我无法使用 CreateProcess() 或 WinExec() 运行它。 我知道这听起来很奇怪,但我有充分的理由。我需要这些来保护游戏的可执行文件免受 dll 注入(inject)欺骗,但我没有那个 exe 的代码。

最佳答案

因为你不能锁定整个文件,用LockFile 锁定很小的一部分。您需要找到 Windows 不使用的字节范围。您可以通过向 EXE 添加虚拟资源来实现此目的。 (这不需要源代码)。

关于c++ - 运行句柄已打开的文件(C++ winapi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7928033/

相关文章:

c++ - 在 C 或 C++ 中释放内存

c++ - 在函数参数未定义行为中使用赋值运算符吗?

c# - 返回 boolean 值

c++ - CreateProcess 和 ShellExecute 的区别

c++ - 如何制作多语言QT UI应用程序?

c++ - 如何在 "edit"按键上杀死 "Enter"控件的焦点

c - stat 或 stati64 在 Windows 中是否有错误?

c - 如何从终端将字符传递给可执行文件?

c++ - 使用 CreateProcess 时奇怪的减速

c++ - 如何在运行时将 C++ 程序编译并链接到 DLL