Вопрос:
Я хотел бы знать, нужно ли мне запрашивать конкретные разрешения и / или делать что-то дополнительное, чтобы сделать его «заслуживающим доверия» в случае, если моя программа несколько раз копирует файл 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 и получите новый дескриптор для него, используя LoadLibrary()
функция в kernel32.dll
Копирование во временный каталог не требует специальных разрешений. Вы можете просто сделать это, это не должно быть проблемой. Многие программы делают это.
Из вашего вопроса не ясно, является ли ваше программное обеспечение вредоносным или нет. Если это так, я подозреваю, что это потому, что вы загружаете DLL из временного каталога.
То, что ты делаешь, звучит как довольно большой хак в любом случае. Вам лучше переписать свою библиотеку, чтобы не использовать глобальные переменные.
Других решений пока нет …