Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    22

    Vb5: auto-invio email per proteggere il copyright

    Salve , lavoro in VB5 ormai da 5 anni da autodidatta senza però aver approfondito molti argomenti, come ad esempio quello in oggetto. Ho visto che ci sono diversi post su questo argomento ma non so un tubo di .dll , Winsock ed altri.
    Nonostante la mia profonda ignoranza su certi aspetti del linguaggio (e sue implementazioni) ho fatto centinaia di programmi funzionanti perfettamente.
    Ci sono riuscito forse per la grande esperienza acquisita in tantissimi anni in cui ho programmato in PL1, Cobol e anche in Rpg in un grosso CED per fare applicazioni gestionali.
    Alcuni di questi sono fortemente complicati e mi hanno richiesto parecchio tempo.
    Adesso però mi è sorto un problema : devo vendere alcuni di questi programmi.
    Come fare per evitare che vengano distribuiti piratescamente ?
    Ecco cosa avrei pensato : Prima di inviare (per email) il programma "principale" (programma B) all'utente finale , gli vorrei spedire un altro programmino (programma A) costituito da un semplice "form" con una textbox dove ci siano scritte le solite cavolate (come "l'utente si impegna a non copiare e/o distribuire .... bla bla ...bla) e subito sotto una "checkBox" dove si debba clikkare per accettazione del pseudo-contratto.
    Una volta che l'utente clikka "per accettazione" sulla CheckBox, questo programmino dovrebbe leggere il codice dell' HD del pc in uso e mandare contestualmente a ME una email con questo codice.
    Una volta che io ho ricevuto questa email inserisco in una textbox (invisibile all'utente) del programma principale (programma B) il codice ricevuto che abiliti questo stesso programma a girare solo e soltanto sul pc che mi ha inviato l'email.
    SI PUO' FARE ?
    Cioè posso auto-mandarmi un'email senza neanche conoscere il provider che sta usando l'utente ?
    E se si può fare, qualcuno gentilmente e con molta pazienza mi può spiegare tutti i procedimenti da effettuare passo ... passo , vista la mia ignoranza in materia ?

    Resto in speranzosa attesa e grazie a chiunque mi risponderà.
    Claudik

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non vorrei deluderti, ma devo farlo: non funziona.
    Non puoi inviarti 'di nascosto' un'email perchè non hai l'assoluta certezza che questa sia inviata, per il semplice fatto che dipende dal provider che nel 90% dei casi permette l'invio SOLO utilizzando il proprio server di posta in uscita (SMTP).
    E' pacifico che il server di posta che usi tu possa coincidere con quello che usa il cliente può essere solo un caso.
    Quindi è da scartare a priori.

    L'idea poi di leggere il seriale dell'hard-disk è 'leggermente' datata, perchè non ha più senso legare un programma all'hardware.
    Pensa a quei programmi per i quali non serve installazione e possono essere usati da chiavetta USB, l'utente può usare e cambiare la chiavetta quando vuole.
    Tra l'altro, oggi come oggi, è abbastanza comune consentire l'utente di utilizzare il programma su più device (pc Desktop, pc Notebook, Netbook, Tablet, ecc.) e molti programmi prevedono infatti una licenza multipla (es. utilizzabile su 2 device).

    Per ultimo, ma non ultimo, esistono anche le macchine virtuali, che l'utente può utilizzare su qualsiasi computer (quindi anche da USB esterno).


    Potresti invece usare un file di licenza crittografato personalizzato, utilizzando le Crypto API per le quali è disponibile l'interfaccia CAPICOM2.

    Inizialmente il programma lo distribuisci 'senza' il file licenza, e predisponi un form in cui l'utente inserirà i propri dati aziendali per l'acquisto, inclusi Partita IVA o Codice Fiscale.
    Ti fai inviare i dati, e con questi crei un file crittografato e glielo spedisci e l'utente dovrà inserirlo nella cartella del tuo programma.

    All'avvio, il programma troverà ora il file di licenza che potrà leggere ed utilizzare per acquisire tutti dati dell'utente.
    Per inciso, nel file crittografato puoi metterci tutte le informazioni che vuoi quindi non hai limiti.

    L'utente accetta il contratto già dal momento che installa il programma, le Condizioni, Licenza d'Uso, ecc. le puoi specificare nell'installer, che prevede già tutte queste caratteristiche.

    Su come crittografare un file trovi un'esempio qui:

    Crittografia (CAPICOM2)
    http://nuke.vbcorner.net/Progetti/VB...T/Default.aspx

    Naturalmente è solo una delle tante procedure.


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    22

    Per Gibra

    Ti ringrazio per le delucidazioni molto istruttive.
    Sono rimasto molto arretrato....

    Vedrò di studiarmi Capicom2 , però ho letto adesso che è rivolto al VB6.
    Io col VB5 lo potrò usare ?

    Una cosa che non ho capito però è : come fa il programma a controllare la chiave criptata e controllarla ?
    Non dovrebbe confrontarla con uno script già presente nel file .exe compilato ?
    E questo script come potrebbe avere la chiave esatta se ancora non la conosco neppure io ?
    Inoltre se lo script è crittografato, il programma non deve decrittarlo per leggerlo ?
    Insomma .... ho le idee confuse.

    Facciamo un esempio :
    1) l'utente mi spedisce (naturalmente con una email , no ?) il cognome , il nome e il C.F.
    2)Sempre per esempio la mia chiave prevede da posizione 1 a 10 il cognome , da 11 a 20 il nome e da 21 a 37 il C.F.
    3)Riempio questi campi e li do in pasto alla routine che li cripta.
    4)Prendo il file criptato e lo mando per email al cliente.
    5)Il cliente lo inserisce in una text.box del mio programma.
    6)il programma controlla la chiave ...... ma che controllo fa ?

    Che cosa controlla ?
    Controlla se nelle posizioni indicate ci siano degli script ?
    E quali script ?
    Non posso esserci anche solo cazzate ?
    Il programma come fa a sapere se sono cazzate o no ?

    Si .... sono proprio confuso, scusami per la mia ignoranza su queste cose.
    Mi potresti spiegare il tutto come se fossi un fanciullo alle prime armi ?

    Grazie
    Claudik

  4. #4
    facciamo un esempio semplice, con solo il nome

    1. l'utente installa il programma "vergine"
    2. il programma vede che non c'è il file chiave
    3. quindi chiede di inserire il nome: es. "Mario"
    4. il programma scrive un file che il cliente ti dovrà rimandare indietro con una mail
    5. tu con un programmino leggi il file che ti ha mandato l'utente
    6. generi la chiave corrispondente (facciamola semplice: "oiraM" ... Mario al contrario)
    7. spedisci la chiave al cliente
    8. che la copia nella cartella del programma
    9. il programma parte, si accorge che c'è la chiave
    10. cerca quindi (a partire da "Mario") di rigenerare la chiave (con lo stesso algoritmo del programmino che hai usato tu al punto 6/7
    11. se la chiave generata dal programma corrisponde al file chiave, il programma parte regolarmente

    devi solo sbizzarrirti con l'algoritmo di crittografazione


  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: Per Gibra

    Originariamente inviato da Claudik
    Ti ringrazio per le delucidazioni molto istruttive.
    Sono rimasto molto arretrato....
    Capita...

    Originariamente inviato da Claudik
    Vedrò di studiarmi Capicom2 , però ho letto adesso che è rivolto al VB6.
    Io col VB5 lo potrò usare ?
    Non ho VB5, ma non mi riuslta che esista una qualche limitazione, perchè Capicom2 è indipendente dal linguaggio.

    Originariamente inviato da Claudik
    Una cosa che non ho capito però è : come fa il programma a controllare la chiave criptata e controllarla ?
    Non dovrebbe confrontarla con uno script già presente nel file .exe compilato ?
    E questo script come potrebbe avere la chiave esatta se ancora non la conosco neppure io ?
    Inoltre se lo script è crittografato, il programma non deve decrittarlo per leggerlo ?
    Insomma .... ho le idee confuse.
    Non funziona così.

    Originariamente inviato da Claudik
    Facciamo un esempio :
    1) l'utente mi spedisce (naturalmente con una email , no ?) il cognome , il nome e il C.F.
    2)Sempre per esempio la mia chiave prevede da posizione 1 a 10 il cognome , da 11 a 20 il nome e da 21 a 37 il C.F.
    3)Riempio questi campi e li do in pasto alla routine che li cripta.
    4)Prendo il file criptato e lo mando per email al cliente.
    5)Il cliente lo inserisce in una text.box del mio programma.
    6)il programma controlla la chiave ...... ma che controllo fa ?
    1, 2, 3, 4 -> SI
    5, 6 -> NO

    Il tuo programma all'avvio se non trova il file crittografato, chiamiamolo DATI.DAT, funziona in versione DEMO/TRIAL/ecc.
    Se trova il file DATI.DAT lo legge utilizzando logicamente la stessa chiave di cifratura utilizzata per crearlo.
    A quel punto lo confronta con i dati inseriti dall'utente.
    Tutte queste domande fanno capire che non hai guardato l'esempio che ti ho segnalato.
    Male, perchè avresti già capito tutto.

    Puoi creare un GUID (che può essere utilizzato come una sorta di chiave di registrazione) da inviare in chiaro al cliente e che inserirai allo stesso tempo nel tuo file DATI.DAT.
    Quando l'utente inserisce il GUID il tuo programma lo confronta con quello del file DATI.DAT, ecc. ecc. ecc.

    Originariamente inviato da Claudik
    Si .... sono proprio confuso, scusami per la mia ignoranza su queste cose.
    Mi potresti spiegare il tutto come se fossi un fanciullo alle prime armi ?
    Abbi pazienza, ma questo è un forum tecnico, in cui, tra l'altro, questo argomento è pure OT, perchè come già detto NON è inerente al linguaggio, non stiamo parlando di codice, ma di procedure.
    Non possiamo (e non è permesso) metterci a fare corsi personalizzati.

    Basta che vai a scaricarti il progetto e studiartelo.
    Essendo in VB6, probabilmente dovrai ricostruirti il progetto e copiarti il form ed il codice 'a manina'.

    Basta navigare su Internet e trovi tutte le risposte che vuoi. Mica sono segrete!


  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    22
    Gibra e Optime molto obbligato per la vostra gentilezza.

    Gibra , sono andato nel link da te suggerito ma ci sono cose che non vanno.
    Eccole :

    "Ricordate che deve essere presente sul vostro computer la libreria CAPICOM.
    Se non l'avete, qui a destra troverete il link per scaricare il SDK che contiene anche numerosi esempi in diversi linguaggi. Inoltre potrete vedere che l'utilizzo della CAPICOM 2 va ben oltre a questo semplice progetto di esempio!"

    1) la libreria CAPICOM dove la vado a pescare ?
    2) a destra non c'è un tubo !

    3) Ho scaricato invece il progetto col bottone in alto a sinistra (previa registrazione al sito) dove dice "scarica il progetto". Non dovrebbe essere questo che mi fa scaricare l'SDK ?
    Però quando apro il file .vpp mi da sempre l'errore : "Retained è una chiave non valida. Impossibile caricare il file".

    Che cavolo vuol dire ? Riguarda forse l'editor di VB ? Io ho sempre usato solo l'editor di default.

    Quindi ho 3 problemi.

    Che devo fare ?

    Grazie
    Claudik

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    1. Tra i link indicati a destra.

    2. C'è, ma devi essere loggato.
    (forse il tubo ce l'hai nell'occhio...)

    3. Il progetto è per VB6, quindi come ti ho già detto dovrai ricostruirtelo per VB5.

  8. #8
    cla, crittografare la chiave è (IMHO) l'ultimo dei problemi. metti in piedi tutto il giro (che è indipendente dal linguaggio) e poi alla fine (e solo alla fine) ti preoccuperai della chiave.

    ok?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    22
    Gibra ero loggatoooooooooooooooooooo !!!
    Non mi prendere per deficiente.
    Scarso si ma deficiente no.
    Comunque , sapete una cosa ?
    Mi sto facendo da solo una programmino per criptare/decriptare con relativo form.
    Ora vi allego il Form e lo script (nelle sue linee generali) e vediamo che ne pensate.
    Se mi date l'ok continuo altrimenti lo butto a mare.

    Visto che non riesco ad allegare il .vpp lo incollo qui. Non riesco ad allegare neanche la foto del form in jpeg !

    ================================================== ============

    Option Explicit

    Dim nome_programma, archivio As String
    Dim Cognome_utente As String * 20
    Dim Nome_utente As String * 15
    Dim email As String * 30
    Dim Tel_fisso, Cellulare As String * 15
    Dim Text_aggiunto As String * 20
    Dim Numfile1, Param(1 To 9) As Integer
    Dim Chiave_generata As String * 69
    Dim ix, iy, iz As Integer
    --------------------------------------------------
    Private Sub Form_Load()

    azzera

    Text8(1).Text = Day(Date)
    Text8(2).Text = Month(Date)
    Text8(3).Text = Year(Date)

    End Sub
    --------------------------------------------------
    Private Sub Command1_Click()

    azzera

    nome_programma = Text5.Text
    Cognome_utente = Text6.Text
    Nome_utente = Text7.Text
    email = Text9.Text
    Tel_fisso = Text10.Text
    Cellulare = Text11.Text
    Text_aggiunto = Text1.Text

    For ix = 1 To 9
    Param(ix) = Text2(ix).Text
    Next ix

    Cripta
    scrivi_file

    End Sub
    --------------------------------------------------
    Public Sub Cripta()
    '<<< Routine di criptazione >>>

    End Sub
    --------------------------------------------------
    Public Sub scrivi_file()
    '<<< Registra la chiave >>>


    End Sub
    --------------------------------------------------
    Private Sub Command2_Click()

    decripta '<<< oppure posso anche cercare la chiave leggendo il file registrato >>>

    mostra_dati

    End Sub
    --------------------------------------------------
    Public Sub decripta()
    '<<< Routine di decriptazione >>>

    Chiave = Text4.Text

    End Sub
    --------------------------------------------------
    Public Sub mostra_dati()

    '<<< qui edita i dati ricavati dalla decriptazione >>>

    End Sub
    --------------------------------------------------
    Public Sub azzera()

    nome_programma = ""
    archivio = ""
    Numfile1 = ""
    Cognome_utente = ""
    Nome_utente = ""
    email = ""
    Tel_fisso = ""
    Cellulare = ""
    Text_aggiunto = ""
    ix = 0
    iy = 0
    iz = 0

    For ix = 1 To 9
    Text2(ix).Text = ""
    Next ix

    End Sub

    ================================================== ================
    Claudik

  10. #10
    Originariamente inviato da Claudik
    Scarso si ma deficiente no.


    Originariamente inviato da Claudik
    Comunque , sapete una cosa ?
    Mi sto facendo da solo una programmino per criptare/decriptare con relativo form.
    Ora vi allego il Form e lo script (nelle sue linee generali) e vediamo che ne pensate.
    Se mi date l'ok continuo altrimenti lo butto a mare.
    boh, pare ok, anche se è vuoto. l'importante è che funzioni

    buon lavoro

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.