webdevqa.jp.net

Dotfuscator Community Editionはどの程度優れていますか? 「十分な難読化ツール」とは何ですか?

低価格の小さなユーティリティを1つリリースする予定です。これはビジネスよりも趣味なので、VS2008に同梱されているDotfuscator Community Editionを使用する予定でした。

どれくらいいいですか?

「十分な難読化ツール」の定義を使用することもできます-Dotfuscator Community Editionに不足している機能は、それを十分に有効にするためです。

編集:

市販の難読化ツールの価格を確認しましたが、費用がかかりました。その価値はありますか?

商用バージョンはリバースエンジニアリングからの保護がはるかに優れていますか?

私は自分のアプリケーションがクラックされることをあまり恐れていません(アプリケーションがあまりにもひどく、誰もそれをクラックすることに興味がない場合は失望します)。とにかくそれは厳重に保護されておらず、コード内のいくつかの場所で過度に複雑なシリアルキーとライセンスチェックを行っていません。難読化することなく、だれかが簡単にソースコードを入手し、ブランドを変更し、それを独自のものとして販売できることは、私を悩ませています。

これは頻繁に起こりますか?

編集2:

誰かが市販の難読化ツールを推奨できますか?私はそれらの多くを見つけました、それらのすべては高価で、いくつかはウェブサイトにリストされた価格さえありません。

機能面では、すべての製品は多かれ少なかれ似ています。

難読化ツールに必要な最小限の機能は何ですか?

57
zendar

簡単に言えば、Dotfuscator Community Editionと他の「プロフェッショナル」エディションの主な違いは、Community Editionがクラスの名前空間、メソッド名、およびその他の「パブリック」アクセス可能な側面のみを実際に難読化および変更することです。関数自体を掘り下げて、関数内の「プライベート」コードを難読化することはありません。

また、Community Editionは、アプリケーション内の制御フローなどを難読化することも、複数のアセンブリのコードを1つのアセンブリに「結合」することもしません。これらは、「プロフェッショナル」有料版内で利用可能な機能です。

Community Edition(Visual Studioに付属する「無料」バージョン)と「プロフェッショナル」な有料版との最適な比較は、次の2つのリンクを参照してください。

プリエンプティブDotfuscatorエディションの比較

MSDNのDotfuscator Community Edition 3.

MSDNリンクは少し古くなっていますが、Dotfuscatorのさまざまなエディションで利用可能な実際の機能については、より良い説明が提供されています。

編集:

市販の難読化ツールには多くの費用がかかりますが、その価値があるかどうかについてはどうでしょうか?まあ、それは本当にあなただけが行うことができる判断の呼び出しです。個人的には、あなたのシナリオでは価値がないと思います。 1つは、1つのアプリケーションのみを保護するため(「1つの小さな低価格ユーティリティをリリースする予定です」)、2つ目は、アプリケーションが「クラック」されることを過度に心配していないということです。アプリケーションがクラックされることをそれほど恐れない。」)。

難読化せずにコンパイルされた.NETアプリケーションを元のソースコードに簡単にリバースエンジニアリングでき、誰かがこれを利用してソフトウェアを盗み、独自のソフトウェアとして販売する可能性があるというバグをどのように理解できるかを理解していますソフトウェア著作権侵害が存在するという事実は残っており、おそらくあなたはそれを決して止めないでしょう。

ソフトウェアの違法コピーを阻止しようとすることは、ここ(スタックオーバーフロー)とインターネット全体の両方で、アドウーザムについて議論されてきました。

一般的なコンセンサスは、十分な時間/お金を与えられて「攻撃者」ができる何かを保護しようとするのと同じ時間を使用するのではなく、製品をできるだけ大きくすることに時間とエネルギーを集中する必要があるということですとにかく彼のソフトウェアを盗むのを防ぐための最善の努力にもかかわらず、ソフトウェアをクラックします。

これは頻繁に起こりますか?

おそらくあなたが思っているよりもずっと少ないと思います。確かに、ソフトウェアはクラックされますが、実際に他の人のソースコードを盗み、完全にブランド変更して自分のものとして販売する人はあまり多くないと思います。私はそれが起こらない、または起こっていないと言っているわけではありませんが、確かに一般的なことではありません。

要約すると、あなたの最善の策は、あなたのユーティリティをできるだけ大きくすることに集中し、無料のDotfuscator難読化ツールを使用することだと思います明白なpr索​​好きな目ですが、誰かがあなたの製品/コードをひどくクラック/盗もうとするなら、彼らがやるという事実について眠りを失わないでください。

49
CraigTP

Visual Studioに同梱されているDotfuscator Community Editionは非常に素朴なソリューションだと思います。シンボル名の変更のみを提供し、制御フローをまったく難読化しません。そして、誰かがあなたのコードを盗むことに決めた場合、すべての名前をリファクタリングするだけでよく、これは少量のクラスで非常に簡単です。

また、Reflectorが提供するそれほど完全ではない逆コンパイルに頼ることもできます(通常はスイッチブロックを台無しにし、多くのgotoを作成し、if-elseブロックが一致しないなど)。

しかし、 Eziriz .NET Reactor を試すことをお勧めします。費用はたった179ドルです(AFAIKの最高価格/機能比)。シンボルの名前変更、文字列の暗号化、制御フローの難読化などの標準的な難読化技術を提供します。おまけとして、アプリ用のネイティブランチャーが作成されます。これには、メインアセンブリと、オンデマンドで暗号化およびロードされるすべてのサードパーティの参照が含まれます。さらに、いくつかのライセンス機能を提供します。

とにかく.NETアプリケーションを逆にするのはそれほど難しくありません。楽しみのためにやったので、時間とお金(そしてもちろん常識)だけで、アプリケーションがどれだけ速くクラッキングまたは逆戻りするかがわかります。

11
Oleg I.

少なくとも、難読化ツールには次のものが必要です。

  1. 文字列暗号化
  2. シンボルの名前変更
  3. 制御フローの難読化

機能があると便利です:

  1. リソース保護
  2. アセンブリのマージ/埋め込み
  3. 外部メソッド呼び出しの非表示
  4. 難読化されたアセンブリに自動署名する機能
  5. サテライトアセンブリのサポート
  6. デッドコード除去
  7. メタデータ削減
  8. 反逆コンパイラー(リフレクター)
  9. 改ざん防止
  10. アンチデバッグ

これらすべてをサポートしている Crypto Obfuscator 製品をご覧ください。

8
logicnp

リバースエンジニアリングコードを回避する別の方法は、サポートを追加する難読化ツールを実際に購入する余裕がない場合に、dllを配置することです。そして、展開前のアセンブリで、コンパイラにどこでそれらを探すべきかを伝えます。これは、リバースエンジニアリングを妨げる古い習慣でした。ただし、既に述べたように、優れた製品と優れたコーディングプラクティスの開発に専念すれば、将来的にニースの難読化アプリケーションを購入できるようになります。また、ほとんどのハッカーはコードをクラックするため、他の人がコードをクラックすることをあまり心配しないようにしてください。ええ、JITがサポートするのはc#とvb.netだけで、これはリバースエンジニアリングを大幅に削減できますが、jitは.netが本当に言語にやさしいために多くを読むことができるためです。したがって、コードを書き留めてお金を稼ぎ、追加の証券を購入してください。

5
bvrwoo