[解決済み] .NET難読化ツール/戦略 [終了しました]。
質問
私の製品にはいくつかのコンポーネントがあります。ASP.NET、Windows Forms App、Windows Serviceです。コードの95%ほどはVB.NETで書かれています。
知的財産権上の理由から、私はコードを難読化する必要があり、今までは5年以上前のバージョンのdotfuscatorを使用していました。そろそろ新世代のツールに移行する時期だと考えています。私が探しているのは、新しい難読化ツールを探すときに考慮すべき要件のリストです。
今までのところ、何を探せばいいかわかっていること。
- シリアライズ/デシリアライズ . 私の現在のソリューションでは、単純にツールに ではなく というのも、以前にシリアライズされたデータを読み込むことができないという痛みは、単純に大きすぎるからです。
- ビルドプロセスとの統合
- ASP.NETで作業する . 過去には、.dll 名の変更(1 ページに 1 つあることが多い)が原因で問題が発生したことがあり、すべてのツールがうまく処理できるわけではありません。
解決方法は?
.Net 1.1では難読化は必須でした。コードの逆コンパイルは簡単で、アセンブリからIL、C#のコードに移行し、わずかな労力で再コンパイルすることができました。
.Net 3.5では、まったく自信がありません。 3.5のアセンブリをデコンパイルしてみると、コンパイルとは程遠いものが出てきます。
3.5からの最適化(1.1よりはるかに良い)と、匿名型、デリゲートなどがリフレクションで処理される方法(これらは再コンパイルの悪夢です)を追加します。ラムダ式、Linqシンタックスのようなコンパイラの「マジック」、そして
var
のようなC#2関数があります。
yield
(その結果、読めない名前の新しいクラスができる)。デコンパイルされたコードは、コンパイル可能な状態からは程遠い状態になります。
しかし、難読化されたコードにも同じことが言えます。しかし、難読化されたコードも同様です。そこから得られるコードはメンテナンス不能で、非常にバグの多いものになる可能性が高いのです。
私はアセンブリにキー署名をすることをお勧めします(ハッカーが1つを再コンパイルすることができれば、すべてを再コンパイルしなければならないことを意味します)。
関連
-
[解決済み] app.configのマッピングがないアセンブリのapp.configの再マッピングを考慮する。
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] .NETでGmailを使ったメール送信
-
[解決済み] .NETでapp.configやweb.configから設定を読み込む
-
[解決済み] Visual Studioの「Any CPU」ターゲットはどういう意味ですか?
-
[解決済み] シンプルで安全でない双方向のデータ「難読化」?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】WCFとは何か、何ができるのか?
-
[解決済み】この動詞型ではcontent-bodyを送信できない
-
[解決済み】コンパイラーエラーメッセージ。コンパイラはエラーコード -532462766 で失敗しました。
-
[解決済み] msiexec を使用せずにコマンドラインから MSI ファイルをアンインストールする
-
[解決済み] ファイル *.mdf をデータベースとして添付できません。
-
[解決済み] Marginのプロパティ順
-
[解決済み] asp.netでWebサービスのタイムアウト時間を長くする方法は?
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] Visual Studioのコンパイルエラー "mismatch between processor architecture "を修正するにはどうしたらいいですか?