O nástroji Dotfuscator Community & Visual Studio

Nástroj PreEmptive Protection – Dotfuscator poskytuje komplexní ochranu aplikací .NET, která hladce zapadá do životního cyklu zabezpečeného vývoje softwaru. Umožňuje posílení, ochranu a pročištění desktopových, mobilních, serverových a vložených aplikací, abyste dosáhli lepšího zabezpečení obchodních tajemství a jiného duševního vlastnictví, snížili riziko pirátství a padělání a zvýšili ochranu před manipulací se softwarem a jeho neoprávněným laděním. Dotfuscator pracuje na kompilovaných sestaveních bez nutnosti dalšího programování nebo dokonce přístupu ke zdrojovému kódu.

PreEmptive Protection - Dotfuscator

Proč je tato ochrana důležitá

Je důležité chránit duševní vlastnictví. Návrh a implementace kódu vaší aplikace zahrnuje detaily, které lze považovat za duševní vlastnictví. Aplikace založené na rozhraní .NET Framework ale současně obsahují významný objem metadat a mezikódu na vysoké úrovni, což usnadňuje jejich zpětnou analýzu, a to i pomocí některého z mnoha bezplatných automatizovaných nástrojů. Narušením a zastavením zpětné analýzy můžete zabránit neoprávněnému zpřístupnění IP adres a předvést, že váš kód obsahuje obchodní tajemství. Dotfuscator dokáže sestavení .NET obfuskovat tak, aby znemožnil zpětnou analýzu, ale zachoval původní chování aplikací.

Je také důležité chránit integritu aplikace. Kromě zpětné analýzy se mohou aktéři se zlými úmysly pokusit u vaší aplikace o pirátství, změnu chování za běhu nebo manipulaci s daty. Dotfuscator může do vaší aplikace vložit schopnost detekovat neoprávněná použití a reagovat na ně, a to včetně manipulací, ladění třetími stranami a výskytu zařízení s rootem.

Další informace o tom, jak Dotfuscator zapadá do životního cyklu zabezpečeného vývoje softwaru, najdete na stránce společnosti PreEmptive Solutions o ochraně aplikací v rámci procesu SDL.

O nástroji Dotfuscator Community

Vaše kopie sady Microsoft Visual Studio obsahuje kopii nástroje PreEmptive Protection – Dotfuscator Community, která je zdarma pro osobní použití. (Tato bezplatná verze byla dříve známá jako Dotfuscator Community Edition nebo Dotfuscator CE.) Pokyny k instalaci verze nástroje Dotfuscator Community, která je součástí sady Visual Studio, najdete na stránce Instalace.

Dotfuscator Community nabízí řadu služeb zajišťujících ochranu softwaru a silnější zabezpečení pro vývojáře, architekty a testery. Tady jsou příklady obfuskace .NET a dalších funkcí pro ochranu aplikací, které jsou součástí nástroje Dotfuscator Community:

Podrobnosti o těchto funkcích, včetně toho, jak zapadnou do vaší strategie ochrany aplikací, najdete na stránce věnované různým schopnostem tohoto nástroje.

Nástroj Dotfuscator Community nabízí základní ochranu už v předdefinovaném stavu. Registrovaní uživatelé nástroje Dotfuscator Community a uživatelé verze PreEmptive Protection – Dotfuscator Professional, což je nejlepší obfuskátor .NET na světě, mohou využívat i další možnosti ochrany aplikací. Informace o rozšířených možnostech nástroje Dotfuscator najdete na stránce věnované upgradům.

Začínáme

Pokud chcete Dotfuscator Community ze sady Visual Studio začít používat, napište dotfuscator do vyhledávacího pole (CTRL + Q).

Nejnovější verzi nástroje Dotfuscator Community můžete také získat ze stránky Dotfuscator Downloads na webu preemptive.com.

Upgrade z Dotfuscator Community 5

Zjistěte, jak upgradovat na PreEmptive Protection – Dotfuscator Community 6.

V závislosti na historii instalace a verzi sady Visual Studio možná používáte dotfuscator Community 5, předchozí hlavní verzi. Pokud ano, měli byste upgradovat, protože je důležité zajistit, aby váš kód dostal nejnovější opatření ochrany. Upgrady jsou k dispozici bez poplatků.

Tento článek vysvětluje, jak zjistit, jakou verzi aktuálně máte, jak v případě potřeby upgradovat na verzi 6 a jaké funkce byly nahrazeny nebo odebrány mezi těmito dvěma verzemi.

