アプリケーション用の非公式のスタンドアロン プラグインのようなプログラムを作成しました。これにより、顧客は、ベンダーが所有するサービスよりも低価格の代替サービスを利用できます。私のプログラムは、いかなる種類の TOS に対しても違法ではなく、ウイルス、アドウェア、またはそのようなものでもありません。そうは言っても、もちろん、ベンダーは私が競争に勝つことに満足しておらず、私のアプリケーションの実行をブロックしようとしています。
彼は、人々が私のアプリを彼のアプリと一緒に実行するのを阻止するために、すでにいくつかの戦術を試しています. 彼は、それが検出された場合、アプリが偽のエラーをスローするようにしています。
最初に、彼は正しいタイトルの開いているウィンドウを探して、私のプログラムが実行されているかどうかを確認しました。起動時にプログラムのタイトルをランダム化することで、これに対抗しました。
次に、彼は実行中のプロセス名を探しました。[ランダム文字列].exeとして起動されたときにアプリ自体をコピーしてから実行することで、これに対抗しました。
とにかく、私の質問はこれです: 私のプログラムが実行されているかどうかを検出するために、彼は他に何ができますか? ウィンドウのテキスト (ステータス バー、ラベルなど) が読めることは知っています。ラベルを画像に置き換えることで、これに対抗する準備ができています (他の方法はありますか?)。
しかし、他に何がありますか?プログラムがロードした .dll を検出できますか? もしそうなら、ロードする前に dll 名をランダム化することで解決できますか?
プログラムのシグネチャをメモリ内で取得して追跡できることは知っていますが (ウィルス スキャナのように)、彼がそれを実行する可能性はおそらく高くありません。
これは彼がやっていることはちょっとくだらないことですが、それは一種の楽しいことです. それはオタクの拳の戦いのようなものです。
編集: プラグインだと言ったとき、それは私が使用した(間違った)用語です。スタンドアロンの EXE です。私のプログラムと他のプログラムの間の「API」は、単にコントロールにデータを入力するだけです(テキストボックスなど)。