Informazioni su Dotfuscator Community & Visual Studio

PreEmptive Protection - Dotfuscator offre una soluzione di protezione completa per applicazioni .NET, facilmente integrabile in un ciclo di sviluppo software sicuro. Questa soluzione offre funzionalità di protezione avanzata ed eliminazione per le applicazioni progettate per desktop, dispositivi mobili o server e per le applicazioni incorporate, in modo da proteggere segreti commerciali e altri dati di proprietà intellettuale, ridurre gli attacchi di pirateria e i rischi di contraffazione, nonché evitare manomissioni e operazioni di debug non autorizzate. Dotfuscator funziona sugli assembly compilati senza la necessità di una programmazione maggiore o persino dell'accesso al codice sorgente.

PreEmptive Protection - Dotfuscator

Importanza della protezione

La protezione della proprietà intellettuale è importante. Il codice dell'applicazione contiene dettagli di progettazione e implementazione che possono essere considerati proprietà intellettuale. Tuttavia, le applicazioni basate su .NET Framework contengono metadati significativi e codice intermedio di alto livello ed è quindi possibile eseguirne il reverse engineering con facilità tramite uno dei numerosi strumenti automatizzati disponibili gratuitamente. Interrompendo e arrestando il reverse engineering, è possibile impedire la divulgazione di indirizzi IP non autorizzati e dimostrare che il codice contiene segreti commerciali. Dotfuscator può offuscare gli assembly .NET per impedire il reverse engineering, mantenendo invariato il comportamento dell'applicazione originale.

È inoltre importante proteggere l'integrità dell'applicazione. Oltre al reverse engineering, l'applicazione può essere soggetta ad attacchi di pirateria o comunque ad azioni che ne alterano il comportamento in fase di esecuzione o ne modificano i dati. Dotfuscator può consentire all'applicazione di rilevare e gestire usi non autorizzati, incluse eventuali manomissioni, operazioni di debug di terze parti e dispositivi rooted.

Per altre informazioni su come Dotfuscator è integrabile in un ciclo di sviluppo software sicuro, vedere la pagina SDL App Protection (Protezione delle app nel ciclo di sviluppo software) di PreEmptive Solutions.

Informazioni su Dotfuscator Community

Microsoft Visual Studio include una copia gratuita per uso personale di PreEmptive Protection - Dotfuscator Community. Questa versione gratuita era precedentemente nota come Dotfuscator Community Edition o Dotfuscator CE. Per istruzioni su come installare la versione di Dotfuscator Community inclusa in Visual Studio, vedere la pagina Installazione.

Dotfuscator Community offre un'ampia gamma di servizi di protezione avanzata del software per sviluppatori, architetti e tester. Esempi delle funzionalità di offuscamento .NET e di altre funzionalità di protezione delle applicazioni incluse in Dotfuscator Community comprendono:

  • Ridenominazione degli identificatori per rendere più difficile il reverse engineering degli assembly compilati.
  • Anti-manomissione per rilevare l'esecuzione di applicazioni manomesse e terminare o gestire sessioni che hanno subito manomissioni.
  • Anti-debug per rilevare il collegamento di un debugger a un'applicazione in esecuzione e terminare o gestire le sessioni sottoposte a debug.
  • Anti-dispositivi rooted per rilevare se l'applicazione è in uso in un dispositivo Android rooted e terminare o gestire le sessioni in tali dispositivi.
  • Comportamenti di scadenza delle applicazioni che codificano una data di "fine vita" e terminano le sessioni delle applicazioni scadute.

Per informazioni dettagliate su queste funzionalità, incluso il modo in cui possono essere integrate nella strategia di protezione della propria applicazione, vedere la pagina Funzionalità.

Dotfuscator Community offre funzionalità predefinite per la protezione di base, ma altre misure di protezione delle applicazioni sono disponibili per gli utenti registrati di Dotfuscator Community e per gli utenti di PreEmptive Protection - Dotfuscator Professional, la soluzione di offuscamento .NET leader del settore. Per informazioni su come migliorare Dotfuscator, vedere la pagina Aggiornamenti.

Attività iniziali

Per iniziare a usare Dotfuscator Community da Visual Studio, digitare dotfuscator nella casella di ricerca (CTRL+Q).

  • Se Dotfuscator Community è già installato, casella di ricerca mostra l'opzione per avviare Dotfuscator Community sotto l'intestazione Menu . Per informazioni dettagliate, vedere la pagina introduttiva della guida dell'utente completa di Dotfuscator Community.
  • Se Dotfuscator Community non è ancora installato, nella casella di ricerca viene invece visualizzato Install PreEmptive Protection - Dotfuscator sotto l'intestazione Singoli componenti. Per informazioni dettagliate, vedere la pagina Installazione.

