また、.NET Reflectorを見て、何らかの種類のシンボリックデバッガーに精通していることを前提としています。WinDbgの例を示します。
私はかなり長い間難読化ツールのトピックを扱ってきましたが、最近、知識を更新する必要がありました。
少し前まで、.NET4用の優れた難読化ツールを選択するという課題に直面していました。 たくさんのソフトウェアをレビューした後、私は小さなレビューを行い、最も有名な難読化ツールを含めようとしました。
一般的な結論と推論
- 無料の難読化ツールは非常に弱く、単純な名前変更にのみ適しています。 制御フローについて知っているのはほんの数人です。
- 最大500ドルの非常に優れたソリューション(制御フロー、MSIL暗号化)があります。
- アダルトソリューションの費用は約5000ですが、残念ながら、それらの多くには開梱業者がいます。 それらのいくつかはうめきました。
難読化者はうなり声を上げました。つまり、彼らは彼の保護システムを理解しました。 ゴミ箱にこのような難読化ツール。 - 「牛のハッカーに対する」解決策があります-アセンブリは完全に暗号化および復号化されます。 シンボリックデバッガーを使用したクラッキングは、このような簡単なアセンブリです。
katomの下でそれぞれについて詳しく説明します。
タブレットのエントリはアルファベット順になっているため、誰も気分を害することはありません。
タイトルとURL | 費用 | 制御フロー | MSIL暗号化 | 詳細... |
---|---|---|---|---|
.NETリアクター | 180ドル | + | + | コードを暗号化し、解読することは非常に困難ですが、アンパッカーが存在する可能性があります |
{SmartAssembly} | 795ドル | + | - | RedGateによって使用されます。 汚い。 |
Aspose.obfuscator | (-) | (-) | (-) | プロジェクトはサポートされなくなりました。 |
組み立てる | 無料 | - | - | Studioプラグイン+コンソール。 ほとんど何も難読化されません |
バベル | 250ドル | + | ? | 何かが暗号化されていますが、実行時にDumlILを実行できます。おそらくフルバージョンがうまく機能します |
ビットヘルメット | 250ドル | ? | ? | .NETが欠落していると言った |
C#ソースコード難読化ツール | ? | - | - | .NETソースで動作するようです。 興味深いアプローチですが、説明と例は別として、何も見つかりませんでした |
チルセキュア | > $ 1000 | ? | ? | トライアルがなくても、有料の難読化ツール。 猫は袋に入っています。 |
CodeArmor | ? | ? | ? | 別の有料の難読化ツールは、非常に濁っていて、裁判もありませんでした。 サポートは応答しませんでした。 |
CodeVeil | 900ドル | + | + | アンチウイルスで燃えるという事実で知られています。 すべてのすべてで良いこと |
コードウォール | 400ドル | + | + | 難読化ツール |
Decompiler.NET | 550ドル | - | - | 放棄された3年 |
深海 | 200ドル | ± | - | 多くの切り替えを行う傾向があります。 一般的に、使用できません。 |
デサウェア | 1,500ドル | + | ? | .NET 4.0なし |
DNGuard HVM | 900ドル | ? | ? | 半分のボタンがないバグのあるインストーラー、最初のアプリケーションがクラッシュしました |
Dotfuscator | 1900ドル | + | ? | コミュニティバージョンは非常に貧弱で、Enterpriseは高価ですが、それだけの価値があるかもしれません。 |
dotNetProtector | 500ドル | + | + | 4 MB以上の彼のDLLをプロジェクトに追加しました |
Eazfuscator.NET | 無料 | - | - | 簡単な名前変更 |
Goliath.NET | 115ドル | + | ± | リフレクターアセンブリは開きませんが、WinDbgではソース全体が表示されます |
Netorbiter | 無料 | - | - | 面白い難読化ツール。 独自のプロキシを作成し、exe-shnikを完全にコピーして、さらに何かを追加しました。 |
オブフスカー | 無料 | - | - | Mono.Cecilに基づく単純な名前変更。 .NET 4.0はサポートしていません |
Obfuscator.NET | 200ドル | ? | ? | 作られたアセンブリはすぐに倒れました。 .NET 3.5でも。 |
.NET用のPCguard | 400ドル | ? | ? | 難読化よりもライセンスに重点を置いています。 裁判は送られませんでした。 ビューは非常に興味深いでしょう。 |
フェニックスプロテクター | 無料 | (-) | (-) | .NET 3.5でも保持されません |
Salamander.NET | 800ドル | - | - | Webサイトの例を使用すると、リフレクターはもちろん、待ち伏せを疑って誓うが、強打で分解する |
Sharpbfuscator | 無料 | - | - | どうやら、製品は長い間放棄されてきました。 |
Skater.net | 100ドル | - | - | 奇妙なことに、いくつかのメソッドの名前を変更し、古いILDASMを検索しました。 おそらく放棄された。 |
Spices.NET | 400ドル | - | ± | アセンブリ全体を暗号化しますが、これは悪いことです |
VMware ThinApp | > $ 5000 | + | + | 結果のアプリケーションは、.NETがなくても実行できます。 奇妙な仕掛け |
Xenocode PostBuild | > $ 1000 | + | + | 難読化ツール自体はうなり声を上げ、あまり良い考えにならない |
特に興味深い個人の詳細
.NETリアクター
コードはNecroBit(その技術の名前)を使用して暗号化され、NecroBitが首尾よくうなり声を上げているフォーラムで噂が流布しています。 おそらく私はそれを見つけられなかっただけだ、なぜなら 多くの努力をしませんでした。 コードを解析できませんでした。WinDbgも何も見つかりませんでした。
リフレクター:
WinDbgを使用して何かを抽出できますが、メソッドのILコードは提供されません。
{SmartAssembly}
最近、RedGateに買収されました。 正直なところ、私はRedGateの選択を理解していませんでした。{sa}はMSILを暗号化する方法すら知りません。 デバッガーに座った後、コードを把握できます。 この難読化ツールの使用はお勧めしません。750ドルの価格は明らかに品質と一致しません。
この難読化ツールがコードで行うことは、次のような難読化制御フローのみです。
L_1 br.s L_4
L_2 br.s L_3
L_3 ret
L_4 push
L_5 ldc.i4.1
L_6 br.s L_2
C#のReflectorはコードを解析しませんが(これは難しくありませんが)、ILでは優れています。
Salamander.NET
私は彼らのサイトから素晴らしい例をダウンロードしました。 彼らはリフレクターが開かないことを約束しました。 実際、リフレクターは誓ったが、開いた:
Babel(無料ではないもの)、CodeWall、dotNetProtector
同じクラスの製品は、さらなるリファクタリングや過度の好奇心からのコード保護が必要な場合に非常に適していると思います。
バベル:
ただし、WinDbgは、Babelによって作成されたアセンブリの内部に正常に表示されました(おそらく、コミュニティバージョンを使用していたためです。
C#ソースコード難読化ツール
彼らはソース上で動作することをサイト上に書いており、これは難読化されたソースをもたらします。 非常に興味深いアプローチですが、残念ながら、難読化ツール自体をダウンロードすることはできません。 マイナス-このアプローチでは、MSIL暗号化と誤った指示は不可能です。
XHEO CodeVeil
この難読化ツールの以前のバージョンには、非常に迅速に出現する多くのクラックがありました。 これは、この難読化ツールの仕組みをハッカーが知っていることを示唆しています。 最新バージョンのクラックは見ませんでしたが、悪い問題があります。
- アンチウイルスはアプリケーションを好みません。難読化ツールはアセンブリを暗号化し、自分自身に書き込みます(これは、アセンブリが断片的に暗号化されることを喜ばせます)
- この難読化ツールの後、アプリケーションを非常によくテストする必要があります。バグは最も予期しない場所に落ちる可能性があります。
あなたはそれを使用することができますが、驚きを期待しています。
dotNetProtector
アセンブリは非常に優れていることが判明しましたが、待ち伏せが待っていました。アセンブリには、この難読化ツールから4 MBのDLLが付属していました。
Spices.NET
非常によく知られた製品で、作成されたアプリケーションのハッキングが非常に簡単であることに驚きました。
Goliath.NET
リフレクターアセンブリは開かず、暗号化されます。 難点は、アセンブリが完全に暗号化され、アプリケーションの起動後に解読されることです。 復号化後、メモリの保護なし:
Eazfuscator.Net
難読化ツールは無料です。 簡単な名前の変更だけができるのは残念です。 喜ばしいこと(私は個人的にコンソールまたはMSBuildバージョンに興味があります)-難読化のプロセスは非常に簡単で、すべてアセンブリファイルをドラッグアンドドロップすることです。 結果はこちら
VMWare ThinApp、Xenocode PostBuild
難読化ツールも同様の原理に基づいて構築されており、プリコンパイルされた.NETアセンブリをアプリケーションに導入することでコードを実行できます。これにより、JITコンパイル呼び出しがインターセプトされる可能性がなくなります。
結果のアプリケーションは、マシンに.NETがインストールされていなくても実行できます。 作成されるアプリケーションのサイズは、使用するライブラリに応じて10..50 MBです。
これらのソリューションは非常に高価です。 しかし、残念なことに、クラックはPostBuildに(最後のものでも)行きます。 おそらく、よく知られているサークルには、準備が整った開梱者もいます。
何を選択しますか、%username%?
この質問に対する明確な答えは与えられていません。それはすべてあなたのコードの値に依存します:
- コード全体 -コード内の1つの「トリック」だけでなく、コード全体も重要です。 簡単な難読化ツールでコードを暗号化します。MSILを暗号化することをお勧めします。 すべてのコードが本当に重要である場合、完全に解読することは再度書くよりも難しくなり、誰もそれをしません。
- 別の「トリック」 -たとえば、鍵の検証。 そのようなコードを一般に公開しないことをお勧めします。試用版の機能を削除することをお勧めします。 フルバージョンでは、キーを確認する必要がありますが、盗難のリスクは低くなります。 それでも、難読化ツールをもっと真剣に使用することをお勧めします。
私は何を使用していますか?
上記のどれでもない。 私は自分の難読化ツールを使用します。 これは、.NET Reactorに似た、プラットフォームに依存したピース単位のアセンブリ暗号化です。
その作成のコストは約3000ドルから5000ドルでした。 はい、それは既存のものよりも良くありませんが、一つだけあります-難読化の原則は、それが不適切であると感じるために公に発表されていません。 クラックするには、もっと時間をかけるだけです。
彼らが言うように、自分で考えて、自分で決めて...