2

現在販売しているアプリケーションを拡張したいと考えています。

しかし、私は人々が単にEXEをコピーして友人などに渡すことができるようにしたくありません.私はそれがほとんど不可能な作業であることを知っていますが、非技術者のためにできるだけ難しくしたいと思っています.

明らかに、アプリを起動するたびに、インターネットを介してデータベースへのキー検索を実行できますが、それは次のことを意味します。

  1. サーバーへの大量のインターネット トラフィックを支払う必要があります。
  2. インターネットにアクセスできない人 (またはサーバーがダウンしている / またはルーターがどこかにある) は、キーを確認できなかった場合、アプリの動作を妨げる可能性があります。
  3. Wireshark / トラフィック スニファを使用する賢い人は、アプリをアクティブ化するために送り返すキーをデコードし、それをバイパスするために何かを書くことができます。

したがって、コンピューター名/MACアドレス/IP(購入時)に関連するチェックサムなどの簡単なものを考えていて、コンピューターのレジストリに保存します(1ライセンス= 1キー)。

次に、アプリを開くと、正しいレジストリ キーをチェックし、それをアプリ内の設定変数と比較して、アプリの起動前に一致することを確認します。

誰かがアプリを別のコンピューターに渡した場合、キーは存在しません (アプリを購入した場合、レジストリ内のキーをリセットする特別な 1 回限りのオーバーライド キーを提供できます)。元の支払いの詳細がない人は、これを取得できませんでした。

インターネット検索などを中心に展開しない、または私が提案しているアイデアに問題がない、より良いアイデアを持っている人はいますか?

このアプリは、.NET 4.5 の Windows フォーム アプリケーションとして C# で記述されています。

どんな助けでも大歓迎です。

4

2 に答える 2

0

その場合、製品 ID を使用して何かを行うことをお勧めします。これにより、プログラムの起動時に ID を確認できます。ただし、「許可されたキー」は、オンラインまたはアプリケーション自体の背後にあるデータベースに入力する必要があることに注意してください。

次に、プログラムが開始されると、ユーザーの製品 ID がチェックされ、「許可リスト」に登録されている ID と照合されます。

また、「許可された ID」がどのように保存されるかによって異なります。ユーザーの単数 ID をコードに格納してコンパイルするだけの場合は、いいえ。アプリケーションとは別のある種のデータベースに許可された ID の膨大なリストがある場合 - はい。それはハッカーのスキル レベルにもよりますが、優れたハッカーのほとんどは、目標を達成することができます。 .

後者を考慮していない場合は、許可された ID をそのまま変数に格納できます。

string AllowedID = "1234-ABCD-5678-EFGH";

次に、ユーザーの Windows OS 製品 ID と照らし合わせて確認するには、おそらくレジストリを照会する必要があります (製品 ID と言う場合、OS のインストールに使用されるシリアル コードを保存することを意味するわけではありません)。

次のようにして製品 ID を取得できます (Win7 Ultimate x64 でテスト済み)。

private void Form1_Load(object sender, EventArgs e)
{
string value64=null;
RegistryKey localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
localKey = localKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
if (localKey != null)
{
value64 = localKey.GetValue("ProductID").ToString();
}
if (value64 == AllowedID)
{
MessageBox.Show("Successfully Authenticated");
//run the application functions etc
}
else
{
MessageBox.Show("Error Authenticting");
}
}

お役に立てれば

于 2013-06-06T18:27:52.833 に答える
0

このアプリケーションを Windows OS 専用に設計していると仮定すると、変更が困難なシステムごとに固有のものを探す必要があります。

MAC アドレスは、IP や名前と同様にスプーフィングされる可能性があります。Windows プロダクト キー / Windows ID は変更できますが、その価値よりも面倒なことの 1 つです。登録時に、ユーザーの OS の製品 ID を取得し、起動時に検証済みとしてアプリケーションがこれをチェックすることを確認します。

インターネットにアクセスするアプリケーションがなければ、おそらくこれをアプリケーションに事前にコーディングし、コンパイルしてから、固有のバージョンを固有の顧客に販売する必要があるため、これはさらに問題になります。

前述のように、ハッカーによるアプリケーションのリバース エンジニアリングを阻止することは非常に困難です。オンライン ソースからソルトなどが提供されていない場合は特にそうです。ハッカーがやろうとしているのは、ソース コードを編集して、それらの行に沿って任意のキーまたは何かを許可することです。

サーバー上に小さなデータベースをわずかなコストでホストできる企業が存在するため、24 時間 365 日稼働中のサーバーをホストするのではなく、これを検討することができます。詳細については、お気軽にメールまたはチャット メッセージをお送りください。

ハッカーを攻撃しにくくするために、ある種のインターネット/データベース クエリを使用し、完全に暗号化することをお勧めします。特に、現在 PC を所有しているほとんどの人がインターネットに接続していることを考慮してください。

人々の OS キーを取得すると、別のボーナスとして、ハッキングされた犯人を追跡できる可能性があります。

お役に立てれば。

于 2013-06-04T19:35:27.477 に答える