Informatica e affini

Utilizzare Software protetto da chiave Hardware senza avere la chiave

by on giu.19, 2009, under Tricks

Vi è mai capitato di dover utilizzare un software protetto da una chiave hardware, che magari va ad occupare un porta Usb del PC utilizzata per un altra periferica?  Io non sopporto l’idea di stare ogni volta a staccare il cavo della periferica, attaccare quello della chiave , e poi rimettere tutto come era prima.

Per questo ho trovato un espediente per poter utilizzare un qualsiasi Software con protezione hardware, senza averne la chiave, o per lo meno senza doverla inserire ogni volta che voglio usare un programma.

Per effettuare il “raggiro” che ho progettato, abbiamo bisogno di un software per creare delle macchine virtuali all’interno del PC. Il mio preferito è Virtual Box.  Una macchina virtuale, in parole povere , non è alto che un PC “finto” all’interno del nostro PC.

Per maggiori dettagli sul funzionamento di Virtual Box leggete questo articolo, oppure chiedete lasciando un commento.

Una volta creata una nuova macchina virtuale, e installatovi sopra un sistema operativo, procediamo a installarvi il software che vogliamo utilizzare.

Per fare “vedere” correttamente  la chiave Hardware al sistema virtualizzato dobbiamo andare (con la macchina virtuale spenta) nella scheda delle opzioni  che compete alle periferiche usb, abilitare tutti i controller usb, inserire la chiave nel nostro computer, cliccare sul pulsate per aggiungere un altra periferica usb(Quello con il disegno di una spina usb con il + sopra). Dovrebbe comparirci un menu con l’elenco delle periferiche collegate, noi selezioniamo la chiave hardware e facciamo click su OK per  salvare le opzioni.

Dopo aver fatto questo,  al momento dell’avvio della macchina virtuale  ci compare un messaggio che dice che e’ stata installata una nuova periferica usb e occorre installare il driver, noi accettiamo e lo installiamo.

A questo punto e’ possibile utilizzare la chiave hardware all’interno della nostra macchina virtuale.

Avviamo il nostro software protetto dalla chiave.

Se tutto il procedimento è stato fatto bene il software dovrebbe rilevare la chiave e avviarsi senza problemi.

Una volta che il programma è aperto, noi facciamo uno “Snapshot” utilizzando Virtual Box.(Basta premere la voce “Crea Istantanea” nel menu “Macchina della finestra della macchina virtuale) Lo snapshot è una “fotografia” di tutta la memoria della macchina virtuale in un preciso momento.

A questo punto possiamo anche togliere la chiave, e ogni volta che vorremo usare il programma ci basterà avviare lo snapshot che avevamo salvato. in questo modo troveremo il sistema operativo già avviato con il programma già aperto.

:, , , , , , , , , , , , , ,

