2013-03-21 14 views
7

Microsoft Visual C++コンパイラが作成するexeファイルを暗号化する必要がありますか?私はいくつかのライブラリで作られたゲームを持っており、私はすべてのリソースを暗号化していますが、私はexeに侵入してコードを変更する人々が心配しています、それは可能ですか?C++ Exe暗号化?

+16

DRMの世界へようこそ...それは戦い...その... ...あなたは...勝利しない...勝利... – Mysticial

+1

初心者の方は、exeをdecrpytする必要がありますそれを実行してください(それはディスク上になければなりません。あるいは、メモリから実行するためには本当にクレイジーなメモリを使わなければなりません)。 .exeだけでなく重要なデータを暗号化するだけです。 –

+1

ゲームの場合、私はこれを全く無意味なものとして評価します。それを正当化するための種類の価格タグを持つプログラムでは、ドングルベースのスキームのいくつかは少なくともセキュリティを提供していますが、その価格は一般に比較的高価なソフトウェア(数千ドル)でしか使用されません。 –

答えて

4

壊れないソフトウェアを作る方法はありません。それがユーザーのマシン上にある場合、ユーザーは理論的に完全に制御できます。

あなたがしようとすることができるのは、人々がクラックするのをより困難にすることです。 探しているものは"Executable compression"です。アルマジロはこのようなことをするので、UPXもそうです。

PEフォーマットパッカーの包括的なリストはhereです。

圧縮されたリソースを暗号化するには、暗号化をサポートするアーカイブ形式のLZMA SDKを使用できます。あなたがその暗号鍵を隠すことを試みるところに注意してください。彼らが言うように、「実行することができますが、隠すことはできません」:

DRMの醜い世界へようこそ。

+0

C++を使用するプロのゲームは、平均プレイヤーがリソースとEXEランチャーで名前を変更したzipファイルを簡単に開くことができないようにするにはどうすればよいですか? – user2184442

+4

@ user2184442彼らはしません。それで、平均的なプレーヤーはちょうど亀裂をダウンロードして、ドライブにCDなしでゲームを走らせることができます。 – Mysticial

+3

それはそれらを暗号化しますが、ゲームではそれらのリソースを使用するためには復号化する必要があります。これを行うには、解読を行うアルゴリズムもユーザーのマシンになければならないため、ユーザーは暗号化されたzipと解読手段の両方で終わることになります。そこから、あなたは次のことを知っています。 –

0

これはあまり意味がありません。プログラムを実行するためには、メモリ内で復号化されなければならないので、復号化されたコードはメモリに格納され、そこからダンプすることができる。

実行可能ファイルに署名することもできます(詳細はthis articleを参照してください)。実行可能ファイルが署名されている場合、完全保護されており、Windowsを含むほとんどのオペレーティングシステムでこれがサポートされていることが最も重要です。実行可能ファイルが変更された場合、オペレーティングシステムは改ざんを検出し、それを起動しません(または少なくともユーザーに警告します)。

+1

パックされたEXEをダンプしようとしましたか?それは簡単ではない。パッカーはまた、デバッガでアタッチしてコードをステップ実行してイメージをダンプできる状態になると、誤ってトリガされる可能性のあるコードを挿入します。それは不可能ではありませんが、それはブービートラップです。自明ではない。 –

3

実行可能とリソースの両方をエンドユーザーに出荷し、価値がある場合は最終的にがクラックされ、何もできません。解読プロセスをより困難にするだけですが、セキュリティを強化することは合法的ユーザーにのみ影響し、時間を無駄にしてソフトウェアの改善に費やすことができます。

アップルのプログラマーは確かにあなたと私よりも良いですが、彼らのiPhoneはすべて最終的に脱獄されました。