1

私はこの問題を抱えています:

C# WPF (.NET Framework 4.0) アプリケーションを作成しましたが、すべて問題ありません。今、私はそれを難読化したいと思います。コンフューザーでやってみた。

質問は:

  1. アプリが公開されている場合、メインの exe ファイルと dll-s が表示されます。だから私はexeを難読化しようとしました。難読化された .exe 生成ファイルをどこに置くべきですか (メインの exe ファイルのみを難読化します)。つまり、Confuser は難読化された exe を含む「Confuser」というフォルダーを作成します。難読化された exe をダブルクリックして通常どおりアプリを起動すると、機能せず、通常のアプリケーション クラッシュ ウィンドウが表示されます。また、元のexeファイル(appフォルダー内)を難読化されたもの(Confuserフォルダー内)に置き換えようとしました。

  2. アプリが展開されている場合、setup.msi パックまたは setup.exe があります。この場合、どのように難読化する必要がありますか?

ありがとう、エイドリアン

4

3 に答える 3

3

すべての XAML ベースのプラットフォーム (WPF、Silverlight、Windows Phone) は、ほとんどの難読化ツールにとって非常に問題のある領域です。主な問題は、XAML が型とメンバーを名前で参照することです。難読化後にアプリケーションが機能しないことがよくあるのも不思議ではありません。完全性が失われます。

後で出力アセンブリの作業を維持するために、難読化ツールによって使用される 2 つの方法があります。

  1. 型またはプロパティ名である可能性のあるすべての XAML コンテンツを検索し、これらの名前に一致するすべてのメンバーを大まかに除外します。これは、アプリケーションが壊れていないことを 100% 保証するものではなく、分析が不正確なために難読化の範囲が貧弱になります。それでも、このアプローチにより、アプリケーションの破損を防ぐことができる可能性があります。

  2. XamlReader が行うことと同様のことを行います。XAML ツリーを読み込み、一致するすべての CLR 型とメンバーを見つけます。名前を変更すると、すべての変更が XAML と同期されます。このアプローチは、最高の信頼性とカバレッジを提供します (型とメンバーは、コードと XAML の両方で名前が変更されます)。XAML の名前変更をサポートしていると主張する難読化ツールが市場に出回っています。それらのいくつかを試してみてください。

回避策もあります。ほとんどの難読化ツールは、条件付きの難読化をサポートしており、特定の型とメンバーを手動で除外できます。XAML によって何らかの形で参照されているすべての型とメンバーを手動で除外する必要があります。これには少し時間がかかりますが、通常は機能します。

于 2013-10-05T01:58:23.073 に答える
0

まず、メインの .exe ファイルを難読化し、古いファイルを置き換えます。次に、すべてをインストーラーにパックします。

また、xaml に含まれるすべてのプロパティと型が public として宣言されていることを確認してください。または、難読化ツールに何らかの方法でそれらを無視するように指示します。

于 2013-09-30T07:34:55.327 に答える