Condividi tramite


Informazioni su Dotfuscator Community & Visual Studio

PreEmptive Protection - Dotfuscator offre una protezione completa delle applicazioni .NET che si adatta facilmente al ciclo di vita dello sviluppo di software sicuro. Usalo per indurire, proteggere e potare desktop, dispositivi mobili, server e applicazioni incorporate per proteggere i segreti commerciali e altre proprietà intellettuali (IP), ridurre la pirateria e la contraffazione e proteggere da manomissioni e debug non autorizzato. Dotfuscator funziona sugli assembly compilati senza la necessità di una programmazione maggiore o persino dell'accesso al codice sorgente.

Protezione PreEmptive - Dotfuscator

Perché la protezione è importante

È importante proteggere la proprietà intellettuale (IP). Il codice dell'applicazione contiene dettagli di progettazione e implementazione, che possono essere considerati IP. Tuttavia, le applicazioni basate su .NET Framework contengono metadati significativi e codice intermedio di alto livello, semplificando il reverse engineer, usando solo uno dei numerosi strumenti automatizzati gratuiti. 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 ostacolare l'reverse engineering, mantenendo al contempo il comportamento originale dell'applicazione.

È anche importante proteggere l'integrità dell'applicazione. Oltre al reverse engineering, gli attori malintenzionati potrebbero tentare di pirare l'applicazione, modificare il comportamento dell'applicazione in fase di esecuzione o modificare i dati. Dotfuscator può dotare l'applicazione della capacità di rilevare e rispondere ad usi non autorizzati, incluse manomissioni, debug di terze parti e dispositivi con root attivo.

Per altre informazioni sull'adattamento di Dotfuscator a un ciclo di vita di sviluppo software sicuro, vedere la pagina SDL App Protection di PreEmptive Solutions.

Informazioni su Dotfuscator Community

La tua copia di Microsoft Visual Studio include una copia di PreEmptive Protection - Dotfuscator Community, gratuita per uso personale. 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 una gamma di protezione software e protezione avanzata servizi per sviluppatori, architetti e tester. Esempi di di offuscamento di .NET e di altre funzionalità Application Protection incluse nella community di Dotfuscator sono:

  • ridenominazione degli identificatori per rendere più difficile la reverse engineering degli assembly compilati.
  • antimanomissione per rilevare l'esecuzione di applicazioni manomesse e terminare o rispondere a sessioni manomesse.
  • anti-debug per rilevare il collegamento di un debugger a un'applicazione in esecuzione e terminare o rispondere alle sessioni in debug.
  • dispositivo anti-root per rilevare se l'applicazione è in esecuzione su un dispositivo Android con root e terminare o gestire le sessioni su questi dispositivi.
  • i comportamenti di scadenza dell'applicazione che codificano una data di fine vita e terminano le sessioni dell'applicazione scadute.

Per informazioni dettagliate su queste funzionalità, inclusa la modalità in cui si inseriscono nella strategia di protezione delle applicazioni, vedere la pagina Capabilities di .

Dotfuscator Community offre una protezione di base pronta all'uso. Sono disponibili ancora più misure di protezione delle applicazioni per gli utenti registrati di Dotfuscator Community e per gli utenti di PreEmptive Protection - Dotfuscator Professional, leader mondiale .NET Obfuscator. Per informazioni sul miglioramento di Dotfuscator, consulta la pagina Miglioramenti.

