Microsoft Visual C ++コンパイラが作成するexeファイルを暗号化する必要がありますか?いくつかのライブラリで作成されたゲームがあり、すべてのリソースが暗号化されていますが、exeに侵入してコードを変更する人が心配ですが、それは可能ですか?
3 に答える
クラックできないソフトウェアを作る方法はありません。それがユーザーのマシン上にある場合、ユーザーは理論的にはそれを完全に制御できます。
あなたができることは、人々がクラックするのを難しくすることです. あなたが探しているのは「実行可能な圧縮」と呼ばれます。Armadillo はこのようなことを行います。UPX も同様です。
PE 形式のパッカーの包括的なリストは、ここにあります。
圧縮されたリソースを暗号化するには、暗号化をサポートするアーカイブ形式でLZMA SDKを使用できます。ただし、その暗号化キーを隠そうとする場所に注意してください。彼らが言うように、「逃げることはできますが、隠すことはできません」:)
DRM の醜い世界へようこそ。
どの手法を使用する場合でも、実行可能ファイルとリソースの両方をエンド ユーザーに配布し、それが価値がある場合は、最終的にクラックされ、何もできなくなります。復号化プロセスを難しくするだけかもしれませんが、セキュリティを強化しても正当なユーザーに影響を与えるだけであり、ソフトウェアの改善に費やすことができる時間を無駄にします.
Apple プログラマーは確かにあなたや私よりも優れていますが、最終的にはすべての iPhone がジェイルブレイクされました。
あまり意味がありません。プログラムを実行するには、メモリ内で復号化する必要があるため、復号化されたコードはメモリ内にあり、そこからダンプできます。
ただし、実行可能ファイルに署名することはできます (詳細については、この記事を参照してください)。実行可能ファイルが署名されると、整合性が保護されます。その最大の利点は、これが Windows を含むほとんどのオペレーティング システムでサポートされていることです。実行可能ファイルが変更された場合、オペレーティング システムは改ざんを検出し、それを起動しません (または、少なくともユーザーに警告します)。