私のクライアントは Flash プロジェクター EXE を持っており、オンラインで販売できるようにオンラインのシリアル番号管理システムをセットアップしたいと考えています。
私が見る限り、このプロジェクトの主な問題は、exeが1台のコンピューターでのみ実行する必要があることです。
私の現在の計画は以下のとおりです。
- 分割払いの前にユーザーにシリアル番号を要求し、問題がないか確認してください。
- 問題がなければ、多数の一意のハードウェア定数からハッシュを生成します。それをサーバーと照合し、アプリケーションが以前にこのマシンにインストールされていたかどうかを確認してください。
- そうでない場合、または以前と同じマシンである場合は、インストーラーを続行します。
- インストール後、ハードウェア ハッシュをレジストリに入れます。
- ローダー EXE を作成し、Flash EXE をリソースとして配置します。
- ローダー EXE で、レジストリにハードウェア ハッシュがあり、それが実行中の正しいハードウェアであるかどうかを確認します。
- ハードウェア ハッシュが正しい場合は、リソース (Flash Exe) を隠しパスに抽出し、CreateProcess で実行します。
さて、このワークフローには重大なセキュリティ上の欠陥があることを認識しています。リソースexeを抽出して実行すると。タスク マネージャーを見ているすべてのユーザーに表示されます。だから彼/彼女は彼の手を伸ばしてそれをつかむことができました!
どうすればアプローチを改善できますか? 少なくとも許容範囲まで?
ありがとう。
PS このアプリケーションには、保護とシリアル番号に関して、 http: //www.increditools.com/flash_exe_builder/index.phpと同様の機能があります。