Určení verze Dotfuscatoru

Pokud si nejste jistí, jakou verzi Dotfuscatoru používáte, můžete ji určit pomocí jedné z následujících možností:

  • Spusťte grafické uživatelské rozhraní (GUI) Dotfuscator Community tak, že přejdete do nabídky Nástroje sady Visual Studio a vyberete PreEmptive Protection – Dotfuscator Community.

    V grafickém uživatelském rozhraní Dotfuscator otevřete nabídku Nápověda a výběrem možnosti O aplikaci zobrazte obrazovku O aplikaci.

    Tato obrazovka uvádí verzi dotfuscatoru.

  • Pokud máte Dotfuscator integrovaný do sestavení s rozhraním příkazového řádku (například s aplikacemi Xamarin), můžete také zkontrolovat protokoly sestavení pro řádek podobný následujícímu příkladu:

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Abyste mohli tento text zobrazit, budete možná muset zvýšit úroveň podrobností sestavení. Informace o sadě Visual Studio najdete v tématu Nastavení podrobností.

První celé číslo verze před první tečkou .označuje hlavní verzi Dotfuscatoru. Pokud je 5první celé číslo , měli byste provést kroky upgradu na této stránce, abyste mohli využívat nejnovější funkce a aktualizace ochrany Dotfuscator 6.

Pokyny k upgradu

Tato část obsahuje sady pokynů pro upgrade typických použití nástroje Dotfuscator Community z verze 5 na verzi 6.

Instalace nástroje Dotfuscator 6

Dotfuscator Community se distribuuje jako rozšíření pro Visual Studio. Pokyny k instalaci nástroje Dotfuscator 6 se liší podle toho, jakou verzi sady Visual Studio máte:

  • Visual Studio 2019 Dotfuscator Community 6 je součástí novějších verzí sady Visual Studio 2019 (verze 16.10.0 a novější). Aktualizujte Visual Studio 2019 na nejnovější verzi. Aktualizace sady Visual Studio automaticky upgraduje všechny instalace nástroje Dotfuscator Community 5 na Dotfuscator Community 6.

    • Pokud ještě nemáte nainstalovaný Nástroj Dotfuscator, nejprve aktualizujte Sadu Visual Studio a přečtěte si téma Instalace.

    • Kromě vydaných verzí v sadě Visual Studio můžete vždy získat nejnovější verze dotfuscator Community ze stránky Soubory ke stažení nástroje Dotfuscator.

  • Visual Studio 2017 Tato verze sady Visual Studio byla dodávána pouze se sadou Dotfuscator Community 5. Můžete ale nainstalovat nebo upgradovat na Dotfuscator Community 6 tak, že přejdete na stránku Soubory ke stažení dotfuscatoru a vyberete příslušný odkaz ke stažení.

    Spusťte stažený .vsix soubor a podle pokynů nainstalujte Dotfuscator Community 6 do sady Visual Studio. Stávající instalace Dotfuscator Community 5 se také upgradují.

  • Starší verze sady Visual Studio Dotfuscator Community 6 nejsou v těchto verzích sady Visual Studio podporovány. Doporučujeme upgradovat na novější verzi sady Visual Studio nebo upgradovat z nástroje Dotfuscator Community na Dotfuscator Professional.

Pokud jste dříve zaregistrovali Dotfuscator Community 5, tato registrace se automaticky převede při prvním spuštění nástroje Dotfuscator Community 6.

Aktualizace cest k rozhraní příkazového řádku

Pokud jste dříve k ochraně aplikace použili rozhraní příkazového řádku (CLI) nástroje Dotfuscator 5, musíte aktualizovat cestu k rozhraní příkazového řádku v libovolném projektu a vytvořit skripty, které na ni odkazují. Zahrnuje projekty, které používají integraci Xamarinu komunity Dotfuscatoru.

Důvodem, proč může být cesta k rozhraní příkazového řádku Dotfuscatoru teď neplatná, je to, že názvy některých spustitelných souborů nainstalovaných v Nástroji Dotfuscator Community se v Nástroji Dotfuscator 6 změnily. Díky této změně budou tyto spustitelné soubory stejné v rámci dotfuscator Community a Dotfuscator Professional.

Spustitelný soubor pro... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
Rozhraní příkazového řádku dotfuscatorCLI.exe dotfuscator.exe

