3

アプリケーションをリバース エンジニアリングから保護したい。

私がやりたいことは、16 進エディター、リソース エディター、逆アセンブリの改ざんなど、あらゆる改ざんから実行可能ファイルを保護することです。

私の考えは、サービスサーバーからバージョンファイル(おそらくxmlファイルまたはフラットファイル)にインポートされた値に対してアプリケーション自体のハッシュ値をチェックし、値が一致しない場合はアプリケーションをシャットダウンするか、何らかの方法で機能を完全に無効にすることです。マッチ。

私はここで奇妙な水域にいるので、誰かがコメント、提案、アイデア、またはコード例を持っていれば、私はそれを感謝します.

開発言語は C++ ですが、どの言語からでも喜んで例を挙げます。

ご協力いただきありがとうございます。

4

5 に答える 5

4

そう簡単ではないのではないかと思います。

誰かが実行可能ファイルを変更できる場合、アプリケーションが既知のハッシュに対して行うチェックを削除できます。

既知の実行可能ファイルのハッシュをキーとして使用してアプリケーションのデータを暗号化するなど、より複雑なことを行うこともできますが、回避するのが少し難しくなります。


あらゆる種類の非常に高価なソフトウェアのメーカーは、何十年にもわたってこれに対する解決策を考え出そうと試みてきました - そして彼らの努力は常に、はるかに少ないリソースを持つ人々によって回避されてきました.

于 2010-06-30T11:36:55.223 に答える
1

短い答えは、あなたができないということです。もっと難しくすることもできますが、最終的にはコードをプロセッサ上で実行する必要があるため、命令をオンザフライで読み取ったり、変更したり、無視したりできます。

ハードウェアを制御できる場合は、ハードウェアをより困難にすることができますが、最終的には、人々が十分な決意を持っていれば、あなたが何をしても破ることができます.

人々の正直さに訴えましょう。あなたにとってはより簡単で、おそらく同じくらい効果的です。

于 2010-06-30T11:49:38.197 に答える
0

コードを難読化して、リバース エンジニアリングを試みる人を苛立たせたり、誰かが改ざんしようとした場合に自己破壊したりできるようにします。

于 2010-07-02T00:40:50.797 に答える
0

ソフトウェアの改ざんを本当に防ぐ唯一の解決策は、実行可能ファイルを暗号化し、現在実行されている部分のみを復号化することです。これは、復号化が「信頼できるデバイス」、たとえば USB ドングルで行われた場合に限られます。

私の雇用主の製品など、かなり良い製品がいくつかあります。

すべてのソフトウェアのみの保護スキームは、多かれ少なかれ簡単にだまされる可能性があります。

于 2010-06-30T11:59:27.090 に答える