6

コピー防止については、ここで多くの議論を見てきました。反転防止と IP 保護に興味があります。

バイナリを暗号化すると主張する Safenet や HASP などのソリューションがありますが、これらは有効なキーを使用した場合に元に戻すことはできませんか?

コードを難読化し、リバーサーを無効にするためにどのような戦略を使用できますか? そこにまともな商用実装はありますか?

ほとんどの保護スキームがクラックできることは知っていますが、ここでの目標は、問題のソフトウェアを元に戻す機能を遅らせ、別の会社がこれらの方法を実装しようとした場合に、それをより露骨にすることです.

4

7 に答える 7

7

バイナリを暗号化すると主張する Safenet や HASP などのソリューションがありますが、これらは有効なキーを使用した場合に元に戻すことはできませんか?

いいえ。専任のリバース エンジニアが解読できます。これは、オペレーティング システムが実行するために解読できる必要があるためです。

個人的には心配いりません。確かにあなたのビジネスについては何も知りませんが、C++ のリバース エンジニアリングは、Java や .NET などの言語に比べて比較的難しいように思えます。これは、最も断固たる攻撃者を除いて、すべてを撃退するのに十分な保護となります。

ただし、ある時点で一連の CPU 命令に変換して実行する必要があるため、意図的な攻撃者は、実装したものを常に通過できます。彼らがそれを読むのを防ぐことはできません。

しかし、それは重要なプログラムにとっては大変な作業です。私には、あなたのプログラムが実際に動いているのを見た後 (あるいはあなたのマーケティング資料からでも) 誰かが競争相手を作る可能性が高いように思えます。リバース エンジニアリングを試みるよりもおそらく簡単で、潜在的な法的問題を回避できます。これは、防止できる (または防止する必要がある) ものではありません。

于 2009-05-26T21:59:49.263 に答える
6

私が何年も一緒に働いてきた何人かを雇えば、彼らはソースコードを完全に難読化してくれます!

于 2009-05-26T21:31:17.947 に答える
1

これを読む

http://discuss.joelonsoftware.com/default.asp?joel.3.598266.61

于 2009-05-26T21:37:21.290 に答える
1

リバース エンジニアリングが完全に不可能になるような方法でコードを真に難読化することはほとんど不可能です。

もしそれが可能であれば、コンピュータ ウイルスは完全に止められず、誰もその仕組みや機能を知ることができなくなります。暗号化されたコードを実行できるようになるまで、CPU で実行できるようになる前に、ある時点で暗号化が復号化されて「読み取り可能」になります (機械コードを読み取ることができる人など)。

これを念頭に置いて、安価な保護が安価なハッカーをかわすと安全に想定できます. 「良くない」のように安く読んでください。あなたが支払う価格とはまったく関係ありません。強力な保護は強力なハッカーをかわしますが、究極の保護は存在しません。

通常、ソリューションが商業的であるほど、攻撃ベクトルが「よく知られている」ようになります。

また、暗号化されたアプリケーションなどは、余分なオーバーヘッドを意味し、ユーザーを悩ませていることを認識してください。また、USB ドングルは、持ち歩く必要があり、交換するのに多額の費用がかかるため、ユーザーを悩ませています。したがって、一握りのハッカーから保護されたことに満足することと、保護方法が負担する障害を負わなければならないすべての顧客との間のトレードオフにもなります.

于 2009-05-26T21:41:16.243 に答える
1

これには 2 つの主な領域があります。

  1. 難読化 - 多くの場合、シンボルの名前変更と削除を意味します。同等のコード変換によってコードを再配置する場合もあります。実行可能パッカーは、通常、アンチデバッグ ロジックも採用しています。
  2. 下位レベルの保護 - これは、カーネルまたはハードウェア レベルのプログラミングを意味します。Sony、nProtect、CD/DVD コピー防止などのルートキットで見られます。
于 2009-05-26T21:44:53.833 に答える
1

もちろん、デバッガーやリバースエンジニアリングを打ち負かしたり遅らせたりするために、あらゆる種類の巧妙な手段を講じることができます。他の人が言ったように、あなたは断固たる攻撃者を止めることはできません...そして、アプリがハッキングされると、オンラインで無料で利用できるようになると期待できます.

希望する保護スキームの 2 つの目標を述べます。

1) リバースエンジニアリングを困難にする。2) 誰かがあなたをぼったくっていることをあからさまにします。

#1 については、難読化ツール/デバッグ検出ツールなどのスキームは、少なくともある程度の影響があります。しかし率直に言って、これまでにコンパイラの出力を掘り下げたエンジニアの割合が減少していることは、コンパイルされた C/C++ コードが多くの人にとって難読化されたコードであることを意味します。

#2については、保護しようとしている特定の法的に保護されたアルゴリズム/プロセスがない限り、アプリがリバースエンジニアリングされると沈んでしまいます. 法的に保護されている場合、保護された詳細を既に公開しているので、何を得ようとしていますか?

一般に、これは「勝つ」ための難しい方法であり、「ビジネス側」でこれを修正する方が良いと思います。つまり、アプリをサブスクリプションにするか、メンテナンス/サポートを請求します...しかし詳細は明らかにあなたの状況に依存します。

于 2009-05-26T22:08:40.243 に答える