Dela via


Om Dotfuscator Community & Visual Studio

PreEmptive Protection – Dotfuscator ger omfattande .NET-programskydd som enkelt passar in i din säkra livscykel för programvaruutveckling. Använd den för att härda, skydda och beskära skrivbords-, mobil-, server- och inbäddade program för att skydda företagshemligheter och andra immateriella rättigheter (IP), minska piratkopiering och förfalskning samt skydda mot manipulering och obehörig felsökning. Dotfuscator fungerar på kompilerade sammansättningar utan att behöva mer programmering eller ens åtkomst till källkod.

Förebyggande skydd – Dotfuscator

Varför skydd är viktigt

Det är viktigt att skydda din immateriella egendom (IP). Programmets kod innehåller design- och implementeringsinformation, som kan betraktas som IP. Dock innehåller program som bygger på .NET Framework betydande metadata och mellanliggande kod på hög nivå, vilket gör dem enkla att omvända ingenjör, genom att använda något av de många kostnadsfria, automatiserade verktygen. Genom att störa och stoppa omvänd teknik kan du förhindra obehörigt IP-avslöjande och visa att koden innehåller affärshemligheter. Dotfuscator kan fördunkla dina .NET-sammansättningar för att hindra omvänd teknik, samtidigt som det ursprungliga programbeteendet bibehålls.

Det är också viktigt att skydda integriteten för ditt program. Förutom omvänd teknik kan dåliga aktörer försöka piratkopiera ditt program, ändra programmets beteende vid körning eller manipulera data. Dotfuscator kan förse ditt program med möjligheten att identifiera och svara på obehörig användning, inklusive manipulering, felsökning av tredje part och rotade enheter.

Mer information om hur Dotfuscator passar in i en säker livscykel för programvaruutveckling finns på sidan PreEmptive Solutions SDL App Protection.

Om Dotfuscator Community

Din kopia av Microsoft Visual Studio innehåller en kopia av PreEmptive Protection – Dotfuscator Community, kostnadsfritt för personligt bruk. (Den här kostnadsfria versionen kallades tidigare Dotfuscator Community Edition eller Dotfuscator CE.)

Anvisningar om hur du installerar versionen av Dotfuscator Community som ingår i Visual Studio finns på sidan Installation.

Dotfuscator Community erbjuder en rad programvaruskydd och härdning tjänster för utvecklare, arkitekter och testare. Exempel på .NET Obfuscation och andra Application Protection- funktioner som ingår i Dotfuscator Community är:

  • att byta namn på av identifierare för att göra det svårare att konstruera de kompilerade sammansättningarna.
  • Manipuleringsskydd för att upptäcka körning av manipulerade applikationer och avsluta eller reagera på manipulerade sessioner.
  • för att upptäcka att ett felsökningsprogram är anslutet till ett program som körs och avsluta eller svara på felsökta sessioner.
  • Antirotad enhet för att identifiera om programmet körs på en rotad Android-enhet och avsluta eller svara på sessioner på dessa enheter.
  • Förfallobeteenden för programmet som kodar ett "slutdatum" och avslutar programsessioner som har upphört att gälla.

Mer information om dessa funktioner, inklusive hur de passar in i din programskyddsstrategi, finns på sidan Funktioner.

Dotfuscator Community erbjuder grundläggande skydd direkt. Ännu fler programskyddsåtgärder är tillgängliga för registrerade användare av Dotfuscator Community och för användare av PreEmptive Protection – Dotfuscator Professional, världens ledande .NET Obfuscator. Information om hur du kan förbättra Dotfuscator finns på sidan Uppgraderingar.

Komma igång

Om du vill börja använda Dotfuscator Community från Visual Studio skriver du dotfuscator i Search Box- (Ctrl+Q).

  • Om Dotfuscator Community redan är installerat visar Search Box alternativet att starta Dotfuscator Community under rubriken Menyer. Mer information finns i Komma igång-sidan i den fullständiga användarhandboken för Dotfuscator Community.
  • Om Dotfuscator Community ännu inte har installerats visar Search Box i stället Install PreEmptive Protection – Dotfuscator under rubriken Enskilda komponenter. Mer information finns på installationssidan .

Du kan också hämta senaste versionen av Dotfuscator Community från Dotfuscator Downloads-sidan på preemptive.com.

Uppgradera från Dotfuscator Community 5

Lär dig hur du uppgraderar till PreEmptive Protection – Dotfuscator Community 6.

