1

良い一日!

C# アプリケーションを配布して保護したい。私は欲しい:

  1. 難読化 - ソース コード + テキスト リソース ファイルの保護。
  2. エラー報告 - 未処理エラーに関する報告。
  3. 難読化されたスタック トレースを明確に表示
  4. ソースコードに変更がないことを確認してください。

難読化によってどのような問題が発生する可能性がありますか (シリアライゼーション / デシリアライゼーション / リフレクション / グローバリゼーションなど)? この問題の解決策の複雑さを理解していますか?

どのような方法/ツール/アプローチをお勧めしますか?

手伝ってくれてありがとう!

4

2 に答える 2

4

免責事項: 私は Red Gate で働いています。

SmartAssemblyは、あなたが求めていることを実行します。あなたのポイントのために順番に:

1) 制御フローの難読化、メソッド/フィールドの名前変更、リソースと埋め込み文字列の圧縮/暗号化、およびメソッドを含むクラスからの分離を行います。

2) 自動化されたエラー レポートは、未処理の実行を自動的に検出してレポートします (スタック トレース、すべてのローカル変数の値、およびいくつかの一般的なシステム情報も取得して送信します)。

3) 難読化されたスタック トレースがマシン上で再度デコードされるため、明確に表示されます。

4) これが何を意味するのか 100% わかっているわけではありませんが、改ざん防止機能により、アプリに変更が加えられた場合、アプリがまったく実行されなくなります。独自のソース コードを変更したくない場合は、ビルド後のプロセスとして実行されるため、ソースに変更を加える必要はありません。

難読化で発生する可能性のある問題に関しては、最も一般的なのはリフレクションが原因であり (その結果、WPF はしばしば問題を引き起こします)、データ バインディングも多くの問題を引き起こします。ほとんどの難読化ツールでは、リフレクションに問題がある個々の型とメソッドを除外できるようにする必要がありますが、明らかにそれらの型とメソッドは保護されません。

他にも難読化ツールがあります。PreEmptive の dotfuscator と呼ばれる難読化ツールを使用している人を何人か知っています。

于 2012-04-11T11:41:45.850 に答える
1

Crypto Obfuscatorは、難読化、コード保護、例外レポート(自動難読化解除、すべてのメソッド パラメーターとローカル変数の完全な値を使用)など、探しているすべての機能をサポートしています。

Crypto Obfuscator のもう 1 つのユニークな機能は、難読化後に表示される [警告] タブです。これにより、難読化されたアセンブリが失敗する可能性がある、アセンブリ内のすべてのコード行が一覧表示されます。そのため、難読化されたアセンブリが機能しない理由を突き止めようとして暗闇で撮影する必要はありません。

免責事項: 私は、Crypto Obfuscator の開発者である LogicNP Software で働いています。

于 2012-04-18T05:10:22.737 に答える