Iniziare

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 utente completa di Dotfuscator Community.
  • Se Dotfuscator Community non è ancora installato, casella di ricerca visualizza 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 dei download di Dotfuscator su 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 Dotfuscator Community interfaccia utente grafica (GUI) passando al menu Tools di Visual Studio e selezionando PreEmptive Protection - Dotfuscator Community.

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

    Questa schermata elenca la versione di Dotfuscator.

  • Se Dotfuscator è integrato nella compilazione con l'interfaccia della riga di comando , è 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 la verbosità della build per visualizzare questo testo. Per informazioni su Visual Studio, vedere Impostazioni dettagliate.

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 della protezione di Dotfuscator 6 più recenti.

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 2022 Dotfuscator Community 6 è incluso in Visual Studio 2022.

  • 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, aggiorna innanzitutto Visual Studio e successivamente consulta Installazione.

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

  • 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 Dotfuscator Downloads e selezionando il collegamento di download appropriato.

    Eseguire il file .vsix scaricato 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. Consigliamo di aggiornare a una versione più recente di Visual Studio o passare da Dotfuscator Community a Dotfuscator Professional.

Se in precedenza registrato Dotfuscator Community 5, la registrazione verrà convertita automaticamente la prima volta che si esegue Dotfuscator Community 6.

Aggiornare i percorsi della CLI

Se in precedenza si usava Dotfuscator 5 l'interfaccia della riga di comando (CLI) per proteggere l'app, è necessario aggiornare il percorso all'interfaccia della riga di comando (CLI) in tutti i progetti e script di build che vi fanno riferimento.

Il motivo per cui un percorso dell'interfaccia della riga di comando di Dotfuscator potrebbe ora non essere valido è che i nomi di alcuni degli 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
dell'interfaccia della riga di comando 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.

Per aggiornare la build per utilizzare il percorso corretto della CLI:

  1. Avviare il GUI di Dotfuscator Community passando al menu Tools di Visual Studio e selezionando PreEmptive Protection - Dotfuscator Community.

  2. Nell'interfaccia utente grafica della community di Dotfuscator, andare al menu Strumenti e selezionare Prompt dei Comandi di 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 della CLI 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.
  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 in 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 variabile di ambiente VSInstallDir è 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.

Avvertimento

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. Questo potrebbe causare l'esito positivo della compilazione nonostante non applichi la 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 di 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. Avvia Dotfuscator Community interfaccia grafica utente (GUI) 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. Il seguente messaggio viene visualizzato nella scheda Output di Compilazione.

    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 i riferimenti alle librerie di attributi

Dotfuscator consente di configurare specifiche 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 di offuscamento

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 gli attributi

La libreria contenente l'check attributes è 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 per PreEmptive.Attributes.dll.

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

Sono stati rimossi anche i parametri di ExtendedKey di 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 Check Attributes, anche se i nomi degli attributi sono diversi, ad esempio FeatureAttribute 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 nell'assembly alla libreria che ha definito gli attributi, PreEmptive.Attributes.dll. Se si usavano anche gli attributi di controllo definiti in questa libreria, sono stati trasferiti. Vedere Attributi di controllo sopra.

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.

Un elenco completo delle modifiche è disponibile nel log delle modifiche .

PreEmptive Analytics

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

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

Se stavate utilizzando attributi nel codice per configurare PreEmptive Analytics, rimuoveteli dal vostro codice sorgente e ricompilate i vostri assembly di input prima che Dotfuscator 6 possa proteggere tali assembly.

Se si stava utilizzando Controlla Telemetria per segnalare quando un controllo rileva uno stato non valido, ad esempio quando viene rilevata manomissione , è possibile sostituire Check Telemetry con una Notifica Applicazione personalizzata che segnala l'incidente a Azure Application Insights o a un altro servizio a scelta.

Tipi di applicazioni 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)
  • Piattaforma UWP (Universal Windows Platform)

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 Universal Windows Platform (UWP) .appx come ingressi . Per proteggere le app UWP, eseguire l'aggiornamento a Dotfuscator Professional e seguire le istruzioni Protect Your App.

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

Introdurre ridefinizioni esplicite dei metodi

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

Documentazione completa

Per istruzioni dettagliate sull'utilizzo, vedere guida completa dell'utente di Dotfuscator Community all'indirizzo preemptive.com, tra cui come iniziare a usare l'interfaccia utente di Dotfuscator Community.