È anche possibile ottenere la versione più recente di Dotfuscator Community dalla pagina di download di Dotfuscator nel sito preemptive.com.

Eseguire l'aggiornamento da Dotfuscator Community 5

Informazioni su come eseguire l'aggiornamento a PreEmptive Protection - Dotfuscator Community 6.

A seconda della cronologia di installazione e della versione di Visual Studio, potrebbe essere in esecuzione Dotfuscator Community 5, la versione principale precedente. In tal caso, è consigliabile eseguire l'aggiornamento, perché è importante assicurarsi che al codice vengano fornite le misure di protezione più recenti. Gli aggiornamenti sono disponibili gratuitamente.

Questo articolo illustra come determinare la versione attualmente disponibile, come eseguire l'aggiornamento alla versione 6, se necessario, e quali funzionalità sono state sostituite o rimosse tra le due versioni.

Determinare la versione di Dotfuscator

Se non si è certi della versione di Dotfuscator in esecuzione, è possibile determinare la versione eseguendo una delle opzioni seguenti:

  • Avviare l'interfaccia utente grafica (GUI) di Dotfuscator Community passando al menu Strumenti di Visual Studio e selezionando PreEmptive Protection - Dotfuscator Community.

    Dall'interfaccia utente grafica di Dotfuscator aprire il menu ? e selezionare Informazioni su per visualizzare la schermata Informazioni.

    Questa schermata elenca la versione di Dotfuscator.

  • Se Dotfuscator è integrato nella compilazione con l'interfaccia della riga di comando (ad esempio con le app Xamarin), è anche possibile controllare i log di compilazione per una riga simile all'esempio seguente:

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Potrebbe essere necessario aumentare il livello di dettaglio della compilazione per visualizzare questo testo. Per Visual Studio, vedere Impostazioni dettagliato.

Il primo numero intero della versione, prima del primo punto ., indica la versione principale di Dotfuscator. Se il primo numero intero è 5, è necessario eseguire i passaggi di aggiornamento in questa pagina, in modo da poter sfruttare le funzionalità e gli aggiornamenti di protezione più recenti di Dotfuscator 6.

Istruzioni per l'aggiornamento

Questa sezione include set di istruzioni per l'aggiornamento degli utilizzi tipici di Dotfuscator Community dalla versione 5 alla versione 6.

Installare Dotfuscator 6

Dotfuscator Community viene distribuito come estensione per Visual Studio. Le istruzioni per installare Dotfuscator 6 variano in base alla versione di Visual Studio in uso:

  • Visual Studio 2019 Dotfuscator Community 6 è incluso nelle versioni successive di Visual Studio 2019 (versione 16.10.0 e successive). Aggiornare Visual Studio 2019 alla versione più recente. L'aggiornamento di Visual Studio aggiorna automaticamente qualsiasi installazione di Dotfuscator Community 5 a Dotfuscator Community 6.

    • Se Dotfuscator non è già installato, aggiornare prima Visual Studio e quindi vedere Installazione.

    • Oltre alle versioni con Visual Studio, è sempre possibile ottenere le versioni più recenti di Dotfuscator Community dalla pagina Download di Dotfuscator.

  • Visual Studio 2017 Questa versione di Visual Studio è disponibile solo con Dotfuscator Community 5. Tuttavia, è possibile installare o eseguire l'aggiornamento a Dotfuscator Community 6 passando alla pagina Download di Dotfuscator e selezionando il collegamento di download appropriato.

    Eseguire il file scaricato .vsix e seguire le istruzioni per installare Dotfuscator Community 6 in Visual Studio. Vengono aggiornate anche le installazioni esistenti di Dotfuscator Community 5.

  • Le versioni precedenti di Visual Studio Dotfuscator Community 6 non sono supportate in queste versioni di Visual Studio. È consigliabile eseguire l'aggiornamento a una versione più recente di Visual Studio o eseguire l'aggiornamento da Dotfuscator Community a Dotfuscator Professional.

Se dotfuscator Community 5 è stato registrato in precedenza, la registrazione viene convertita automaticamente la prima volta che si esegue Dotfuscator Community 6.

Aggiornare i percorsi dell'interfaccia della riga di comando

