Obfuscate applikationer skapade med Dotfuscator

Sidan uppdaterad :
Datum för skapande av sida :

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.

Dotfuscator を使用して作成したアプリケーションを難読化する

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.

Dotfuscator Software Services

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

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 ....

難読化する exe ファイル

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.