Beroende på din installationshistorik och version av Visual Studio kan du för närvarande köra Dotfuscator Community 5, den tidigare huvudversionen. I så fall bör du uppgradera eftersom det är viktigt att se till att din kod ges de senaste skyddsmetoderna. Uppgraderingar är tillgängliga utan kostnad.

Den här artikeln beskriver hur du avgör vilken version du har för närvarande, hur du uppgraderar till version 6 vid behov och vilka funktioner som har ersatts eller tagits bort mellan de två versionerna.

Fastställa Dotfuscator-versionen

Om du är osäker på vilken version av Dotfuscator du kör kan du fastställa versionen genom att göra något av följande alternativ:

  • Starta Dotfuscator Community grafiskt användargränssnitt (GUI) genom att gå till Visual Studios Tools-menyn och välja PreEmptive Protection – Dotfuscator Community.

    Öppna Hjälp-menyn från Dotfuscator-gränssnittet och välj Om... för att visa Om-fönstret.

    På den här skärmen visas Dotfuscators version.

  • Om du har Dotfuscator integrerat i bygget med kommandoradsgränssnittetkan du också kontrollera att byggloggarna innehåller en rad som i följande exempel:

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Du kan behöva öka byggets utförlighet för att kunna se den här texten. Information om Visual Studio finns i Detaljeringsinställningar.

Det första heltalet i versionen, före den första punkten ., anger Dotfuscators huvudversion. Om det första heltalet är 5bör du utföra uppgraderingsstegen på den här sidan så att du kan dra nytta av de senaste funktionerna och skyddsuppdateringarna för Dotfuscator 6.

Uppgraderingsinstruktioner

Det här avsnittet innehåller uppsättningar med instruktioner för att uppgradera vanliga användningar av Dotfuscator Community från version 5 till version 6.

Installera Dotfuscator 6

Dotfuscator Community distribueras som ett tillägg för Visual Studio. Instruktionerna för att installera Dotfuscator 6 varierar beroende på vilken version av Visual Studio du har:

  • Visual Studio 2022 Dotfuscator Community 6 ingår i Visual Studio 2022.

  • Visual Studio 2019 Dotfuscator Community 6 ingår i senare versioner av Visual Studio 2019 (version 16.10.0 och senare). Uppdatera Visual Studio 2019 till den senaste versionen. Uppdatering av Visual Studio uppgraderar automatiskt alla Dotfuscator Community 5-installationer till Dotfuscator Community 6.

    • Om du inte redan har Installerat Dotfuscator uppdaterar du Visual Studio först och ser sedan Installation.

    • Förutom versionerna med Visual Studio kan du alltid hämta de senaste versionerna av Dotfuscator Community från sidan Dotfuscator Downloads.

  • Visual Studio 2017 Den här versionen av Visual Studio levereras endast med Dotfuscator Community 5. Du kan dock installera eller uppgradera till Dotfuscator Community 6 genom att gå till sidan Dotfuscator Downloads och välja lämplig nedladdningslänk.

    Kör den nedladdade .vsix-filen och följ anvisningarna för att installera Dotfuscator Community 6 i Visual Studio. Befintliga Installationer av Dotfuscator Community 5 uppgraderas också.

  • Tidigare versioner av Visual Studio Dotfuscator Community 6 stöds inte i dessa versioner av Visual Studio. Vi rekommenderar att du uppgraderar till en nyare version av Visual Studio eller uppgradering från Dotfuscator Community till Dotfuscator Professional.

Om du tidigare registrerat Dotfuscator Community 5 konverteras registreringen automatiskt första gången du kör Dotfuscator Community 6.

Uppdatera sökvägar till CLI

Om du tidigare använde Dotfuscator 5:s kommandoradsgränssnitt (CLI) för att skydda din app måste du uppdatera sökvägen till CLI i alla projekt och skapa skript som refererar till den.

Anledningen till att en sökväg till Dotfuscators CLI nu kan vara ogiltig beror på att namnen på några av de körbara filer som installerats med Dotfuscator Community har ändrats i Dotfuscator 6. Den här ändringen gör dessa körbara namn likadana i Dotfuscator Community och Dotfuscator Professional.

Körbar för... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

Notera

CLI-sökvägen kan också vara ogiltig om du uppgraderar mellan större versioner av Visual Studio eller växlar Visual Studio-utgåvor, eftersom Dotfuscator CLI installeras under Visual Studio-installationskatalogen. De symptom och lösningar som anges nedan gäller även för det här scenariot.

Om din version använder en ogiltig Cli-sökväg för Dotfuscator kan du få fel, till exempel något av följande exempel:

'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.

The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.

Så här uppdaterar du bygget så att det använder rätt CLI-sökväg:

  1. Starta Dotfuscator Community GUI- genom att gå till Visual Studios Verktyg-menyn och välja PreEmptive Protection – Dotfuscator Community.

  2. Gå till menyn Tools och välj Dotfuscator-kommandotolkeni dotfuscator-användargränssnittet.

  3. I kommandotolken som öppnas skriver du where dotfuscator.exe. Kopiera den första sökvägen som visas i ett oformaterat textdokument för senare referens. Den här sökvägen är den nya sökvägen till Dotfuscator Community 6:s CLI.

  4. Öppna projekt- eller byggkonfigurationen som passar för ditt byggsystem.

    • För Visual Studio-projekt öppnar du projektfilen (.csproj, .vbprojeller .fsproj) som oformaterad text. Öppna en projektfil i Visual Studio.
  5. Leta upp platser i projektet eller byggkonfigurationen där en gammal sökväg till Dotfuscator Community 5:s CLI används. Det är vanligtvis en sökväg som slutar i dotfuscatorCLI.exe.

  6. Ersätt de gamla sökvägarna i steg 5 med den nya sökväg som du antecknade i steg 3.

    Om en av de gamla sökvägarna inte är en absolut sökväg bör du justera den nya sökvägen på rätt sätt baserat på kontexten. I exemplet nedan användes miljövariabeln VSInstallDir i den gamla sökvägen, så motsvarande nya sökväg bör göra detsamma.

    • Ny sökväg från steg 3: C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Gammal sökväg i projektfilen: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Ny sökväg i projektfilen: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Om du använder ett källkontrollsystem, till exempel Git, kontrollerar du att ändringarna från steg 6 återspeglas i systemet. Distribuera dessa ändringar till resten av ditt team, vilket kan vara lämpligt för ditt system och din organisation.

Varning

Eftersom dotfuscator.exe refererar till det grafiska användargränssnittet (GUI) i Dotfuscator 5 men refererar till kommandoradsgränssnittet (CLI) i Dotfuscator 6 bör du vara försiktig när du uppdaterar byggskript som delas på flera datorer.

En dator med Dotfuscator 5 installerad som kör ett skript uppdaterat för Dotfuscator 6 gör att skriptet startar det grafiska användargränssnittet i stället för det avsedda kommandoradsgränssnittet. Detta kan leda till att bygget lyckas trots att dotfuscator-skyddet inte tillämpas, vilket innebär att utdatapaketen INTE skyddas.

I andra fall kan det i stället orsaka ett byggfel.

Undvik dessa scenarier genom att uppgradera Dotfuscator Community från version 5 till version 6 på alla dina datorer och skapa skript samtidigt.

Uppgradera Dotfuscator-konfigurationsfiler

Alla Dotfuscator-konfigurationsfiler (till exempel Dotfuscator.xml) som skapades före Dotfuscator 6 måste uppgraderas.

Om du försöker köra Dotfuscator CLI med en gammal konfigurationsfil får du fel som i följande exempel:

Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.

Viktig

Du får det här felet och behöver uppgradera konfigurationsfilen även om du inte använde de funktioner som nämns.

Så här uppgraderar du en konfigurationsfil:

  1. Starta Dotfuscator Community grafiskt användargränssnitt (GUI) genom att gå till Visual Studios Tools-menyn och välja PreEmptive Protection – Dotfuscator Community.

  2. Öppna dotfuscator-konfigurationsfilen i fråga (Ctrl+O).

  3. Följande meddelande visas på fliken Byggutdata:

    PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.

  4. Spara den uppdaterade dotfuscator-konfigurationsfilen (Ctrl+S).

  5. Om du använder ett källkontrollsystem, till exempel Git, kontrollerar du att ändringarna i Dotfuscator-konfigurationsfilen återspeglas i systemet. Distribuera dessa ändringar till resten av ditt team, vilket kan vara lämpligt för ditt system och din organisation.

Uppdatera referenser till attributbibliotek

Med Dotfuscator kan du konfigurera vissa funktioner via .NET-attribut i källkoden. Om dina projekt använde sådana attribut kan du behöva uppdatera dem för att åtgärda ändringar i Dotfuscator 6.

Fördunklingsattribut

Det har inte gjorts några ändringar i -fördunklingsattributen. Dessa attribut definieras i .NET-basklassbiblioteken och Dotfuscator Community 6 fortsätter att respektera dem.

Kontrollera attribut