Poznámka:

Cesta rozhraní příkazového řádku může být také neplatná, pokud upgradujete mezi hlavními verzemi sady Visual Studio nebo přepnete edice sady Visual Studio, protože rozhraní příkazového řádku Dotfuscator je nainstalované v instalačním adresáři sady Visual Studio. Příznaky a řešení uvedené níže platí také pro tento scénář.

Pokud vaše sestavení používá neplatnou cestu k rozhraní příkazového řádku Dotfuscator, můžou se zobrazit chyby, například jeden z následujících příkladů:

'"[...]\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.

When the DotfuscatorXamarinEnabled property is 'true', the Dotfuscator command line interface specified by DotfuscatorXamarinCliPath ('[...]\DotfuscatorCE\dotfuscatorCLI.exe') must exist.

Aktualizace sestavení tak, aby používala správnou cestu rozhraní příkazového řádku:

  1. Spusťte grafické uživatelské rozhraní Komunity Dotfuscatoru tak, že přejdete do nabídky Nástroje sady Visual Studio a vyberete PreEmptive Protection – Dotfuscator Community.

  2. V grafickém uživatelském rozhraní komunity Dotfuscator přejděte do nabídky Nástroje a vyberte Příkazový řádek Dotfuscator.

  3. Do příkazového řádku, který se otevře, zadejte where dotfuscator.exe. Zkopírujte první cestu zobrazenou do dokumentu ve formátu prostého textu pro pozdější referenci. Tato cesta představuje novou cestu k rozhraní příkazového řádku komunity Dotfuscator Community 6.

  4. Otevřete projekt nebo konfiguraci sestavení podle potřeby pro váš systém sestavení.

    • V případě projektů sady Visual Studio otevřete soubor projektu (.csproj.vbprojnebo .fsproj) jako prostý text. Otevřete soubor projektu v sadě Visual Studio.

    • Pokud jste dříve použili integraci Xamarinu komunity Dotfuscator Community k ochraně aplikace Xamarin , vzpomeňte si, že Dotfuscator je integrovaný do jednotlivých projektů aplikací (například MyProject.Android.csproj a MyProject.iOS.csproj) samostatně a ne do projektů sdílených knihoven. Aktualizujte všechny projekty aplikací, které aktuálně používají Dotfuscator.

  5. Vyhledejte všechna místa v rámci projektu nebo konfigurace sestavení, kde se používá stará cesta k rozhraní příkazového řádku Dotfuscator Community 5. Obvykle je to cesta končící .dotfuscatorCLI.exe

  6. Nahraďte staré cesty umístěné v kroku 5 novou cestou, kterou jste si poznamenali v kroku 3.

    Pokud jedna ze starých cest není absolutní cestou, měli byste novou cestu odpovídajícím způsobem upravit na základě kontextu. V následujícím příkladu VSInstallDir byla proměnná prostředí použita ve staré cestě, takže odpovídající nová cesta by měla provést totéž.

    • Nová cesta z kroku 3: C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Stará cesta v souboru projektu: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Nová cesta v souboru projektu: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Pokud používáte systém správy zdrojového kódu, například Git, ujistěte se, že se změny z kroku 6 projeví v tomto systému. Tyto změny distribuujte do zbytku týmu, jak může být vhodné pro váš systém a organizaci.

Upozorňující

Vzhledem k tomu dotfuscator.exe , že odkazuje na grafické uživatelské rozhraní (GUI) v Nástroji Dotfuscator 5, ale odkazuje na rozhraní příkazového řádku (CLI) v Dotfuscatoru 6, buďte opatrní při aktualizaci skriptů sestavení sdílených napříč více počítači.

Počítač s nainstalovaným nástrojem Dotfuscator 5, který spouští skript aktualizovaný pro Dotfuscator 6, způsobí, že skript spustí grafické uživatelské rozhraní místo zamýšleného rozhraní příkazového řádku. To může způsobit úspěšné sestavení bez ohledu na použití ochrany Dotfuscatoru, což znamená, že výstupní balíčky nebudou chráněny.

V jiných případech může místo toho způsobit selhání sestavení.

Abyste se těmto scénářům vyhnuli, upgradujte dotfuscator Community z verze 5 na verzi 6 na všech vašich počítačích a skripty sestavení současně.

Upgrade konfiguračních souborů Dotfuscator

