.NET混淆器 Dotfuscator使用教程二:保護你的應用之集成到Visual Studio項目中

Dotfuscator是一款.NET混淆器和壓縮器,防止你的應用程序被反編譯。html

保護你的應用

保護整個應用程序就像在應用程序的Visual Studio項目文件中添加幾行代碼同樣簡單(例如,MyExecutable.csproj)。集成後,Dotfuscator Professional將自動保護您的全部程序集 - 不管是來自應用程序的項目仍是解決方案中的其餘項目。 每次的版本發佈也會自動保護。bash

本次《Dotfuscator教程:保護你的應用》包括如下內容:app

  • 集成到Visual Studio項目中
  • 檢查受保護的程序集
  • 存檔報告文件
  • 增強保護
  • 替代方法

本篇文章主要介紹如何將Dotfuscator集成到Visual Studio項目中。ide

集成到Visual Studio項目中

要將Dotfuscator集成到項目中,請在Visual Studio中編輯項目文件(.csproj)並進行以下所示的更改。ui

.NET Frameworkthis

要保護.NET Framework項目,請複製下面顯示的新XML元素(<PropertyGroup>等),並在結束標籤</Project>以前將它們粘貼到項目文件中。請注意,元素的順序很重要。spa

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">

  <!-- ...existing tags... -->

  <!-- Set build properties for Dotfuscator -->
  <PropertyGroup>

    <!-- Generate a default Dotfuscator config file (DotfuscatorConfig.xml) -->
    <!-- TODO: Set this to false after the file is generated by the first local build -->
    <DotfuscatorGenerateConfigFileIfMissing>true</DotfuscatorGenerateConfigFileIfMissing>

    <!-- Enable Dotfuscator for Release builds -->
    <DotfuscatorEnabled Condition="'$(Configuration)' == 'Release'">true</DotfuscatorEnabled>

  </PropertyGroup>

  <!-- Import the Dotfuscator MSBuild targets last -->
  <Import Project="$(MSBuildExtensionsPath)\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Common.targets"/>

</Project>複製代碼

.NET Core or .NET Standard版本控制

要保護.NET Core或.NET Standard項目,請首先從項目的根<Project>標記中刪除Sdk屬性。而後,將下面顯示的新元素複製到項目文件中的相應位置。code

<Project>
<!-- ORIGINALLY WAS: <Project Sdk="Microsoft.NET.Sdk">
     The Sdk attribute has been replaced with explicit <Import> tags
     to ensure Dotfuscator's targets are imported after "Sdk.targets" --> <!-- Import SDK properties --> <!-- (before any existing tags) --> <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" /> <!-- ...existing tags... --> <!-- Import SDK targets --> <!-- (after any existing tags but before Dotfuscator targets) --> <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" /> <!-- Set build properties for Dotfuscator --> <PropertyGroup> <!-- Generate a default Dotfuscator config file (DotfuscatorConfig.xml) --> <!-- TODO: Set this to false after the file is generated by the first local build --> <DotfuscatorGenerateConfigFileIfMissing>true</DotfuscatorGenerateConfigFileIfMissing> <!-- Enable Dotfuscator for Release builds --> <DotfuscatorEnabled Condition="'$(Configuration)' == 'Release'">true</DotfuscatorEnabled> </PropertyGroup> <!-- Import the Dotfuscator MSBuild targets last --> <Import Project="$(MSBuildExtensionsPath)\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Common.targets"/> </Project>複製代碼

Xamarincdn

Dotfuscator與Xamarin應用程序集成是Xamarin構建過程的一部分,可以使用與其餘.NET平臺相同的方法。可是,在開始以前,你應該瞭解Xamarin集成的一些特別的方面。

要保護你的Xamarin應用程序,你必須將Dotfuscator集成到每一個輸出項目(Android,iOS和UWP)中。Dotfuscator將保護項目輸出目錄中源自項目解決方案的全部程序集。

爲了保護Xamarin項目(咱們建議從Android開始),請在結束標記</Project>以前將下面顯示的新元素複製到項目文件中的相應位置。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- ...existing tags... -->

  <!-- Set build properties for Dotfuscator -->
  <PropertyGroup>

    <!-- Generate a default Dotfuscator config file (DotfuscatorConfig.xml) -->
    <!-- TODO: Set this to false after the file is generated by the first local build -->
    <DotfuscatorGenerateConfigFileIfMissing>true</DotfuscatorGenerateConfigFileIfMissing>

    <!-- Enable Dotfuscator for Release -->
    <DotfuscatorEnabled Condition="'$(Configuration)' == 'Release'">true</DotfuscatorEnabled>

    <!-- Enable Dotfuscator for Ad-Hoc (only needed for iOS) -->
    <DotfuscatorEnabled Condition="'$(Configuration)' == 'Ad-Hoc'">true</DotfuscatorEnabled>

    <!-- Enable Dotfuscator for AppStore (only needed for iOS) -->
    <DotfuscatorEnabled Condition="'$(Configuration)' == 'AppStore'">true</DotfuscatorEnabled>

    <!-- Only needed when using Tamper Checks for Android -->
    <!-- TODO: If using Tamper Checks for Android, set this to the SHA-1 fingerprint of the certificate used to sign the app -->
    <DotfuscatorAndroidSigningCertFingerprint></DotfuscatorAndroidSigningCertFingerprint>

  </PropertyGroup>

  <!-- Import the Dotfuscator MSBuild targets last -->
  <Import Project="$(MSBuildExtensionsPath)\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Common.targets"/>

</Project>複製代碼

Unity

將Dotfuscator集成到Unity項目中須要特殊配置,本次教程不包含這些配置。後續會整理的。

創建項目

在Visual Studio中,將更改保存到項目文件,關閉選項卡,而後從新加載項目。要得到受保護的應用程序,請按照正常狀況在發佈配置中構建項目。

getting started-build-initial

做爲初始構建的一部分,Dotfuscator將生成一個配置文件,DotfuscatorConfig.xml,它具備默認保護設置。構建將發出警告(見上面的屏幕截圖),在第一次構建中你能夠忽略。將生成的文件加入版本控制。

而後,構建將調用Dotfuscator來保護項目輸出目錄中的解決方案程序集(.exe.dll文件)(例如,bin\Release)。Dotfuscator還將在新的DotfuscatorReports目錄中生成報告文件;你應該從版本控制中排除此目錄。

一旦構建完成,您的應用程序如今就受Dotfuscator保護了。

注意:有關診斷構建或運行時問題的幫助,請參閱疑難解答

禁用配置文件生成

在第一次構建期間,Dotfuscator生成了一個具備默認保護設置的配置文件DotfuscatorConfig.xml。此功能在設置時頗有用,可是一旦文件存在(並由版本控制跟蹤),你應該禁用此功能,由於它能夠屏蔽某種構建錯誤。

要禁用配置文件生成,請再次編輯項目文件(.csproj)並替換如下行:

<!-- Generate a default Dotfuscator config file (DotfuscatorConfig.xml) -->
    <!-- TODO: Set this to false after this file is generated by the first local build -->
    <DotfuscatorGenerateConfigFileIfMissing>true</DotfuscatorGenerateConfigFileIfMissing>複製代碼

替換爲

<!-- Error if the Dotfuscator config file (DotfuscatorConfig.xml) is missing -->
    <DotfuscatorGenerateConfigFileIfMissing>false</DotfuscatorGenerateConfigFileIfMissing>複製代碼

                                                        【下載Dotfuscator最新試用版
相關文章
相關標籤/搜索