Biblioteket som innehåller Kontrollera attribut har ändrats. I Dotfuscator Community 5 distribuerades den som en fil tillsammans med Själva Dotfuscator. Från och med Dotfuscator Community 6 distribueras det i stället som ett offentligt NuGet-paket.

Om du försöker skapa ett Visual Studio-projekt som fortfarande refererar till den gamla platsen kan du få fel som i följande exempel:

The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)

Du kan också få den här varningen:

Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

Så här uppdaterar du projektet så att det använder den nya platsen:

  1. Ta bort projektets samlingsreferens till PreEmptive.Attributes.dll.

  2. Lägg till NuGet-paketreferensen PreEmptive.Protection.Checks.Attributes i projektet. Paketet är tillgängligt i NuGet-standardflödet nuget.org.

Varje kontrollattributs ExtendedKey parametrar har också tagits bort. Dessa parametrar ignorerades i Dotfuscator Community 5, men om källkoden använde dem oavsett tar du bort dessa användningar för att ditt projekt ska kompileras.

Instrumentationsattribut

Instrumentationsattribut användes för att konfigurera funktionen PreEmptive Analytics i Dotfuscator 5. PreEmptive Analytics har dock tagits bort i Dotfuscator 6; se avsnittet Borttagen funktion PreEmptive Analytics. Därför har även instrumentationsattributen tagits bort.

Om du försöker skapa ett Visual Studio-projekt som använde instrumentationsattribut kan du få samma typer av fel och varningar som anges i Kontrollera attribut, även om attributnamnen skiljer sig åt (till exempel FeatureAttribute i stället för TamperCheckAttribute).

Om du försöker köra Dotfuscator på redan byggda sammansättningar som innehåller användning av instrumentationsattribut får du fel som i följande exempel:

The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.

Åtgärda dessa problem genom att ta bort alla användningar av instrumentationsattribut från källkoden. Du måste också ta bort sammansättningsreferenserna till biblioteket som definierade attributen, PreEmptive.Attributes.dll. (Om du också använde de kontrollattribut som har definierats i det här biblioteket har de flyttats. Se Kontrollera attribut ovan.)

Borttagna funktioner

Dotfuscator Community 6 introducerar icke-bakåtkompatibla ändringar från Dotfuscator Community 5. Om du har använt Dotfuscator Community 5 beskrivs i det här avsnittet hur du hanterar de ändringar som kan kräva byggändringar eller påverka Dotfuscators utdata.

En fullständig lista över ändringarna finns i ändringsloggen.

Förebyggande analys

Dotfuscator 6 stöder inte förebyggande analys, inklusive Check Telemetry. Men Kontroller sig själva (inklusive Programmeddelande och Kontrollåtgärder) stöds fortfarande.

Om du vill använda Dotfuscator 6 uppgradera konfigurationsfilen för att ta bort inställningarna för förebyggande analys.

Om du använder kodattribut för att konfigurera förebyggande analys ta bort dem från källkoden och återskapa dina indatasammansättningar innan Dotfuscator 6 kan skydda dessa sammansättningar.

Om du använder Check Telemetry för att rapportera när en kontroll detekterar ett ogiltigt tillstånd (till exempel när manipulering identifieras) kan du ersätta den med en anpassad tillämpningsavisering som rapporterar incidenten till Azure Application Insights eller en annan tjänst efter eget val.

Programtyper som inte stöds

Följande programtyper stöds inte längre i Dotfuscator 6:

  • Windows Phone
  • WinRT (Windows 8-appar)
  • Silverlight
  • Unity (spelmotor)
  • Universal Windows Platform (UWP)

Om du vill skydda andra typer av UWP-appar uppgradera till Dotfuscator Professional och följa anvisningarna i Skydda din app.

Indata som inte stöds

Dotfuscator Community stöder inte längre UWP-paket (Universal Windows Platform) .appx som indata. För att skydda UWP-appar uppgradera till Dotfuscator Professional och följa anvisningarna i Skydda din app.

Dessutom kan .xap paket inte längre användas som indata eftersom Silverlight inte längre stöds.

Inför explicita metodåsidossättningar

Alternativet Byt namn för att införa explicita åsidosättningar av metoder har tagits bort från Dotfuscator. Om du vill använda Dotfuscator 6 uppgradera konfigurationsfilen för att ta bort den här inställningen.

Fullständig dokumentation

Se den fullständiga användarhandboken för Dotfuscator Community på preemptive.com för detaljerade användningsinstruktioner, inklusive hur du börjar använda Dotfuscator Community-användargränssnittet.