2

APT (Anti-Paching Technology) の私のロジックは次のとおりです...

1) 保護のために実行可能ファイルの md5 ハッシュを MSSQL サーバーに保存します。

2) サーバー上で見つかったハッシュと実行可能ファイル自体との md5 比較を (アプリケーションの起動内で) 実行します。

3) 比較が失敗した場合は、アプリケーションを黙って終了します。

そして、これらすべてが最終的にパッチされる前に!

ファイルにパッチが適用されないように保護する最善の方法は何ですか? 既製のツール (.net リアクター、バーチャライザーなど) を使用しない場合

編集:他の何かが頭に浮かびました。

サーバー側でアプリケーションの整合性をチェックする方法はありますか? つまり、私のアプリはオンラインでのみ動作します。アプリケーションの整合性をチェックできる何かをサーバー (私のドメイン) で実行できますか?

4

6 に答える 6

5

問題は、クラッカーがステップ 2 で正確にアプリケーションにパッチを適用し、ハッシュ チェック コードを削除することです。

だから私はそれが深刻なクラッカーに対して非常に効果的だとは言いません.

編集:アプリをオンラインにする必要があることを考えると、最善の策は多層防御だと思います:

  • 認証が必要: できれば暗号化キーを使用してユーザーを認証し、データの送受信にキー チェックを要求します。
  • 難読化: クラッカーにとって物事が難しくなります。
  • 継続的なチェック: 誰がデータを送信しているかをチェックするだけでなく、リクエストが送信されるたびにアプリケーションを検証します。

これらすべてを回避することはできますが、事態を非常に困難にし、アプリがそれほど価値がない場合は思いとどまらせる可能性があります。

于 2009-08-26T09:21:50.223 に答える
2

パッチが適用されたアプリケーションは、「クラッカー」がコードが実行されているマシンを完全に制御できることを意味します (少なくとも実行可能ファイルにパッチを適用するのに十分な制御)。そのため、パッチの防止はどれほど賢明であっても、制御の流れに反して機能します。

バイナリ ファイルを複雑にすることは、パッチ適用を思いとどまらせるのに十分な場合があるため、おそらく難読化ツールが最善の策です。

于 2009-08-26T10:07:58.320 に答える
2

できません。他の誰かがあなたのファイルを手に入れたら、彼らはそれで好きなことをすることができます-最初に、アンチパッチコードにパッチを当てることです.

于 2009-08-26T09:33:09.310 に答える
1

アプリケーションが他人のマシンで実行されている場合、パッチを適用するのを防ぐことはできません。難しくすることはできますが、これはシェル ゲームであり、勝つことはできません。あなたがそれをどれほど複雑にしようとも、どこかの誰かがあなたの保護を破る興味深い挑戦と見なし、彼は成功するでしょう. その後、他の人は自分のバージョンをダウンロードするだけです。今日のパッチ保護の最も極端な形式は Skype (私が知っている) です。めちゃくちゃ複雑ですが、壊れています。

あなたのアプリケーションはオンラインで実行されているように見えるので、そもそもなぜパッチを適用しないようにする必要があるのか​​を自問することができます (おそらく、ユーザーが間違った値を入力するのを防ぐためですか? または、プログラムに存在する情報をユーザーが見るのを防ぐためですか?)。次に、非表示またはチェックしたいことがサーバー上で発生するようにプログラムを設計します。

たとえば、それがゲームで、プレイヤーがゲームをハッキングして他のプレイヤーがどこにいるかを知るのを防ぎたい場合: サーバーを変更して、既に表示されているプレイヤーの座標情報のみを送信するようにします。

別の例: オンライン ストアで、ユーザーが間違った価格で注文書を送信しないようにしたい場合は、サーバーで価格を確認します。

唯一の例外は、プログラムが実行されているハードウェアを制御する場合です。しかし、そこでさえ、それを正しく行うのは非常に困難です (XBox、PS3、およびそれを試みて失敗した他の多くのコンソールを参照してください)。「トラステッド コンピューティング」に賭けるよりも、クライアント/サーバー アーキテクチャを活用する方がおそらくまだ良いでしょう。

于 2009-08-26T13:06:28.580 に答える
0

最近のクラッカーは、実行可能ファイルにパッチを当てる必要はありません。プログラムのメモリ内の変数を変更して、その動作を要件に合わせやすくするだけです。これを防御することは非常に困難であり、合理的に無意味です。ほとんどのゲームのクラック保護は、既知のクラック プログラムのシグネチャを検索することによってのみ機能します (AV エンジンのように)。

于 2009-09-21T13:42:06.250 に答える
0

誰かを止めることはできませんが、彼らをより困難にすることはできます。深いところから離れて、World Of Warcrafts Warden システムのようなメモリ内の検証を行うことさえできます。

書いている言語を教えていただければ、簡単な難読化方法を提案できるかもしれません。

于 2009-09-29T07:14:56.243 に答える