Se in precedenza è stata usata l'interfaccia della riga di comando di Dotfuscator 5 per proteggere l'app, è necessario aggiornare il percorso all'interfaccia della riga di comando in tutti i progetti e compilare script che vi fanno riferimento. Include progetti che usano l'integrazione Xamarin di Dotfuscator Community.

Il motivo per cui un percorso dell'interfaccia della riga di comando di Dotfuscator potrebbe ora non essere valido perché i nomi di alcuni dei file eseguibili installati con Dotfuscator Community sono stati modificati in Dotfuscator 6. Questa modifica rende questi nomi eseguibili uguali in Dotfuscator Community e Dotfuscator Professional.

Eseguibile per... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

Nota

Il percorso dell'interfaccia della riga di comando potrebbe non essere valido anche se si esegue l'aggiornamento tra le versioni principali di Visual Studio o si cambia edizione di Visual Studio, perché l'interfaccia della riga di comando di Dotfuscator viene installata nella directory di installazione di Visual Studio. I sintomi e la soluzione elencati di seguito si applicano anche a questo scenario.

Se la compilazione usa un percorso dell'interfaccia della riga di comando dotfuscator non valido, è possibile che vengano visualizzati errori come uno degli esempi seguenti:

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

Per aggiornare la compilazione in modo da usare il percorso corretto dell'interfaccia della riga di comando:

  1. Avviare l'interfaccia utente grafica della community di Dotfuscator passando al menu Strumenti di Visual Studio e selezionando PreEmptive Protection - Dotfuscator Community.

  2. Nell'interfaccia utente grafica della community di Dotfuscator passare al menu Strumenti e selezionare Prompt dei comandi dotfuscator.

  3. Nel prompt dei comandi visualizzato digitare where dotfuscator.exe. Copiare il primo percorso visualizzato in un documento di testo normale per un riferimento successivo. Questo percorso è il nuovo percorso dell'interfaccia della riga di comando di Dotfuscator Community 6.

  4. Aprire il progetto o la configurazione di compilazione in base alle esigenze del sistema di compilazione.

    • Per i progetti di Visual Studio, aprire il file di progetto (.csproj, .vbprojo .fsproj) come testo normale. Aprire un file di progetto in Visual Studio.

    • Se in precedenza è stata usata l'integrazione Xamarin di Dotfuscator Community per proteggere un'app Xamarin, tenere presente che Dotfuscator è integrato in ogni singolo progetto di app (ad esempio MyProject.Android.csproj e MyProject.iOS.csproj) separatamente e non in progetti di libreria condivisa. Aggiornare tutti i progetti di app attualmente in uso con Dotfuscator.

  5. Individuare eventuali posizioni all'interno del progetto o della configurazione di compilazione in cui viene usato un percorso precedente dell'interfaccia della riga di comando di Dotfuscator Community 5. In genere è un percorso che termina con dotfuscatorCLI.exe.

  6. Sostituire i percorsi precedenti che si trovano nel passaggio 5 con il nuovo percorso annotato nel passaggio 3.

    Se uno dei percorsi precedenti non è un percorso assoluto, è necessario modificare il nuovo percorso in modo appropriato in base al contesto. Nell'esempio seguente la VSInstallDir variabile di ambiente è stata usata nel percorso precedente, quindi il nuovo percorso corrispondente deve eseguire la stessa operazione.

    • Nuovo percorso del passaggio 3: C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Percorso precedente nel file di progetto: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Nuovo percorso nel file di progetto: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Se si usa un sistema di controllo del codice sorgente, ad esempio Git, assicurarsi che le modifiche apportate al passaggio 6 vengano riflesse nel sistema. Distribuire queste modifiche al resto del team, come potrebbe essere appropriato per il sistema e l'organizzazione.

Avviso

Poiché dotfuscator.exe fa riferimento all'interfaccia utente grafica (GUI) in Dotfuscator 5 ma fa riferimento all'interfaccia della riga di comando (CLI) in Dotfuscator 6, prestare attenzione quando si aggiornano gli script di compilazione condivisi tra più computer.

Un computer con Dotfuscator 5 installato che esegue uno script aggiornato per Dotfuscator 6 fa sì che lo script avvii l'interfaccia utente grafica, anziché l'interfaccia della riga di comando desiderata. Ciò può causare l'esito positivo della compilazione nonostante l'applicazione della protezione di Dotfuscator, ovvero i pacchetti di output non saranno protetti.

In altri casi, potrebbe invece causare un errore di compilazione.

