Tilslør din Silverlight-applikation med Dotfuscator

Side opdateret :
Dato for oprettelse af side :

Om Dotfuscator

Dotfuscator er en tilsløring, der gør kildekoden vanskelig at læse, når applikationer skrevet med .NET Framework adskilles. Dotfuscator er tilgængelig i både gratis og betalte detailversioner, der følger med Visual Studio.

Den gratis version er kun tilgængelig med mange begrænsede funktioner og antagelsen om, at Visual Studio kører, men alle med Visual Studio installeret kan bruge den. Den betalte version har mange kraftfulde tilsløringsfunktioner, der ikke er tilgængelige i den gratis version, men det kan være irriterende, at den tilbydes til en pris, der er vanskelig for offentligheden at have råd til.

Dotfuscator kan have forskellige funktioner, priser og udgaver afhængigt af versionen, så se venligst følgende websted for detaljer.

Dotfuscator

Analyseret kode

Som nævnt ovenfor kan applikationer, der er oprettet med .NET Framework, let læse den originale kildekode ved at adskille, men hvad der faktisk sker er, at når du adskiller en samlingsfil som vist i figuren, kan det meste af den originale kildekode såsom navnerum, klassenavne og metodenavne gengives.

解析されたコード

Tilsløring procedure

Start med at oprette Silverlight-applikationen som normalt og lave en udgivelsesbuild. Her opretter vi en applikation, der kun placerer to knapper.

Release ビルド

I mappen Bin\Release i den mappe, hvor projektet er placeret, skal du skrive . xap" er en pakkefil, der opsummerer de programmer og filer, der bruges i Silverlight-applikationer.

XAP ファイル

Faktisk er denne fil komprimeret og kompileret som en ZIP-fil, så udvidelsen er ". lynlås".

拡張子を .zip に変更

Det er blevet ændret til en ZIP-fil.

ZIP ファイル

Når du åbner filen, indeholder den en manifestfil og en DLL. Denne DLL er den kompilerede version af programmet, der kører som en applikation.

Forresten placeres DLL-filen også i udgivelsesmappen, når den er bygget, så denne gang vil vi tilsløre denne fil.

ZIP ファイルの中身

Vælg Værktøjer i menuen Visual Studio, og vælg derefter Forebyggende dotfuscator og analyse.

Når du starter for første gang, vises dialogboksen "Licensaftale", så læs indholdet omhyggeligt, marker "Ja, jeg accepterer licensaftalen." og klik på knappen "OK".

PreEmptive Dotfuscator And Analytics を選択

PreEmptive Dotfuscator And Analytics CE starter.

PreEmptive Dotfuscator And Analytics CE

Vælg "Inputs" fra træet til venstre og klik på knappen "Tilføj input".

入力の追加

Vælg den DLL-fil, du genererede under buildet.

ビルドで生成した DLL ファイルを選択

Vælg den DLL-fil, du tilføjede, og fjern markeringen af Bibliotekstilstand > XAML-konvertering.

Hvis "Bibliotekstilstand" kontrolleres, vil klasser og metoder, der er defineret offentligt, ikke blive tilsløret.

Hvis "XAML-konvertering" er markeret, vil klasser defineret i XAML blive tilsløret, men afhængigt af hvordan du opretter det, vil det medføre en opstartsfejl, så hvis det opstår, skal du fjerne markeringen af det.

「ライブラリ モード」「XAML の変換」のチェックを外す

Dybest set er alle klasser, metoder, egenskaber og variabelnavne tilsløret, men hvis du ikke vil tilsløre et bestemt navneområde eller klasse på grund af serialisering, skal du vælge "Omdøb" fra træet til venstre, vælge fanen "Ekskluder" og kontrollere målnavnerummet eller klassen.

難読化の除外

Under Indbyggede regler skal du sørge for, at felter til Silverlight og WPF UserControls er markeret. Hvis du markerer dette, bliver feltet UserControls sløret og kører korrekt. Du kan fjerne markeringen af det, hvis det ser ud til at fungere korrekt, selv efter tilsløring.

