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.
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 se dříve označovala 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 věnované instalaci.
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:
- Přejmenování identifikátorů, aby zpětná analýza zkompilovaných sestavení byla obtížnější
- Ochrana před manipulacemi pro detekci spouštění pozměněných aplikací a ukončování pozměněných relací nebo reakce na ně
- Ochrana před neoprávněným laděním pro detekci připojení ladicího programu k běžící aplikaci a ukončování laděných relací nebo reakce na ně
- Ochrana před zařízeními s rootem pro detekci, jestli aplikace neběží na androidovém zařízení s rootem, a ukončování těchto zařízení nebo reakce na ně
- Nastavené chování na konci platnosti aplikace, což znamená, že kód zahrnuje „datum konce životnosti“ a relace po konci platnosti se ukončují
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).
- Pokud je dotfuscator Community již nainstalován, zobrazí vyhledávací pole možnost spustit Dotfuscator Community pod nadpisem Nabídky. Podrobnosti najdete na stránce Getting Started (Začínáme) v kompletní uživatelské příručce k nástroji Dotfuscator Community.
- Pokud nástroj Dotfuscator Community ještě není nainstalovaný, místo toho se ve vyhledávacím poli zobrazí instalační preemptive Protection – Dotfuscator pod nadpisem Jednotlivé komponenty . Podrobnosti najdete na stránce věnované instalaci.
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 5
první 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 2022 Dotfuscator Community 6 je součástí sady Visual Studio 2022.
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 |
---|---|---|
Grafické uživatelské rozhraní | 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:
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.
V grafickém uživatelském rozhraní komunity Dotfuscator přejděte do nabídky Nástroje a vyberte Příkazový řádek Dotfuscator.
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.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
.vbproj
nebo.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
aMyProject.iOS.csproj
) samostatně a ne do projektů sdílených knihoven. Aktualizujte všechny projekty aplikací, které aktuálně používají Dotfuscator.
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
- Při aktualizaci projektu pomocí integrace Xamarinu komunity Dotfuscatoru se stará cesta nachází mezi značkami
<DotfuscatorXamarinCliPath>
a značkami</DotfuscatorXamarinCliPath>
.
- Při aktualizaci projektu pomocí integrace Xamarinu komunity Dotfuscatoru se stará cesta nachází mezi značkami
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
- Nová cesta z kroku 3:
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:
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.
Otevřete příslušný konfigurační soubor Dotfuscatoru (Ctrl+O).
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.
Uložte aktualizovaný konfigurační soubor Dotfuscatoru (Ctrl+S).
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:
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.V adresáři umístěném v kroku 1 odstraňte soubory související s integrací Dotfuscator Xamarin.
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.
Extrahujte obsah souboru ZIP do stejného adresáře, jak je uvedeno v kroku 1.
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í:
Odeberte odkaz na sestavení projektu .
PreEmptive.Attributes.dll
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 hlášení používali funkci Zkontrolovat telemetrii, když kontrola zjistí neplatný stav (například při detekci manipulace), můžete ji nahradit vlastním oznámením aplikace, které hlásí incident Aplikace Azure lication Insights nebo jiné vámi zvolené službě.
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í.