Visualizzazione post con etichetta VSTO. Mostra tutti i post
Visualizzazione post con etichetta VSTO. Mostra tutti i post

lunedì 19 febbraio 2018

VSTO: Creare un componente aggiuntivo per l'installazione di un payload

VSTO (Visual Studio Tools for Office) è un insieme di strumenti di sviluppo disponibili sotto forma di runtime e di add-in di Visual Studio che consente alle versioni di MS Office 2003 e successive di  ospitare il .NET Framework Common Language Runtime (CLR) e permettere la realizzazione di funzionalità attraverso .NET.
I componenti aggiuntivi VSTO possono essere installati, nel proprio profilo, anche dagli utenti che non dispongono di privilegi amministrativi ed eseguiti ad ogni avvio dell'applicazione MS Office per cui sono stati realizzati (ad es. Excel). Tale comportamento rappresenta un grosso problema per la sicurezza. L'add-in può essere creato in modo che venga avviato un payload (una routine malevola). In questi casi AppLocker, nella sua configurazione di default, non blocca l'esecuzione del codice.

Vediamo come creare un add-in VSTO in Visual Studio.
  • Avviare Visual Studio e creare un nuovo progetto. Dal menu File selezionare Nuovo quindi Progetto;
    Visual Studio, Nuovo Progetto
    FIG 1 - Visual Studio, Nuovo Progetto
  • Alla richiesta di selezionare il modello da utilizzare, selezionare Visual C# quindi Office/SharePoint;
    Visual Studio, Progetto in Visual C# - Office/SharePoint
    FIG 2 - Visual Studio, Progetto in Visual C# - Office/SharePoint
  • Se nel sistema non è già installato verrà richiesto di installare Office Developer Tools (FIG 2). Eseguire un doppio click su Installa progetti Office Developer Tools, attendere il download e seguire le istruzioni a video per portare a termine l'installazione di tale componente.
    Visual Studio, Installazione Office Developer Tools
    FIG 3 - Visual Studio, Installazione Office Developer Tools
  • Terminata l'installazione di Office Developer Tools avviare nuovamente Visual Studio, creare un nuovo progetto Visual C# quindi selezionare Office/SharePoint. Selezionare per quale applicazione MS Office si intende sviluppare il componente aggiuntivo (in questo articolo è stato selezionata l'opzione Componente aggiuntivo VSTO per Word 2013 e 2016), assegnare un nome al progetto e confermare cliccando sul pulsante OK.
    Visual Studio, selezione componente aggiuntivo da creare
    FIG 4 - Visual Studio, selezione componente aggiuntivo da creare
  • A questo punto Visual Studio provvederà a creare il template del nostro add-in. Per fare in modo che al caricamento del componente aggiuntivo venga eseguita una particolare operazione, bisogna modificare la funzione ThisAddIn_Startup. Aggiungendo il seguente codice, come mostrato anche in FIG 5, all'avvio del componente aggiuntivo verrà avviata la calcolatrice.
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.FileName = @"c:\windows\system32\calc.exe";
    proc.Start();
    Visual Studio, Modifica della funzione ThisAddIn_Startup per richiamare un file eseguibile (calc.exe)
    FIG 5 - Visual Studio, Modifica della funzione ThisAddIn_Startup per richiamare un file eseguibile (calc.exe)
  • Dal menu Progetto selezionare Proprietà;
    Visual Studio, Proprietà progetto
    FIG 6 - Visual Studio, Proprietà progetto
  • Nella sezione Applicazione impostare il .NET Framework da utilizzare;
    Visual Studio, Framework di destinazione
    FIG 7 - Visual Studio, Framework di destinazione
  • Selezionare la sezione Firma. Firmare i manifesti ClickOnce con un certificato valido consente la distribuzione e l'installazione attraverso la tecnologia ClickOnce di Microsoft. Firmare i manifesti con un certificato non valido, d'altra parte, potrebbe impedire l'installazione/esecuzione del payload attraverso ClickOnce. Si può testare tale comportamento firmando i manifesti con un certificato autofirmato cliccando su Crea certificato di prova... e confermando cliccando su OK senza immettere alcuna password.
    Visual Studio, Firma manifesti ClickOnce
    FIG 8 - Visual Studio, Firma manifesti ClickOnce
  • Selezionare Pubblica. In tale sezione è possibile impostare le opzioni per la distribuzione del pacchetto come ad esempio la versione, prerequisiti, dipendenze ecc. In Percorso pubblicazione specificare un path lasciando tutto il resto impostato come di default, quindi cliccare sul pulsante Pubblica.
    Visual Studio, Pubblica componente aggiuntivo
    FIG 9 - Visual Studio, Pubblica componente aggiuntivo
  • Nella cartella Release del progetto, verranno generati i file del componente aggiuntivo. Per procedere all'installazione basta eseguire il file con estensione .VSTO.
    File componente aggiuntivo VSTO
    FIG 10 - File componente aggiuntivo VSTO
  • Terminata l'installazione, avviando MS Word verrà caricato anche il componente aggiuntivo che, a sua volta,  provvederà ad avviare la calcolatrice.
    VSTO, all'avvio di MS Word e dell'add-in viene avviata la calcolatrice
    FIG 11 - VSTO, all'avvio di MS Word e dell'add-in viene avviata la calcolatrice