是否可以重定向 Windows API“tmpfile”函数?

是否可以重定向 Windows API“tmpfile”函数?

我们与第三方工具合作,利用tmpfile函数。由于安全性已加强,并且我们以管理员身份运行工具的能力已被删除,我们想知道是否有一种解决方法可以在没有管理员权限的情况下运行此类工具。我们考虑过使用提升的帐户来运行特定的版本,但这是唯一真正需要它的工具。是否可以使用tmpfile备用 DLL 或其他方法来挂接该函数?我们无法控制此工具的源代码,目前也无法使用其他工具。

答案1

除非该工具有它自己坚持使用的临时文件夹,否则临时文件夹的位置将在程序的环境变量中传递。

这些是 Windows TEMP/TMP 环境变量。TEMP 更适用于 Windows 内部程序,而 TMP 更适用于用户程序。如有疑问,请将两者设置为相同的值。需要注销/登录才能使此设置生效。

详细信息请参阅文章
Windows 将临时文件存储在哪里以及如何更改 TEMP 文件夹位置?


具体来说 tmpfile 函数,在写入C:\ 已被限制为仅以管理员权限运行的程序后,微软显然没有对其进行更新。

因此,我建议在 以外的磁盘上运行程序 C:。如果您的计算机没有第二个磁盘,您可以缩小现有分区,创建一个新分区并将其命名为D:。如果您没有权限,请使用从启动媒体运行的分区编辑器(如果您可以物理访问计算机)。您也可以从某个外部磁盘运行它。

如果该函数是从 Windows DLL 中使用,且未静态链接到程序中,则任何其他解决方案都需要通过挂接此 API 来替换 tmpfile 函数。这需要良好的 Windows 编程知识。

相关内容