1

プライマリ.exeを実行できないようにする必要があります(直接起動しようとすると、メッセージが表示されます:直接起動できません。セカンダリexeから実行されている場合(それだけ、crc検証が必要だと思います)、起動します。

最初の.exeを直接開始できないことを明確にしたいと思います2番目の.exeは最初のexeを開始できます(のみ)

4

4 に答える 4

10

最初のexeをDLLにします。次に、2番目のプログラムはそれを使用できますが、ユーザーはそれを直接実行できなくなります。

于 2012-09-18T14:36:28.293 に答える
6

直接開始できないEXEを設定して、パラメーターを受け入れるように設定します。たとえば、開始するはずのデータからの一意のデータのSHA-256ハッシュなどです。そのパラメーターが存在しないか、予期されたものでない場合は、エラーを表示して終了します。

編集:

static class Program
{
   static void Main(params string[] args) //<- first needed change
   {
       if(args.Length == 0 || args[0] != "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
       {
          Console.WriteLine("Cannot execute this program directly.")
          return;
       }

       ... //rest of main function
   }
}
于 2012-09-18T14:36:04.703 に答える
4

これを行う最も簡単な方法は、コマンドラインパラメーターを使用するか、それでも環境変数を設定して実行することです。そのため、「アプリを使用してほしいという事実を回避できますか?」から要件を追跡する方法はほとんどありません。それを実行します"。ただし、DLLが実際に進む方法になると思います。

于 2012-09-18T14:38:27.393 に答える
2

プロセス名(Process.GetCurrentProcess().ProcessName)で1番目または2番目のEXE名が付けられるかどうかはわかりませんが、1番目のEXEをDLLとして、2番目のEXEをEXEとして作成できます。

于 2012-09-18T14:35:13.357 に答える