2010-11-28 11 views
10

私は、クライアント側とサーバー側を持つ商用製品を作っています。クライアントは完全にサーバーに依存しているだけで、クラック/海賊を難しくしています。問題があるとしても、誰かがプロトコルをリバースエンジニアリングして自分のサーバーを作る可能性があります。クラッキングに対する保護 - 具体的には、プログラムを逆コンパイルするのを難しくする方法

私はsslまたは別のアルゴリズムを使って接続を暗号化することを考えました。クライアントとサーバーの間のトラフィックを盗聴することからプロトコルを理解するのは簡単ではありません。

ここで私が思うには、プログラムを逆コンパイルし、暗号化を取り除き、リバースエンジニアリングするために「プレーンテキスト」プロトコルを見てみることです。

私は以前の話題を読んだが、それは不可能にすることは不可能であることを知っているが、プログラマーはクラッカーにとって大きな頭痛になるようにコードを持っていくことができるだろうか?

+2

クラックすることが不可能である必要はありません。購入するよりもクラッキングするほどのコストがかかるほど難しくしたいだけです。 –

+2

@Matthieu:あなたはたくさんのコピーを購入しますが、一度だけクラックします。 – ybungalobill

+0

あなたの答えはありがとうございます、私はいくつかのASMの人に連絡して難読化を助け、特定のトークンでX秒ごとにタイムサーバの有効性要求を使用し、リバースエンジニアを難しくしないようにします。 – xlnkz

答えて

11

読むhow Skype did it

ここで良好な保護を書くことについていくつかの素晴らしいヒントがあります。とにかく、一般的に、それは不可能です。

+2

Skypeがしたことがあっても、スマートな人たちは、それをリバースエンジニアリングするために道を離れました:)優秀な記事! –

1

IMHO、実際のプレーンコードを隠すのは難しいです。ほとんどのパッカーがパッチを当てるのを難しくすることです。しかし、あなたの場合、Themidaはそのトリックを行うことができます。 http://www.inner-smile.com/nocrack.phtml

3

あなたが知っておく必要があることは、ほとんどのパッカー/クリプタがウイルススキャナで誤検出を引き起こすことです。そして、あなたのソフトウェアにウイルスが含まれている(偽陽性という概念を持っていない)すべての時間に人々が不満を寄せているので、それはかなり迷惑になることがあります。

また、プロトコル難読化のためにSSLを使用しないでください。 Sendをプレーンテキストで呼び出すと、攻撃者は平文を傍受することは自明です。 SSLを使用して接続を保護し、データを送信する前に難読化してください。難読化アルゴリズムは、暗号的に安全である必要はありません。

関連する問題