Silverlight および WPF UserControls のフィールド

Når du er færdig, skal du klikke på knappen "Byg projekt" fra værktøjslinjen.

プロジェクトのビルド

Hvis der er ændringer i projektet, vises dialogboksen til bekræftelse af projektlagring, så klik på "Ja" for at gemme.

プロジェクト保存確認ダイアログ

Projektet hedder ". xml"-fil. Obfuscated filer gemmes på samme sted.

プロジェクト保存

Vent på, at byggeriet er færdigt, når det starter. Bemærk, at jo større programmet er, jo længere tid tager det at bygge. Når det ligner figuren, er bygningen færdig.

Meddelelsesfeltet viser bygningens fremskridt og et kort resultat, såsom hvor tilsløret det var.

ビルド完了

Hvis du vælger Resultater fra træet til venstre, kan du se oplysninger om, hvordan klasse- og metodenavnene er ændret.

Under klasse- og metodenavnene vil der være et Dotfuscator-ikon og navne som "a" og "b", som vil være det tilslørede navn. Ved at ændre klassenavnet eller metodenavnet til et meningsløst navn på denne måde, selvom det er adskilt, kan det gøre indholdet af kildekoden vanskeligt at læse.

難読化結果

Den tilslørede fil oprettes i en mappe kaldet "Dotfuscated" i mappen med den .xml fil, der er gemt i Save Project. Ud over den tilslørede fil er der oprettet en "Map.xml" -fil, men dette er resultatet af tilsløring og bruges ikke.

難読化したファイル

Hvis du adskiller den tilslørede fil, kan du se, at nogle klasse- og metodenavne er blevet ændret til "a" eller "b".

Denne gang blev det oprettede standardprojekt tilsløret næsten som det var, så jeg tror, der er et billede af, at det ikke er så tilsløret, men jeg tror, at effekten af tilsløring bliver tydeligere, fordi antallet af klasser osv. stiger, når projektet vokser.

Som en sidebemærkning, . NET Framework-biblioteker og er ikke genstand for omdøbning, fordi de er samlinger, der allerede er installeret på Windows, for eksempel.

難読化したコードの解析

Silverlight bruger ikke DLL'er, som de er, så de pakkes som XAP-filer. Som nævnt i begyndelsen er en XAP-fil bare en ændring i udvidelsen af ZIP-filen, så den opretter en ZIP-fil ved at indsamle filerne indeholdt i XAP-filen og de tilslørede DLL'er.

Oprettelse af en ZIP-fil kan gøres ved hjælp af standard OS-funktioner.

ファイルを ZIP 化

Der oprettes en ZIP-fil.

ZIP ファイル

Udvidelsen ændres til '. xap", og hvis filnavnet er anderledes, skal du ændre det til det oprindelige pakkefilnavn.

Placer XAP-filen på en distributionsplacering.

XAP ファイルに変更

Kontroller operationen og se, om den fungerer korrekt.

Hvis det ikke starter, skal du kontrollere, indtil det fungerer normalt ved at reducere den tilslørede kode. Bemærk, at Silverlight ofte sidder fast i XAML-relaterede spørgsmål.

動作確認

Selvom instruktionerne ikke er angivet her, skal du bygge det i en forsinket underskrevet tilstand, tilsløre samlingen og derefter underskrive igen, hvis du vil underskrive et program. Selvom du tilslører det, mens det er underskrevet, vil signaturkoden, der er vedhæftet på tidspunktet for opbygningen, og signaturkoden efter tilsløring ikke matche, så du vil ikke være i stand til at starte den.

I denne artikel har jeg listet trinene til den gratis version, men hvis du bruger den betalte version, kan du udføre mere kompleks tilsløring og forhindre demontering af sig selv. Obfuscation har imidlertid potentialet til at forårsage forskellige bivirkninger, så når tilsløring foretages, er det nødvendigt at overveje, om det vil fungere korrekt fra begyndelsen af designet.