0

質問: プログラムがdllファイルを一時ディレクトリに複数回コピーする場合に備えて、特定のアクセス許可を要求したり、「信頼できる」ものにするために何か特別なことをしたりする必要があるかどうかを知りたいです。これを行うと、プログラムはアンチウイルスによって悪意のあるソフトウェアとして取り上げられますか?

サンプルコード:

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

しかし、なぜ?私はC++で書かれた静的ライブラリを持っており、グローバル変数、初期化プロシージャ、その他多くのものがあります。そのライブラリの異なるインスタンスが欲しいのですが、同じdllをメモリにロードできるのは1回だけです。したがって、ライブラリをインスタンスクラスでラップすることを考えていました。新しいインスタンスが必要な場合は、dllファイルをtempディレクトリにコピーしLoadLibrary()、kernel32.dllの関数を使用して新しいハンドルを取得します。

4

1 に答える 1

1

一時ディレクトリへのコピーには、特別な権限は必要ありません。あなたはそれをすることができます、それは問題ではないはずです。多くのプログラムがそれを行います。

あなたの質問から、あなたのソフトウェアが悪意のあるものとして取り上げられているかどうかは明らかではありません。そうである場合は、一時ディレクトリからdllをロードしていることが原因であると思われます。

とにかく、あなたがすることはかなり大きなハックのように聞こえます。グローバル変数を使用しないようにライブラリを書き直す必要があります。

于 2013-02-16T21:47:48.723 に答える