48 Comments for this entry

  • Luigi

    Fantastico, ma non esiste un modo per duplicare una chiave hardware?

  • Francesco

    No, non esiste nessun modo “facile” per duplicare una chiave , le hanno fatte cosi apposta. Si potrebbe ricostruira interamente la chiave per come è fatta ad hardware, ma in termini di costo sarebbe più conveniente comprare un altra copia del programma, per quanto costoso sia.

  • Francesco

    Da quello che tu mi dici, la prima cosa che posso pensare e’ che la chiave hardware non sia stata virtualizzata correttamente.
    Ti da errore perfino dalla prima volta che utilizzi la chiave, oppure quando vai a riutilizzare lo snapshot?
    Nel caso ti dia errore fin dalla prima apertura del programma significa che la chiave non e’ virtualizzata, e ora che mi hai fatto notare questa cosa, capisco che e’ anche colpa mia , dato che scrivendo il post, ho trascurato la procedura di virtualizzazione corretta della chiave.
    Modifichero’ l’articolo il prima possibile.
    Se non ti funziona comunque non farti problemi a chiedere aiuto.

  • Giusi

    ciao Francesco, innanzitutto grazie per l’idea del pc virtuale. Da settimane cercavo un modo per poter usare una chiave hardware senza essere costretta a staccarla e riattaccarla su ogni computer che in cui ho installato il mio software protetto.
    anch’io come Guz ho avuto problemi però.
    la mia installazione funziona correttamente il software parte nella macchina virtuale, ma appena tolgo la chiave mi da errore, suppongo anch’io di non aver virtualizzato correttamente la USB. SPero almeno che sia così! aspetto trepidante le tue indicazioni, ringraziandoti tantissimo in anticipo per questo piccolo (grande) trucco.

    • Francesco

      Se riesci a fare partire il programma nella macchina virtuale vuol dire che la chiave è virtualizzata correttamente.
      Nel tuo caso,probabilmente, coloro che hanno sviluppato il software , hanno pensato a contrastare anche il mio trucchetto, continunando a controllare la presenza della chiave per tutta la durata della sessione di lavoro del programma. Se fosse veramente cosi, dovrebbe accadere la stessa cosa anche quando utilizzi il programma senza macchina virtuale.
      Tu prova ad avviare il programma senza macchina virtuale, con la chiave inserita, e dopo che hai aperto il programma prova a staccare la chiave dal pc.
      Se anche in quel caso il programma termina , vuol dire che i programmatori sono stati più furbi di me!! :D
      Questo trucchetto funziona solamente se il programma controlla la presenza della chiave solo all’avvio.

  • Giusi

    cavolo, è proprio come dici tu.
    mi sa che i programmatori del software ci avevano già pensato. Ho provato senza virtualbox ed infatti ..si blocca!

    chissà se esiste un qualche stratagemma per poter creare un’immagine della usb (che so.. magari come le immagini dei cd o dei vecchi floppy) !!!
    grazie davvero

  • Francesco

    No non esiste. La Chiave Hardware è fatta in modo da rispondere con un numero ad un altro numero, il programma la interroga inviando un numero alla scheda, la scheda risponde con il numero abbinato a questo, il programma vede se il numero restituito è giusto e di conseguenza funziona. Gli abbinamenti tra i numeri sono miliardi, rispecchiano una funzione matematica, ma fatta in modo da non poter essere calcolata se non dalla scheda.
    Proprio per questo non è possibile clonare la scheda, sullo stesso principio si basano le schede del bankomat di nuova generazione(quelle con il chip) anche loro non possono essere clonate.
    L’unico modo che hai per poter utilizzare il programma senza chiave devi modificare il codice assembler del programma. Se vuoi posso spiegarti quali sono i passi da fare, ma ti anticipo che occorre un gran quantità di tempo, e 2 palle quadrate :D

    • lele

      ciao, ero interessato a cambiare il codice dell’assembler per oviare alla deskey, mi puoi aiutare??

      • admin

        La cosa è molto complessa , e per poter fare una cosa del genere devi avere già una buona esperienza con l’assembler, io non l’ho mai fatto.
        Quindi posso darti solamente delle indicazioni a grandi linee.

    • ivan

      Ciao francesco a me interesserebbe sapere come raggirare la chiave cioè i due passaggi x far funzionare il programma senza la stessa puoi spiegarmi x piacere ?

  • Mauro

    Ciao Francesco io dovrei proteggere delle chiavette usb con dei dati che non voglio che vengono copiati c’e’ qualche supporto che mi aiuti ???
    Se si tenta di duplicare si distugge tutto

    Grazie

  • Francesco

    No, per dublicare dei dati, basta poter accedere al contenuto della chiavetta. Se impedisci di accedere alla chiavetta , non potrai leggere nemmeno tu il contenuto.
    Se però quello che vuoi, solamente proteggere i tuoi dati in modo che nessuno al di fuori di te li possa comprendere, ti basta cifrarli con una password. Per fare questo ti basta un semplicissimo programma come WinRar. In questo modo i dati saranno al sicuro, e potrai fare in modo che solo chi vorrai, utilizzando la password possa accedere ai tuoi dati.
    Adesso che me lo hai fatto venire in mente, scriverò un articolo con il procedimento dettagliato per farlo.

  • Frank3000

    AppName: virtualbox.exe AppVer: 3.1.0.0 ModName: vboxdd.dll
    ModVer: 0.0.0.0 Offset: 000797be

    Creando l’istantanea mi da questo errore, potreste aiutarmi?

    Grazie

    • Francesco

      Da quanto ho capito , la finestra di notifica dell’ errore ti compare sul sistema operativo nativo, quindi l’errore è causato dal processo della tua virtual box, precisamente alla riga indicata dall’offset. L’errore avviene in qualsiasi momento tu voglia fare un istantanea. Però non vedo nessuna indicazione sul tipo di errore. Prova a disinstallare il vbox e a reinstallarne un altra versione.

  • efrance

    ciao Francesco, a me interesserebbe la procedura per modificare il codice assembler. Me lo potresti gentilmente girare? Io uso mac osx leopard, ma questo penso non sia un problema per la procedura di modificazione del software, giusto? Anch’io ho lo stesso problema di molti: avere un programma protetto da chiavetta usb ed avere due luoghi di lavoro. Molto spesso mi capita di “duplicare” la strada in automobile per recuperare la chiavetta maledetta dimenticata.
    Grazie ancora

    • Francesco

      Non sono un utente Mac , però posso dirti che sicuramente esiste un editor esadecimale per mac(quello che ti serve per modificare il codice) mentre non so se esista un debugger per mac. Ad ogni modo, la cosa indispensabile è solo l’editor esadecimale. Il debugger ti da solamente un’aiuto.
      Quello che devi fare è modificare il codice facendo in modo che il programma ignori il fatto che la chiave non sia inserita nel computer. Il difficile è trovare il punto nel codice assembler dove questo deve essere fatto.
      Non conosco quanto tu sia esperto nella materia. prova a leggerti questa :
      http://home.online.no/~reopsahl/files/assem.htm
      Per un neofita non è affatto facile imparare a fare cose del genere.

  • Fulvio

    ciao sono bloccato nel punto in cui si dice:
    “andare (con la macchina virtuale spenta) nella scheda delle opzioni che compete alle periferiche usb, abilitare tutti i controller usb, inserire la chiave nel nostro computer, cliccare sul pulsate per aggiungere un altra periferica usb(Quello con il disegno di una spina usb con il + sopra)”
    io uso windows 7 potresti gentilmente spiegarmi meglio cosa devo fare?
    Grazie
    Saluti

    • Francesco

      Prima chiudi la macchina virtuale.(quando la macchina virtuale è spenta te ne accorgi dal fatto che il pulsante impostazioni è abilitato)
      premi sul pulsante impostazioni.
      inserisci la chiave hardware nella porta
      Clicchi su “usb” nell’elenco verticale.
      Abiliti sia il controller usb, che il controller usb 2
      premi sull’iconcina della presa usb con il +
      Dall’elenco che ti si apre, scegli il nome che rappresenta la tua chiave hardware.
      Una volta che la tua chiave Hardware compare nell’elenco al centro, è riconoscibile dalla macchina virtuale.
      Avvia la macchina virtuale e installa i driver della nuova periferica trovata.
      Avvia nella macchina virtuale il programma che necessita della chiave.
      dopo che si è avviato premi sul pulsante snapshot (“crea istantanea” nelle versioni italiane).
      ora puoi staccare la chiave.
      Ogni volta che vorrai usare il programma ti basterà avviare lo snapshot che hai salvato in questo modo.

      Può darsi che io non sia riuscito ad aiutarti nemmeno con questo commento. Se così fosse non esitare a chiedere chiarimenti più specifici.

      • Fulvio

        grazie mille proverò così e ti farò sapere

        • Fulvio

          ho provato a fare questa procedura ma quando faccio lo snapshot mi da un errore:

          “Apertura di una sessione per la macchina virtuale non riuscita”

          “A session for the machine is currently open (or being closed)”

          poi cliccando su dettagli mi da questa descrizione

          Codice&nbspd’uscita:
          VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)
          Componente:
          Machine
          Interfaccia:
          IMachine {99404f50-dd10-40d3-889b-dd2f79f1e95e}
          Chiamante:
          IVirtualBox {2158464a-f706-414b-a8c4-fb589dfc6b62}

          Saluti

          • Francesco

            Dava lo stesso errore anche a me perchè facevo clic sul bottone snapshot della finestra principale di virtualbox.
            Per non avere l’errore prova a utilizzare il pulsante che è nella finestra della macchina virtuale.

            Menu macchina->Cattura istantanea.
            Dovrebbe funzionare.

  • salvo

    Ciao Francesco, complimenti per l’ideazione del metodo che proverò subito!
    Avrei da farti qualche domanda:
    1) sai se funziona anche con chiavi su porta parallela o se c’è un comando specifico da adottare nella tua procedura?
    2) è possibile fare un backup degli snapshot salvati?
    3) la procedura è attuabile anche con più chiavi hardware in uno stesso snapshot? anche a costo di chiudere tutti i programmi che non servono dopo aver attivato lo snapshot
    P.S. sai se esistono strumenti per adattare una chiave parallela ad una porta usb?
    Ciao e grazie!

    • Francesco

      Grazie!
      1) non ho mai avuto modo di provare con le porte parallele, ma dovrebbe potersi fare anche con quelle, anche perché vedo che virtual box permette di virtualizzare anche le porte com.
      2)Si. il file in cui è salvato il file dello snapshot è contenuto nella cartella “snapshot” contenuta a sua volta nella cartella delle impostazioni della macchina virtuale che stai usando( il file ha un nome stranissimo)
      3) Si. A patto che le chiavi siano compatibili e funzionino contemporaneamente in regime di funzionamento normale.
      Se esistono degli strumenti per adattare le porte io non ne sono a conoscenza. Ma probabilmente non esistono, perché la tipologia di comunicazione di una porte parallela è completamente diversa da una usb. e occorrerebbe una unita elettronica intermedia per fare la conversione.

      • salvo

        Scusa, mi sono scordato una domanda:
        siccome nel protatile non ho la porta parallela, è pensabile di creare uno snapshot su virtualbox installato sul fisso e poi copiare lo snapshot su virtualbox installato sul portatile? ci possono essere problemi di compatibilità tra “virtualbox su fisso” e “virtualbox su portatile”?

        • Francesco

          Se ho capito bene, vuoi creare uno snapshot sul computer fisso utilizzando la porta seriale, portarlo sul portatile dove non c’è una porta seriale e utilizzarlo li.
          Non so se fuziona oppure no. Ma probabilmente funziona. Ti basta provare, tanto non ti costa nulla.

  • Lupo Alberto

    Complimenti per il forum :-)l’ho trovato molto interessante.

    Il mio problemino: fisicamente ho una chiave hardware per un applicativo di AutoCAD, ma ho perso i codici per attivare questa chiave. C’è una soluzione?
    Premesso che non riesco e non posso contattare il produttore del programma che funziona con la chiave.

    Grazie in ogni caso per la disponibilità

    Paolo

    • Francesco

      Che io sappia non esiste nessun modo per fare funzionare uan chiave hardware che ha bisogno di un codice, senza averlo a disposizione.

      • Lupo Alberto

        Peccato, speavo esistesse un programmino che carpiva il codice nascosto nella chiavetta.
        Mi affiderò a qualche medium o shamano per avere i numeri magici ;-)
        Grazie comunque

  • Angelo

    Ciao Francesco, mi complimento con te per il sito. Ci sono arrivato cercando il metodo per fregare la chiave hardware. Purtroppo però il software da raggirare non è protetto da una chiave usb ma da una vecchia porta parallela. Al momento sono a casa e non ho modo di provare, pensi che il trucchetto della macchina virtuale possa funzionare?
    Grazie

    • Francesco

      Virtual box permette di virtualizzare anche le porte parallele, quindi se la virtualizzazione funziona a dovere il trucchetto funziona.
      Non ti resta che provare!

      • ANGELO

        Ciao, ho provato ad installare tutto, ho visto che togliendo la chiave il software continua a funzionare sulla macchina reale. Non riesco ad impostare la porta seriale su quella virtuale, ci sono un sacco di opzioni e non riesco a scegliere quelle giuste. Le opzioni sono:
        1)numero porta com—IRQ—porta I/O
        2)modalità porta: non connessa, pipe host dispositivo host, file raw.
        )poi bisogna mettere la porta/percorso
        sbagliando non parte nemmeno la macchina virtuale. Mi puoi aiutare?
        Grazie

        • Francesco

          Mi dispiace ma non mi è mai capitato un problema del genere, per aiutarti dovrei avere fisicamente la chiave hardware e provare ogni combinazione possibile di impostazioni.
          La cosa che puoi fare è provare tutte le impostazioni tu stesso.

  • Davide

    Ti rendi conto che ti amo? Sei un grande. Sei un genio. E aiuti senza chiedere. Davvero grazie. E anni che cerco sul web…

  • Pasquale

    Ciao,

    ho un software molto antico che funziona tramite chiave hardware su porta parallela.
    Si può aggirare il problema?
    Ho la chiave hardware.

    Grazie

    Pasquale

    • admin

      Guardando fra le opzioni che è possibile utilizzare con Virtual Box non vedo nulla che ti può aiutare , è possibile virtualizzare soltanto le porte seriali.
      Comunque nulla escluda che possa esistere un qualche altro software di virtualizzazione che invece consenta di farlo…
      Prova a cercare.

  • vittorio

    Salve, a proposito di chiave hw avrei un problema.Uso un programma applicativo su un pc fisso con S.O.Xp;qsto programma gira in dos con una chiave hw parallela, siccome con Xp mi dava errore, ho adottato userport.exe 1.1 per aggirare l’ostacolo, e la maschera “manca la chiave di protezione e/o la stampante è spenta” non mi si appariva più…. tra l’altro la stampante è scollegata…la chiave hw è inserita e collegata al cavo ma, ripeto, scollegata dalla stampante. Ora che lo stesso programma lo voglio far girare su un notebook mi ha dato lo stesso problema, cioè compare la maschera; a questo punto ho scaricato userport 2.0 per windows 7 e il programma sono riuscito a caricarlo; il fatto è che manca solo la chiave hw parallela(sul NB non posso installarla); la maschera di avviso però compare sempre e mi fa lavorare in demo che non è quello che voglio. Domanda: ma userport deve comunque coesistere insieme alla chiave hw? perchè allora con il pc fisso mi funziona nonostante scollegata? forse il solo fatto che è inserita basta? come devo fare…il programma è buono e mi serve.

  • vittorio

    ops!..ho fatto un controllo sul pc fisso, in effetti senza chiave hw non va, per cui la coesistenza con userport c’è.A questo punto dovrei trovare un riduttore per la parallela? sul NB ci sarebbe la possibilità di inserire una parallela piccola da 15 poli oppure trovare un riduttore usb…esistono in commercio?

    • admin

      Non ne ho idea. Purtroppo non ho mai utilizzato Userport…
      Il problema non è risolvibile neppure tramite l’uso di VirtualBox, dato che questo permette soltanto di virtualizzare porte Seriali ma non quelle parallele.

  • vittorio

    peccato! non utilizzare più un buon programma per una questione tecnica…pazienza, grazie comunque

  • Alessandro

    Ciao, molto interessante, però non risolve il mio problema….te lo butto li:

    ho il software, la chiave hardware parallela (sentinel) e relativo file di chiave.
    E’ successo però che tra una cosa e l’altra negli anni mi si è corrotto il file di chiave. premesso che: – la chiave hardware da vari test fatti sembra funzionare a dovere. – la ditta che l’ha prodotto e che ci forniva assistenza è fallita e non esiste più, quindi non c’è modo di contattarli.

    Come posso continuare ad utilizzare il programma? è possibile riscrivere il file di chiave? volendo a disposizione da un’altra postazione, ho una seconda chiave + file funzionanti da poter usare come base……

    spero mi possa dare almeno un imput su come procedere

    • admin

      Il problema nel tuo caso non si può risolvere con il mio trucco, in quanto virtualBox permette di usare solamente porta USB e seriali.

  • Maicol

    Salve. Io volevo sapere se questo “trucchetto” funziona anche con la chiave hardware del spac 2012.

  • Luca

    Salve, io ho un portatile che monta Windows 8.1…..e possibile eseguire comunque tutta l operazione? Posso montare sul virtualizzatore un Windows xp sp3? Grazie mille Luca

    • Francesco

      Certamente, puoi virtualizzare il sistema operativo che vuoi, a patto che sia compatibile con l’architettura intel (ovviamente XP lo è). Infatti Virtual box è utile anche per provare altri sistemi operativi, come linux, senza fare complicate operazioni di installazione.

  • Luca

    Ciao, la virtualizzazione del sistema funziona benissimo. Il software comunque contunua a richiedere la chiavetta anche se ho scattato l’istantanea come hai descritto. (chiavetta inserita tutto OK – chiavetta non inserita il software mi da errore). Esistono altre prove che posso fare?

    grazie

    Luca

    • Francesco

      Evidentemente il programma richiede che la chiave hardware sia costantemente inserita. Il mio metodo in quel caso non funziona.
      Tuttavia ho visto che di recente è stato sviluppato un programma http://www.daemon-tools.cc/ita/products/dtusb#features che dovrebbe permettere di virtualizzare i dispositivi usb. Al momento non ho nulla per provare se funziona. Puoi provare quello , guarda se riesci a combinare qualcosa e nel caso fammi sapere.

1 Trackback or Pingback for this entry

Rispondi al commento