Fördunkla din Silverlight-applikation med Dotfuscator
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.
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.
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.
Egentligen komprimeras den här filen och kompileras som en ZIP-fil, så tillägget är ". blixtlås".
Det har ändrats till en ZIP-fil.
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.
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 CE startar.
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.
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.
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.
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.
En ZIP-fil skapas.
Tillägget ändras till ". xap" och om filnamnet är annorlunda ändrar du det till det ursprungliga paketfilnamnet.
Placera XAP-filen på en distributionsplats.
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.