Všechny konfigurační soubory Nástroje Dotfuscator (například Dotfuscator.xml) vytvořené před dotfuscatorem 6 je potřeba upgradovat.

Pokud se pokusíte spustit rozhraní příkazového řádku Dotfuscator se starým konfiguračním souborem, zobrazí se chyby jako v následujících příkladech:

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.

Důležité

Zobrazí se vám tato chyba a potřebujete upgradovat konfigurační soubor, i když jste nepoužávali uvedené funkce.

Postup upgradu konfiguračního souboru:

  1. Spusťte grafické uživatelské rozhraní (GUI) Dotfuscator Community tak, že přejdete do nabídky Nástroje sady Visual Studio a vyberete PreEmptive Protection – Dotfuscator Community.

  2. Otevřete příslušný konfigurační soubor Dotfuscatoru (Ctrl+O).

  3. Na kartě Výstup sestavení se zobrazí následující zpráva:

    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. Uložte aktualizovaný konfigurační soubor Dotfuscatoru (Ctrl+S).

  5. Pokud používáte systém správy zdrojového kódu, například Git, ujistěte se, že se změny konfiguračního souboru Dotfuscatoru projeví v tomto systému. Tyto změny distribuujte do zbytku týmu, jak může být vhodné pro váš systém a organizaci.

Aktualizace integrace Xamarinu

Pokud jste integrli Dotfuscator Community 5 do projektu Xamarin , jeden z kroků potřebných ke stažení vlastních cílů a úkolů nástroje MSBuild, například PreEmptive.Dotfuscator.Xamarin.targets. Tyto cíle a úkoly byly aktualizovány v nástroji Dotfuscator Community 6, takže je nutné nahradit staré verze novými verzemi.

Aktualizace integračních souborů Xamarinu:

  1. Vyhledejte adresář, do kterého jste tyto soubory původně stáhli. Příklad uvedený v pokynech používá podadresář s názvem PreEmptive.Dotfuscator.Xamarin, ale možná jste stáhli soubory do jiného adresáře, který může nebo nemusí obsahovat také soubory nesouvisející s Dotfuscator.

  2. V adresáři umístěném v kroku 1 odstraňte soubory související s integrací Dotfuscator Xamarin.

  3. Stáhněte soubor ZIP propojený v aktuální verzi následující uživatelské příručky: Stáhněte si vlastní sadu cílů a úkolů nástroje MSBuild pro Dotfuscator.

  4. Extrahujte obsah souboru ZIP do stejného adresáře, jak je uvedeno v kroku 1.

  5. Pokud používáte systém správy zdrojového kódu, například Git, ujistěte se, že se v tomto systému projeví odebrání starých souborů a přidání nových souborů. V závislosti na typu systému se tyto změny můžou zobrazovat jako soubory, které mění obsah, a nemusí se nahrazovat. Tyto změny distribuujte do zbytku týmu, jak může být vhodné pro váš systém a organizaci.

Další pododdíly na této stránce platí také pro projekty Xamarin, proto si nezapomeňte projít zbývající pokyny této stránky.

Aktualizace odkazů na knihovny atributů

Dotfuscator umožňuje konfigurovat určité funkce prostřednictvím atributů .NET ve zdrojovém kódu. Pokud vaše projekty používaly tyto atributy, budete je možná muset aktualizovat, aby se vyřešily změny v nástroji Dotfuscator 6.

Obfuskace atributů

V atributech obfuskace nedošlo k žádným změnám. Tyto atributy jsou definovány v knihovnách základních tříd .NET a Dotfuscator Community 6 je nadále respektovat.

Kontrola atributů

Knihovna obsahující kontrolní atributy se změnila. V Dotfuscator Community 5 se distribuoval jako soubor společně se samotným Dotfuscatorem. Počínaje dotfuscator Community 6 se distribuuje jako veřejný balíček NuGet.

Pokud se pokusíte vytvořit projekt sady Visual Studio, který stále odkazuje na staré umístění, můžou se zobrazit chyby jako v následujících příkladech:

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?)

Může se zobrazit také toto upozornění:

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.

Pokud chcete projekt aktualizovat tak, aby používal nové umístění:

  1. Odeberte odkaz na sestavení projektu .PreEmptive.Attributes.dll

  2. Přidejte odkaz PreEmptive.Protection.Checks.Attributes na balíček NuGet do projektu. Balíček je k dispozici ve výchozím informačním kanálu NuGet nuget.org.

