如果我的程序将dll文件复制到临时目录,是否需要特定权限?

时间:2013-02-16 21:40:04

标签: c# c++ permissions pinvoke loadlibrary

问题: 我想知道我是否需要请求特定权限和/或做一些额外的事情以使其“值得信赖”,以防我的程序多次将dll文件复制到临时目录。如果我这样做,该程序是否会被反病毒作为恶意软件攻击?

示例代码:

if (needANewCopyOfTheDll)
{
    string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".dll";
    // Here, copy my dll to the new file.
}

但为什么?我有一个用C ++编写的静态库,它有全局变量,初始化程序和许多其他东西。我想拥有该库的不同实例,我只能在内存中加载一次相同的dll。因此我想将库包装在一个实例类中,当我需要一个新的实例时,只需将dll文件复制到temp目录并使用kernel32.dll中的LoadLibrary()函数获取它的新句柄< / p>

1 个答案:

答案 0 :(得分:1)

复制到临时目录不需要任何特殊权限。你可以做到这一点,应该没问题。很多程序都是这样做的。

从您的问题中不清楚您的软件是否被视为恶意软件。如果是,我怀疑是因为你正在从临时目录中加载一个dll。

你做的事听起来像是一个非常大的黑客。你应该改写你的库以不使用全局变量。