我在我的c++应用程序中包含了一个exe文件作为资源,我需要运行它,但我需要限制它的访问权限,所以用户不能复制它。我需要保持它的句柄打开,所以外部程序不能访问它,因为我使用FILE_FLAG_DELETE_ON_CLOSE作为标志,所以如果我的应用程序被杀死,它会删除。
但正因为如此,我不能运行它与CreateProcess()或WinExec()。我知道这听起来很奇怪,但我有充分的理由。我需要这些来保护游戏的可执行文件免受dll注入作弊,我没有那个exe的代码。
由于无法锁定整个文件,因此可以使用LockFile
锁定非常小的一部分。您需要找到Windows不使用的字节范围。您可以通过向EXE添加虚拟资源来实现这一点。(不需要源代码)