Také byly odebrány parametry jednotlivých kontrolních ExtendedKey atributů. Tyto parametry byly ignorovány v Nástroji Dotfuscator Community 5, ale pokud je zdrojový kód použil bez ohledu na to, odeberte tato použití, aby se váš projekt zkompiloval.

Atributy instrumentace

Atributy instrumentace se použily ke konfiguraci funkce PreEmptive Analytics v Nástroji Dotfuscator 5. V nástroji Dotfuscator 6 se však odebrala preEmptive Analytics; viz dílčí část Odebraná funkce PreEmptive Analytics. V důsledku toho byly také odebrány atributy instrumentace.

Pokud se pokusíte vytvořit projekt sady Visual Studio, který používal atributy instrumentace, může se zobrazit stejné druhy chyb a upozornění, jak je uvedeno v části Kontrolní atributy, i když se názvy atributů liší (například FeatureAttribute místo TamperCheckAttribute).

Pokud se pokusíte spustit Dotfuscator na již sestavených sestaveních, která obsahují použití atributů instrumentace, zobrazí se chyby, jako jsou následující příklady:

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

Pokud chcete tyto problémy vyřešit, odeberte ze zdrojového kódu všechny použití atributů instrumentace. Je také nutné odebrat odkazy sestavení na knihovnu, která definovala atributy, PreEmptive.Attributes.dll. (Pokud jste také používali kontrolní atributy, které byly definovány v této knihovně, přesunuly se; viz Zkontrolujte výše uvedené atributy .)

Odebrané funkce

Dotfuscator Community 6 zavádí zásadní změny ze společenství Dotfuscator Community 5. Pokud jste používali Dotfuscator Community 5, tato část popisuje, jak řešit změny, které můžou vyžadovat úpravy sestavení nebo ovlivnit výstup Dotfuscatoru.

Úplný seznam změn je k dispozici v protokolu změn.

PreEmptive Analytics

Dotfuscator 6 nepodporuje PreEmptive Analytics, včetně kontroly telemetrie. Samotné kontroly (včetně oznámení aplikací a akcí kontroly) se ale stále podporují.

Pokud chcete použít Dotfuscator 6, upgradujte konfigurační soubor, abyste odebrali nastavení PreEmptive Analytics.

Pokud jste ke konfiguraci PreEmptive Analytics používali atributy v kódu, odeberte je ze zdrojového kódu a znovu sestavte vstupní sestavení před tím, než bude dotfuscator 6 tato sestavení chránit.

Pokud jste k nahlášení sestavy používali funkci Zkontrolovat telemetrii, když kontrola zjistí neplatný stav (například při zjištění manipulace), můžete ji nahradit vlastním oznámením aplikace, které hlásí incident Aplikace Azure Přehledy nebo jiné službě podle vašeho výběru.

Nepodporované typy aplikací

Dotfuscator 6 už nejsou podporovány následující typy aplikací:

  • Windows Phone
  • WinRT (aplikace pro Windows 8)
  • Silverlight
  • Unity (herní stroj)

Aplikace Univerzální platforma Windows (UPW) se navíc podporují jenom pro scénáře Xamarinu.

Pokud chcete chránit jiné druhy aplikací pro UPW, upgradujte na Dotfuscator Professional a postupujte podle pokynů k ochraně vaší aplikace .

Nepodporované vstupy

Dotfuscator Community už nepodporuje balíčky Univerzální platforma Windows (UPW) .appx jako vstupy. Pomocí integrace Xamarinu můžete i nadále chránit aplikace Xamarin, které cílí na UPW. Pokud chcete chránit jiné druhy aplikací pro UPW, upgradujte na Dotfuscator Professional a postupujte podle pokynů k ochraně vaší aplikace .

Balíčky se navíc už nedají používat jako vstupy, .xap protože Silverlight se už nepodporuje.

Zavedení explicitních přepsání metod

Možnost přejmenování pro zavedení explicitních přepsání metod byla z Dotfuscatoru odebrána. Pokud chcete použít Dotfuscator 6, upgradujte konfigurační soubor, abyste toto nastavení odebrali.

Kompletní dokumentace

Podrobné pokyny k použití najdete v kompletní uživatelské příručce k nástroji Dotfuscator Community na webu preemptive.com. Zahrnuje i informace o tom, jak začít používat jeho uživatelské rozhraní.