Non avendo molta esperienza in ambito Windows con questo specifico tipo
di problematica non saprei cosa fare a parte tentare di utilizzare una
specie di token di autenticazione che viene scambiato tra l'eseguibile
principale (che effettua anche i controlli sulla chiave hardware) e le
funzioni contenute nelle dll. 

Arrivati a questo dovresti essere
sufficientemente tranquillo del fatto che le dll non possano girare senza
che l'eseguibile del tuo programma sia in esecuzione.
Fatto ciò potresti
usare UPX per comprimere sia eseguibile che dll. Ho notato che UPX utilizza
una chiave fissa per la compressione. Questa è standard e per decomprimere
è necessario conoscerla. Ciò significa che se ricompili UPX con un'altra
chiave renderai più difficile ai cracker meno esperti ed a molti tool
automatizzati la decompressione e l'analisi dei vari componenti.
Rimane il
fatto che se il tuo software costa 20000EUR, qualcuna delle aziende a cui
lo vendi potrebbe comunque decidere di allocarne 2 o 3000 per la consulenza
di un cracker con le palle fumanti e li potrebbero esserci problemi grossi.


A presto. 

On Wed, 15 Apr 2015 12:58:19 +0200, Marco Signorini  wrote: 
Grazie Carmelo,  Il nostro software funziona in ambiente Windows. Si tratta
di un modulo principale scritto in c++ e 6 librerie dll. Di fatto ci
interessa proteggere le dll che contengono i vari processi di calcolo, il
modulo principale gestisce soltanto l'interfaccia utente e l'accesso ad un
database ADO, quindi di poco valore intrinseco.  Nelle nostre prove abbiamo
fatto fare tutto al software rilasciato dal fornitore, abbiamo apportato
pochissime modifiche al codice.   L'hashing delle dll mi sembra un buon
suggerimento che potremmo implementare.   Sino ad ora invece non siamo
riusciti ad accedere alla chiave hardware dalle dll che invece vorremmo
proteggere da usi illegittimi.  Grazie Saluti  Marco Signorini 
Inviato da
iPhone 
Il giorno 15/apr/2015, alle ore 10:51, Carmelo San Giovanni  ha
scritto:

Personalmente ho sviluppato diversi sistemi anti copia per
software che girava su sistemi GNU/Linux ed in passato ho fatto parte del
team del Tz Copy Protection che aveva invece come obiettivo quello di
rendere incopiabili cd/dvd.

Come dice Leonardo, non esistono soluzioni
definitive nella maggior parte dei casi e non si può parlare di un sistema
efficace ma al massimo di un sistema "ragionevolmente efficace", ovvero
qualcosa che renda abbastanza complicata la copia del software da riuscire
a giustificarne la spesa d'acquisto. 

Considerando che state già
utilizzando delle chiavi hardware, immagino che abbiate scritto del codice
per eseguire delle verifiche e che lo abbiate posto all'interno
dell'eseguibile principale dell'applicazione.
Penso che potreste eseguire
anche un hashing delle dll per evitare che qualcuno le manometta e magari
attuare dei meccanismi per rendere più difficoltoso il reversing. 
Se
invece vi preoccupate che le librerie possano essere riutilizzate da terzi
il problema si complica ed a mio avviso, risolverlo potrebbe addirittura
rivelarsi controproducente (l'esperienza mi ha insegnato che le protezioni
complesse finiscono per essere messe da parte dai programmatori,
soprattutto quando ci si trova a debuggare spesso un'applicazione). 

In
ogni caso servirebbero maggiori informazioni per analizzare bene il vostro
specifico caso. 

Saluti. 

Carmelo San Giovanni. 

   Il 15/apr/2015
08:21, "Marco Signorini"  ha scritto:
 Buonasera a tutti.

 Sono iscritto
da tempo a questa Mailing List che leggo con molta attenzione e cerco di
imparare. Scusate se la domanda fosse OT.

 Qualcuno di voi ha mai
utilizzato sistemi di protezione anti copia efficaci?
 Nella mia azienda
stiamo utilizzando i dongle della Iolock che però non sono in grado di
proteggere le dll.

 Avete dei suggerimenti? Eventualmente, sapete darmi
anche un ordine di grandezza della spesa da affrontare?

 Grazie a tutti

Cordiali saluti

 Marco Signorini

 Inviato da iPad

________________________________________________________
http://www.sikurezza.org
[3] - Italian Security Mailing List

-- 
Windows: irregolare
OS X:
regolare
GNU/Linux: regolabile

-- 
Windows: irregolare
OS X:
regolare
GNU/Linux: regolabile
 

Links:
------
[1]
mailto:[email protected]
[2] mailto:[email protected]
[3]
http://www.sikurezza.org

Rispondere a