Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.net] Aggiungere la protezione ad un exe

    Buonasera, cercherò di spiegare passo passo cosa vorrei fare altrimenti mi rendo conto che non può risultare chiara la situazione:
    Vorrei che alcuni programmi (eseguibili exe) si aprissero solo se hanno il regolare autorità.
    Per controllare l'accesso ho deciso di creare una licenza basata sul serial number di una chiave usb che dovrà debitamente essere inserita per il funzionamento della licenza.
    Ho quindi un file exe e voglio che venga eseguito solo se la la condizione di verifica licenza è accettata. Per fare questo penso di creare un file che controlli la licenza prima e che contenga l'exe nativo che a sua volta viene eseguito se il processo di licenza va a buon fine.
    Consigli?

    [File Generato]
    Contenuto 1 : [Controllo licenza]
    Contenuto 2 : [Programma nativo EXE]

    PS: il file nativo non deve essere quindi estratto dall'exe generato ma eseguito.

  2. #2
    Non ho capito bene: parli di un eseguibile che contiene al proprio interno (cioè come risorsa) il programma vero e proprio, però vorresti evitare l'estrazione....

    Ma perchè non fare tutto con un solo eseguibile?

    E poi perchè basarsi sul SN della chiave USB?

    In ogni caso, se il software è veramente interessante, qualcuno potrebbe sempre *disasseblare* il programma e togliere tutte le protezioni, ovviamente entrando nel campo dell'illegalità.
    E' opporturno quindi avere più informazioni circa i destinatari, lo scopo (professionale o meno) e l'eventuale tipo di protezione (semplice o avanzata) che vuoi raggiungere.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Si, mi sembra uno dei tanti metodi che si possono implementare per licenziare un software. Bisogna vedere come vorresti costruire le licenze.

    Sbagliare è umano, perseverare è diabolico.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Premetto che questo è un'argomento OT, ma scrivo comunque la mia opinione, perchè credo sia importante interrogarsi bene, prima di imbarcarti in un impresa che può risolversi in un nulla di fatto, ovvero un lavoro inutile.

    Pensa se tutti i programmi che hai sul tuo computer richiedessero la chiave hardware ?
    Quante chiavi USB dovresti avere ed usare contemporaneamente?
    E se usi un notebook che fai? Devi portatele dietro tutte?

    Ritengo sia una strada assolutamente da non percorrere perchè vecchia e non più adeguata.
    Stessa cosa per l'eseguibile 'dentro' un'altro eseguibile: tecnica obsoleta, perchè al giorno d'oggi qualsiasi firewall/antivirus ti blocca l'esecuzione in quanto viene interpretato come codice nascosto e quindi malevolo.

    Una cosa è sicura : la protezione con chiave hardware non è né migliore né peggiore di quella software. Se un cracker vuole sproteggere il software ci riesce, non c'è protezione che tenga, perchè gli basta intercettare le istruzioni eseguite nella fase di controllo ed il gioco è fatto.
    Esistono in rete molti programmi gratuiti e guide complete (addirittura dei video!) su come sproteggere un programma, prova a fare una ricerca...

    Tieni che qualsiasi controllo viene fatto solo ed esclusivamente a livello software, infatti è il tuo programma che confronta il numero seriale quindi la chiave hardware è inutile!
    Quindi perchè infastidire il cliente con un ulteriore chiave USB quando la stessa cosa la puoi fare a livello software?
    Basta usare le CryptoAPI per generare un file crittografato basato su una tua chiave software e che contiene i dati dell'AZIENDA che ha acquistato il tuo software.
    Poi nelle barra di stato e nelle stampe mostri quei dati. Il file lo invii dopo il pagamento.
    Senza tale file, il programma funziona in modalità DEMO.

    In aggiunta si può anche generare una chiave univoca legata all'installazione su quella determinata macchina che richiede un codice di sblocco per togliere le limitazioni della DEMO (funzionalità, numero di esecuzioni, tempo concesso, ...).
    Questo serve ad esempio nei programmi utilizzati in rete LAN su più postazioni in cui ogni postazione deve avere la propria licenza, quindi il programma principale è licenziato correttamente. Ma quando si installa sul client, la licenza deve essere installata per quel determinato computer, altrimenti funzionerà in modalit DEMO.

    Spesso mi sono sentito chiedere dai miei probabili acquirenti:
    "Spero che il vostro programma non usi una chiave hardware USB, non ne possiamo davvero più di 'ste chiavette!!!"

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Possiamo sapere i motivi che ti spingono a usare le licenze? Motivi economici, di sicurezza??


    Una cosa è sicura : la protezione con chiave hardware non è né migliore né peggiore di quella software. Se un cracker vuole sproteggere il software ci riesce, non c'è protezione che tenga, perchè gli basta intercettare le istruzioni eseguite nella fase di controllo ed il gioco è fatto.
    Il problema non si pone se sviluppi un software custom per un'azienda, sicuramente non sarà un software di pubblica utilità per cui nessun cracker si occuperà mai del tuo software e l'azienda piuttosto che pagare un cracker per sbloccare il tutto pagherà te per un'altra licenza.

    Sbagliare è umano, perseverare è diabolico.

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.