Per evitare questi scenari, aggiornare Dotfuscator Community dalla versione 5 alla versione 6 in tutti i computer e compilare script contemporaneamente.

Aggiornare i file di configurazione dotfuscator

Tutti i file di configurazione dotfuscator (ad esempio Dotfuscator.xml) creati prima di Dotfuscator 6 devono essere aggiornati.

Se si tenta di eseguire l'interfaccia della riga di comando di Dotfuscator con un file di configurazione precedente, vengono visualizzati errori come gli esempi seguenti:

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.

Importante

Questo errore viene visualizzato ed è necessario aggiornare il file di configurazione anche se non si usano le funzionalità indicate.

Per aggiornare un file di configurazione:

  1. Avviare l'interfaccia utente grafica (GUI) di Dotfuscator Community passando al menu Strumenti di Visual Studio e selezionando PreEmptive Protection - Dotfuscator Community.

  2. Aprire il file di configurazione Dotfuscator in questione (CTRL+O).

  3. Nella scheda Output di compilazione viene visualizzato il messaggio seguente:

    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. Salvare il file di configurazione dotfuscator aggiornato (CTRL+S).

  5. Se si usa un sistema di controllo del codice sorgente, ad esempio Git, assicurarsi che le modifiche apportate al file di configurazione dotfuscator vengano riflesse nel sistema. Distribuire queste modifiche al resto del team, come potrebbe essere appropriato per il sistema e l'organizzazione.

Aggiornare l'integrazione di Xamarin

Se dotfuscator Community 5 è stato integrato nel progetto Xamarin , uno dei passaggi necessari per scaricare le destinazioni e le attività di MSBuild personalizzate, ad esempio PreEmptive.Dotfuscator.Xamarin.targets. Queste destinazioni e attività sono state aggiornate in Dotfuscator Community 6, quindi è necessario sostituire le versioni precedenti con le nuove versioni.

Per aggiornare i file di integrazione di Xamarin:

  1. Individuare la directory in cui sono stati scaricati inizialmente questi file. L'esempio fornito nelle istruzioni usa una sottodirectory denominata PreEmptive.Dotfuscator.Xamarin, ma è possibile che i file siano stati scaricati in una directory diversa, che potrebbe anche non avere file non correlati a Dotfuscator.

  2. Nella directory che si trova nel passaggio 1 eliminare i file correlati all'integrazione di Dotfuscator Xamarin.

  3. Scaricare il file ZIP collegato alla versione corrente della sezione User Guide seguente: Scaricare il set personalizzato di destinazioni e attività di MSBuild per Dotfuscator.

  4. Estrarre il contenuto del file ZIP nella stessa directory annotata nel passaggio 1.

  5. Se si usa un sistema di controllo del codice sorgente, ad esempio Git, assicurarsi che la rimozione dei file precedenti e l'aggiunta dei nuovi file si riflettano in tale sistema. A seconda del tipo di sistema, queste modifiche possono apparire come file che modificano il contenuto, anziché essere sostituiti. Distribuire queste modifiche al resto del team, come potrebbe essere appropriato per il sistema e l'organizzazione.

Altre sottosezioni in questa pagina si applicano anche ai progetti Xamarin, quindi assicurarsi di esaminare le altre istruzioni di questa pagina.

Aggiornare i riferimenti alle librerie di attributi

Dotfuscator consente di configurare determinate funzionalità tramite attributi .NET nel codice sorgente. Se i progetti usano tali attributi, potrebbe essere necessario aggiornarli per risolvere le modifiche in Dotfuscator 6.

Attributi offuscati

Non sono state apportate modifiche agli attributi di offuscamento. Questi attributi sono definiti nelle librerie di classi di base .NET e Dotfuscator Community 6 continua a rispettarli.

Controlla attributi

La libreria contenente gli attributi check è stata modificata. In Dotfuscator Community 5 è stato distribuito come file insieme a Dotfuscator stesso. A partire da Dotfuscator Community 6, viene invece distribuito come pacchetto NuGet pubblico.

Se si tenta di compilare un progetto di Visual Studio che fa ancora riferimento alla posizione precedente, è possibile che vengano visualizzati errori come gli esempi seguenti:

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

È anche possibile che venga visualizzato questo avviso:

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.

Per aggiornare il progetto in modo da usare la nuova posizione:

  1. Rimuovere il riferimento all'assembly del progetto a PreEmptive.Attributes.dll.

  2. Aggiungere il riferimento PreEmptive.Protection.Checks.Attributes al pacchetto NuGet al progetto. Il pacchetto è disponibile nel feed NuGet predefinito nuget.org.

