我在我的 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/