Domanda

Sto cercando di costruire un modo per impedire l'accesso a determinate partizioni del disco rigido / unità USB per motivi di sicurezza (protezione della proprietà intellettuale). Stavo pensando che quando Windows tenta di accedere all'unità "bloccata / usb" il tentativo viene interrotto e restituisce qualcosa come "azionamento inaccessibile" o qualcosa. È solo un'idea, qualcuno è plausibile / possibile? In tal caso, qualche puntatore?

C / C ++

-Grazie

È stato utile?

Soluzione

Dovrai scrivere un driver del filtro per raggiungere il tuo obiettivo. Dovrai mettere il tuo driver da qualche parte nello stack del driver del disco e fallire IRP_MN_START_DEVICE per l'unità / partizione che vuoi bloccare.

Per scrivere i driver è necessario Windows Driver Kit . C'è un esempio di driver di filtro nel WDK. Questa mailing list come molto utile e se tu cercherà negli archivi troverai molte informazioni sui driver del filtro del disco.
Un buon articolo sulla scrittura di driver di filtro è qui , penso che dovrai registrati per leggere, ma se vuoi scrivere un driver dovresti essere registrato su questo sito.
L'elenco dei libri pertinenti è disponibile qui .

Altri suggerimenti

Il problema delle partizioni è semplice. Usa gli ACL per impedire l'accesso a determinati utenti.

Per l'accesso all'unità, probabilmente c'è qualche impostazione in Windows da disabilitarlo. Nel caso peggiore potresti provare a rimuovere forzatamente i driver (e come tale la capacità di Windows di leggere l'unità / stick)

Per le unità USB è possibile crittografarle.

Al lavoro utilizziamo provider Pointsec , che ti consente di accedere all'unità su qualsiasi macchina solo se si dispone di una password.

Sono sicuro che ci sono prodotti di crittografia freeware disponibili

Probabilmente potresti anche crittografare le partizioni.

(sostanzialmente non sono sicuro del motivo per cui vorresti scrivere del codice c / c ++ per qualcosa che potrebbe essere adeguatamente gestito con altri metodi)

Devi crittografare le unità, qualsiasi altra cosa consentirebbe agli aggressori di collegare l'unità a un'altra macchina ed estrarne il contenuto.

Non dovresti implementare la crittografia da solo: è molto meglio fare affidamento sul codice recensito di qualcun altro. Suggerisco TrueCrypt per la crittografia delle unità.

Quindi forse vuoi mettere un hook nella tua applicazione per richiedere la password quando vuole accedere ai dati crittografati. Oppure si installa TrueCrypt sul computer e si fa in modo che l'utente colleghi l'unità quando desidera accedere ai dati, a seconda del modo preciso di lavorare con i dati.

Sii consapevole. Qualsiasi cosa che coinvolga il lavoro del kernel, se non si ha già esperienza in quel campo, ha un tempo di sviluppo misurato in anni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top