Il 15/04/2015 12:58, Marco Signorini ha scritto:
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.
Potresti implemementare delle funzioni sulle dll (magari funzioni
diverse per rompere un po' le scatole ad un eventuale malintenzioanto)
che fanno una SendMessage all'eseguibile principale, il quale in
risposta al messaggio va a chiamare le funzioni della chiavetta hardware
e poi a sua volta o spara un altro messaggio verso la dll o imposta una
qualche variabile semaforo che viene controllata periodicamente da
procedure della dll.
Alla fine con questi sistemi c'รจ sempre il problema che le funzioni
ritornano true o false e se intercettate possono essere bypassate.
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List