Obfuscate applikationer skapade med Dotfuscator
sammanfattning
Eftersom program baserade på .NET Framework skapas på det som kallas ett gemensamt mellanspråk kan de läsas i en form som ligger nära den ursprungliga källkoden med hjälp av demonteringsverktyg och liknande. I det här avsnittet beskrivs hur du döljer Dotfuscator, obfuscator som medföljer Visual Studio, för att dölja klass- och metodnamn till ett format som inte är lätt att läsa.
Vi pratar om det här med Visual Studio 2010, men du kan också använda Dotfuscator 2005 och 2008.
Driftsmiljö
Visual Studio versioner som stöds
- 2005
- 2008
- 2010
Kontrollera Visual Studio version
- 2005
- 2008
- 2010
substans
Om Dotfuscator
Dotfuscator är ett fördunklingsverktyg som gör källkoden svår att läsa när den demonteras i applikationer skrivna med .NET Framework. Dotfuscator levereras med Visual Studio gratis och mot en avgift.
Den kostnadsfria versionen är inte tillgänglig om inte många av dess funktioner är begränsade eller Visual Studio startas, men vem som helst kan använda den så länge de har Visual Studio installerat. Den betalda versionen har många kraftfulla fördunklingsfunktioner som inte finns i gratisversionen, men den erbjuds till ett pris som är svårt för allmänheten att ha råd med.
Dotfuscator har olika funktioner, priser och utgåvor beroende på version, så se följande hemsida för mer information.
Fördunklingsförfarande
Jag nämnde tidigare att applikationer som skapats med .NET Framework kan demontera och enkelt läsa den ursprungliga källkoden, men den faktiska situationen är att om du demonterar exe-filen som visas i figuren till höger kan du nästan reproducera den ursprungliga källkoden som namnrymd, klassnamn, metodnamn etc.
Beskriver stegen för att göra dessa namn förvirrande och fördunklade.
Att skapa ett program i Visual Studio och skapa en exe-fil är exakt samma som det normala sättet att skapa det.
När du har skapat och skapat exe-filen väljer du Verktyg på Visual Studio menyn och väljer sedan Dotfuscator Software Services.
När du börjar för första gången visas dialogrutan "Licensavtal" som visas i figuren till höger, så läs innehållet noggrant, markera "Ja, jag godkänner licensavtalet." och klicka på "OK" -knappen.
Dotfuscator Software Services startar.
Exe (eller dll-filen) som ska döljas behöver inte vara från det för närvarande öppna projektet.
Välj Input Assemblies från trädet till vänster och klicka på Input Assemblies till höger för att klicka på knappen ....
Välj den exe-fil du vill dölja.
Den valda exe-filen läggs till i listan. Om du vill dölja flera filer klickar du på knappen "..." efter den andra raden för att lägga till dem.
När du har valt det exe du vill dölja klickar du på Knappen Bygg projekt i verktygsfältet.
Om det finns några ändringar i projektet visas dialogrutan för bekräftelse av projektbesparing, så klicka på "Ja" för att spara.
Projektet heter ". xml" -filen. Den fördunklade exe-filen sparas också på samma plats, så spara .xml-filen i valfri mapp.
Bygget startar och väntar tills det är klart. Observera att ju större programmet är, desto längre tid tar det att bygga. Om det ser ut som figuren till höger är byggnaden klar.
Meddelandefältet visar enkla resultat, till exempel förloppet för bygget och hur fördunklat det 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 finns en Dotfuscator-ikon och ett namn som "a" eller "b", vilket är det fördunklade namnet. Genom att ändra klassnamnet eller metodnamnet till ett meningslöst namn som detta kan du göra innehållet i källkoden svårt att läsa även om det är demonterat.
Obfuscated exe-filer skapas i mappen .xml filer som sparats i Save Project, kallad "Dotfuscated", och skapas i den. Förutom exe-filen har en "Map .xml" -fil skapats, men detta är resultatet av förvirring och bör inte användas.
Obfuscated ex kan köras och användas som de är. Det finns dock fall där det inte kan startas på grund av ett okänt fel som visas i figuren till höger.
Den här gången skrev jag ett program i WPF, men eftersom XAML-filen i det första fönstret som ska visas anges som en sträng, kommer namnbytet på grund av förvirring att leda till att referensen går förlorad, vilket resulterar i ett fel.
Windows-formulärprogram refererar direkt till klassen From, så att de kan köras utan fel även om de är fördunklade. Men om du anger ett klassnamn, en uppräkningstyp etc. efter namn måste du vara försiktig eftersom det finns en möjlighet att samma fel kommer att inträffa.
Om du inte vill dölja en klass eller något väljer du Byt namn i trädet till vänster om Dotfuscator och väljer Exkludera på den mellersta fliken.
Varje namnområde, klassnamn etc. visas i listan till höger, så kontrollera de objekt du inte vill dölja.
Här vill jag inte ändra klassnamnet på fönstret som ska visas först, så jag markerar "MainWindow".
När du gör bygget kan du se att det inte finns något ändrat namn under klassnamnet i MainWindows. (Appklassen har konverterats till "a")
När du kör den dolda exe-filen kan du se att fönstret visas korrekt.
Om du demonterar den dolda exe-filen kan du se att klassnamnet och metodnamnet har ändrats till "a" eller "b" korrekt.
Men som en aside. NET Framework-bibliotek som klassnamn kan inte byta namn eftersom de är sammansättningar som redan är installerade på Windows och någon annanstans.
Den här gången fördunklade jag standardprojektet som skapats som det är, så jag tror att det finns en bild av att det inte är så fördunklat, men jag tror att effekten av förvirring blir tydlig eftersom antalet klasser etc. ökar när projektet växer.
Även om vi har inkluderat proceduren i gratisversionen den här gången, möjliggör den betalda versionen mer komplex förvirring och förhindrar också demontering av sig själv. Fördunkling har emellertid olika negativa effekter och potential att uppstå, så när fördunkling utförs är det nödvändigt att göra det medan man överväger om det kommer att fungera korrekt från början av designen.