Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    9

    [VB.NET] creare una versione trial

    ciao a tutti

    sto realizzando un'applicazione che deve essere installata da un cliente e che deve terminare dopo un determinato periodo.

    Per farlo scrivo la data di installazione criptata in una chiave di registro e poi ogni giorno controllo la data del sistema.
    Il problema è che il pc su cui è installata è del cliente e quindi potrebbero cambiare la data a loro piacimento, aggirando così la protezione.
    Avevo pensato di prendere la data da internet ma non è detto che ci sia il collegamento.
    Ho provato a prendere la data dal bios con win32_bios ma sembra che non sia possibile.

    Qualcuno ha mai affrontato questo problema o saprebbe indirizzarmi sulla strada giusta?

    ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    puoi scrivere la data nel file di configurazion (app.config) e criptarlo,o comunque in un file qualsiasi in cui il valore è criptato secondo una chiave tua interna.

    Nel registro scrivi ,alla prima installazione, una chiave che ti dice che hanno già fatto un'installazione. In questo modo se cancellano il file, tu sai che hanno provato a forzare in qualche modo la versione trial.

    In linea di massima ti consiglierei comunque di scrivere nell'App.Config e criptarlo. So che ci sono delle classi e metodi apposta per criptare il file di configurazione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    9
    ok diciamo che più o meno ho capito cosa fare, ora però ho un problema con la crittografia rsa.
    Se io codifico una stringa per decodificarla ho bisogno della chiave privata.
    Il mio problema è che non riesco a capire come usare chiavi fisse, cioè che non vengono create dalla classe RSACryptoServiceProvider
    Per esempio se io codifico una stringa e la salvo in un db, poi quando vado a rileggere le chiavi sono cambiate e ovviamente non riesco a decodificarla.
    Probabilmente sono io che sbaglio visto che è la prima volta che affronto un problema simile.

    ciao

  4. #4
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    guarda la spiegazione sull'msdn...msdn

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    9
    si ho usato un metodo simile a questo però il problema è che, una volta criptato il messaggio, il valore che ho in un array di byte lo converto in stringa per poterlo salvare e quando provo a decifrarlo, l'array di byte che mi creo è diverso da quello iniziale.

    dal codice di msn qui viene criptato il messaggio
    Dim encryptedData() As Byte= RSAEncrypt(dataToEncrypt, RSA.ExportParameters(False), False)

    io poi converto da byte in testo
    Dim ByteConverter As New UnicodeEncoding()
    Dim testo As String = ByteConverter.GetString(encryptedData)

    se ora lo riconverto in byte
    Dim bb As Byte() = ByteConverter.GetBytes(testo)

    mi ritrovo che bb<>encryptedData e ovviamente il decript poi da errore

  6. #6
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    ma perchè trasformi in testo l'array di byte criptato?

    Comunque se trasformi l'array di byte in testo e poi lo ritrasformi in byte, è abbastanza normale non avre lo stesso risultato, perchè l'array originario è determinato dall' RSA, mentre quello finale è il risultato di una decodifica testo.

    Probabilmente quando ritrasformi in testo devi usare una decodifica diversa.

    Diversamente, se proprio ti serve una stringa, puoi farti una decodifica da byte a testo e viceversa a mano: ogni byte lo forzi ad un char e viceversa. Attenzione perchè il char è due byte.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    9
    in realtà ho anche salvato direttamente l'array di byte su db ma quando vado a rileggerlo mi da errore nella decodifica: "Errore durante la decodifica del riempimento OAEP"
    Il problema è sempre quello: se istanzio la classe rsa e codifico una stringa e poi la decodifico, funziona. Se invece istanzio la classe, codifico la stringa e poi cerco di decodificarla con un'altra istanza della classe, mi da quest'errore che immagino sia un problema di chiavi pubblica e privata

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    9
    ho risolto il problema utilizzando la classe RijndaelManaged dove posso configurare le chiavi e quindi riesco a codificare e decodificare i messaggi senza problema.
    Ora ritorniamo al problema originale: io imposto la data di installazione dopo 6 mesi blocco il programma. Se loro però modificano la data del sistema, riescono a evitare la protezione.

    Come posso risolvere?

  9. #9
    scusate se mi intrometto....scrivere nell'app.config cosa comporta fisicamente alla fine ? su quale file scrive ? Esso è visibile in chiaro ?

    E poi..una volta sgamata la chiave di registro basta disinstallare e reinstallare il programma perchè funzioni di nuovo...serve a poco quindi fare cryptazione di dati... o mi sbaglio ?
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da RAVALON
    scusate se mi intrometto....
    Non risollevare discussioni sopite da mesi, come da Regolamento.

    Se hai un problema da affrontare, apri una nuova discussione (puoi inserire eventualmente un riferimento a questa se ci sono elementi che possono tornare utili).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.