Fördunkla din Silverlight-applikation med Dotfuscator

Sidan uppdaterad :
Datum för skapande av sida :

Om Dotfuscator

Dotfuscator är en obfuscator som gör källkoden svår att läsa när program skrivna med .NET Framework demonteras. Dotfuscator finns i både gratis och betalda detaljhandelsversioner som levereras med Visual Studio.

Den kostnadsfria versionen är endast tillgänglig med många begränsade funktioner och antagandet att Visual Studio körs, men alla med Visual Studio installerat kan använda den. Den betalda versionen har många kraftfulla mörkläggningsfunktioner som inte är tillgängliga i gratisversionen, men det kan vara irriterande att det erbjuds till ett pris som är svårt för allmänheten att ha råd med.

Dotfuscator kan ha olika funktioner, priser och utgåvor beroende på version, så se följande webbplats för mer information.

Dotfuscator

Parsad kod

Som nämnts ovan kan program som skapats med .NET Framework enkelt läsa den ursprungliga källkoden genom att demontera, men det som faktiskt händer är att när du demonterar en sammansättningsfil som visas i figuren kan det mesta av den ursprungliga källkoden som namnrymder, klassnamn och metodnamn reproduceras.

解析されたコード

Förfarande för mörkläggning

Börja med att skapa Silverlight-programmet som vanligt och gör en release-version. Här skapar vi en applikation som bara placerar två knappar.

Release ビルド

I mappen Bin\Release i mappen där projektet finns skriver du . xap" är en paketfil som sammanfattar de program och filer som används i Silverlight-applikationer.

XAP ファイル

Egentligen komprimeras den här filen och kompileras som en ZIP-fil, så tillägget är ". blixtlås".

拡張子を .zip に変更

Det har ändrats till en ZIP-fil.

ZIP ファイル

När du öppnar filen innehåller den en manifestfil och en DLL-fil. Denna DLL är den kompilerade versionen av programmet som körs som ett program.

Förresten, DLL-filen placeras också i Release-mappen när den är byggd, så den här gången kommer vi att fördunkla den här filen.

ZIP ファイルの中身

På Visual Studio-menyn väljer du Verktyg och sedan Förebyggande dotfuscator och analys.

När du startar för första gången visas dialogrutan "Licensavtal", så läs innehållet noggrant, markera "Ja, jag accepterar licensavtalet." och klicka på "OK" -knappen.

PreEmptive Dotfuscator And Analytics を選択

Preemptive Dotfuscator And Analytics CE startar.

PreEmptive Dotfuscator And Analytics CE

Välj "Ingångar" från trädet till vänster och klicka på knappen "Lägg till inmatning".

入力の追加

Välj DLL-filen som du genererade under bygget.

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

Välj DLL-filen du lade till och avmarkera Biblioteksläge > XAML-konvertering.

Om "Biblioteksläge" är markerat kommer klasser och metoder som definieras offentligt inte att fördunklas.

Om "XAML-konvertering" är markerat kommer klasser som definieras i XAML att fördunklas, men beroende på hur du skapar det kommer det att orsaka ett startfel, så om det inträffar, avmarkera det.

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

I grund och botten är alla klasser, metoder, egenskaper och variabelnamn fördunklade, men om du inte vill fördunkla ett specifikt namnområde eller en klass på grund av serialisering väljer du "Byt namn" från trädet till vänster, väljer fliken "Exkludera" och kontrollerar målnamnrymden eller klassen.

難読化の除外

Under Inbyggda regler kontrollerar du att Fält för Silverlight och WPF UserControls är markerat. Om du kontrollerar detta kommer fältet UserControls att fördunklas och köras framgångsrikt. Du kan avmarkera det om det verkar fungera korrekt även efter fördunkling.

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

När du är klar klickar du på knappen "Bygg projekt" i verktygsfältet.

プロジェクトのビルド

Om det finns ändringar i projektet visas dialogrutan för att spara bekräftelse för projektet, så klicka på "Ja" för att spara.

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

Projektet heter ". xml"-fil. Obfuskerade filer sparas på samma plats.

プロジェクト保存

Vänta tills bygget är klart när det startar. Observera att ju större programmet är, desto längre tid tar det att bygga. När det ser ut som figuren är bygget klart.

Meddelandefältet visar förloppet för bygget och ett kort resultat, till exempel hur fördunklad den var.

ビルド完了

Om du väljer Resultat från trädet till vänster kan du se information om hur klass- och metodnamnen har ändrats.

Under klass- och metodnamnen kommer det att finnas en Dotfuscator-ikon och namn som "a" och "b", vilket kommer att vara det fördunklade namnet. Genom att ändra klassnamnet eller metodnamnet till ett meningslöst namn på detta sätt, även om det demonteras, kan det göra innehållet i källkoden svårt att läsa.

難読化結果

Den fördunklade filen skapas i en mapp som heter "Dotfuscated" i mappen för den .xml filen som sparats i Save Project. Förutom den fördunklade filen har en "Map.xml" -fil skapats, men detta är resultatet av mörkläggning och används inte.

難読化したファイル

Om du demonterar den fördunklade filen kan du se att vissa klass- och metodnamn har ändrats till "a" eller "b".

Den här gången fördunklades standardprojektet som skapades nästan som det var, så jag tror att det finns en bild av att det inte är så fördunklat, men jag tror att effekten av mörkläggning blir tydligare eftersom antalet klasser etc. ökar när projektet växer.

Som en parentes, . NET Framework-bibliotek och kan inte byta namn eftersom de är sammansättningar som redan är installerade på Windows, till exempel.

難読化したコードの解析

Silverlight använder inte DLL-filer som de är, så de paketeras som XAP-filer. Som nämnts i början är en XAP-fil bara en ändring i förlängningen av ZIP-filen, så den skapar en ZIP-fil genom att samla in filerna i XAP-filen och de fördunklade DLL-filerna.

Skapa en ZIP-fil kan göras med hjälp av vanliga OS-funktioner.

ファイルを ZIP 化

En ZIP-fil skapas.

ZIP ファイル

Tillägget ändras till ". xap" och om filnamnet är annorlunda ändrar du det till det ursprungliga paketfilnamnet.

Placera XAP-filen på en distributionsplats.

XAP ファイルに変更

Kontrollera operationen och se om den fungerar korrekt.

Om det inte startar, kontrollera tills det fungerar normalt genom att minska den fördunklade koden. Observera att Silverlight ofta fastnar i XAML-relaterade ärenden.

動作確認

Även om instruktionerna inte finns med här, om du vill signera ett program, bygg det i ett fördröjningssignerat tillstånd, fördunkla sammansättningen och signera sedan om. Även om du döljer det medan det är signerat, kommer signaturkoden som bifogas vid byggtiden och signaturkoden efter mörkläggning inte att matcha, så du kommer inte att kunna starta den.

I den här artikeln har jag listat stegen för den fria versionen, men om du använder den betalda versionen kan du utföra mer komplex mörkläggning och förhindra demontering själv. Fördunkling har emellertid potential att orsaka olika negativa effekter, så när fördunkling görs är det nödvändigt att överväga om det kommer att fungera ordentligt från början av designen.