Sono stati rimossi anche i parametri di ExtendedKey ogni attributo Check. Questi parametri sono stati ignorati in Dotfuscator Community 5, ma se il codice sorgente li ha usati indipendentemente, rimuovere questi utilizzi per consentire la compilazione del progetto.

Attributi di strumentazione

Gli attributi di strumentazione sono stati usati per configurare la funzionalità PreEmptive Analytics in Dotfuscator 5. Tuttavia, PreEmptive Analytics è stato rimosso in Dotfuscator 6; vedere la sottosezione Funzionalità rimossa PreEmptive Analytics. Di conseguenza, anche gli attributi di strumentazione sono stati rimossi.

Se si tenta di compilare un progetto di Visual Studio che usa gli attributi di strumentazione, è possibile che vengano visualizzati gli stessi tipi di errori e avvisi indicati in Controlla attributi, anche se i nomi degli attributi sono diversi, FeatureAttribute ad esempio anziché TamperCheckAttribute.

Se si tenta di eseguire Dotfuscator in assembly già compilati che contengono utilizzi degli attributi di strumentazione, si ottengono errori come negli esempi seguenti:

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

Per risolvere questi problemi, rimuovere tutti gli utilizzi degli attributi di strumentazione dal codice sorgente. È anche necessario rimuovere i riferimenti all'assembly alla libreria che ha definito gli attributi , PreEmptive.Attributes.dll. (Se si usavano anche gli attributi check definiti in questa libreria, sono stati spostati; vedere Controllare gli attributi precedenti.

Funzionalità rimosse

Dotfuscator Community 6 introduce modifiche di rilievo apportate a Dotfuscator Community 5. Se si usa Dotfuscator Community 5, questa sezione descrive come gestire le modifiche che potrebbero richiedere modifiche alla compilazione o influire sull'output di Dotfuscator.

Nel log delle modifiche è disponibile un elenco completo delle modifiche.

PreEmptive Analytics

Dotfuscator 6 non supporta PreEmptive Analytics, incluso Check Telemetry. Tuttavia, i controlli stessi (incluse le notifiche dell'applicazione e le azioni di controllo) sono ancora supportati.

Per usare Dotfuscator 6, aggiornare il file di configurazione per rimuovere le impostazioni di PreEmptive Analytics.

Se si usano attributi in codice per configurare PreEmptive Analytics, rimuoverli dal codice sorgente e ricompilare gli assembly di input prima che Dotfuscator 6 possa proteggere tali assembly.

Se si usa Verifica telemetria per segnalare quando un controllo rileva uno stato non valido,ad esempio quando viene rilevata manomissione, è possibile sostituirlo con una notifica dell'applicazione personalizzata che segnala l'evento imprevisto a app Azure lication Insights o a un altro servizio di propria scelta.

Tipi di applicazione non supportati

I tipi di applicazione seguenti non sono più supportati in Dotfuscator 6:

  • Windows Phone
  • WinRT (app di Windows 8)
  • Silverlight
  • Unity (motore di gioco)

Inoltre, le app piattaforma UWP (Universal Windows Platform) (UWP) sono supportate solo per gli scenari Xamarin.

Per proteggere altri tipi di app UWP, eseguire l'aggiornamento a Dotfuscator Professional e seguire le istruzioni proteggi la tua app .

Input non supportati

Dotfuscator Community non supporta più pacchetti piattaforma UWP (Universal Windows Platform) (UWP) .appx come input. È possibile continuare a proteggere le app Xamarin destinate a UWP con l'integrazione di Xamarin . Per proteggere altri tipi di app UWP, eseguire l'aggiornamento a Dotfuscator Professional e seguire le istruzioni proteggi la tua app .

Inoltre, .xap i pacchetti non possono più essere usati come input perché Silverlight non è più supportato.

Introdurre sostituzioni esplicite dei metodi

L'opzione Ridenominazione per introdurre sostituzioni esplicite dei metodi è stata rimossa da Dotfuscator. Per usare Dotfuscator 6, aggiornare il file di configurazione per rimuovere questa impostazione.

Documentazione completa

Vedere la guida dell'utente completa di Dotfuscator Community nel sito preemptive.com per istruzioni dettagliate sull'utilizzo, incluse quelle per iniziare a usare l'interfaccia utente di Dotfuscator Community.