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

    [DELPHI]Esiste un codice che identifica in modo univoco un computer?Come lo recupero?

    Volevo chiedervi se esiste un codice che permette di identificare in modo univoco un computer, ad esempio un seriale del bios, del processore o qualcosa del genere. Sapete scrivermi il pezzo di codice Delphi utile per recuperarlo?

    Mi serve per un sistema di protezione da copie che sto realizzando...

  2. #2
    Volevo chiedervi se esiste un codice che permette di identificare in modo univoco un computer, ad esempio un seriale del bios, del processore o qualcosa del genere. Sapete scrivermi il pezzo di codice Delphi utile per recuperarlo?

    Mi serve per un sistema di protezione da copie che sto realizzando...
    Non esiste un codice univico ed universale, i codici legati all'hardware vengono solitamente creati come combinazione di diversi elementi (CPUid, indirizzo MAC, identificativo della motherboard, ...).

    Creare un sistema di protezione da copie efficace richiede una conoscenza approfondita della materia, se chiedi "sapete scrivermi il pezzo di codice Delphi utile per recuperarlo" un hacker da strapazzo impiega 30 secondi per forzare il tuo schema. In altri termini: non puoi difendere qualcosa se non ne conosci i punti deboli, implementare un algoritmo per la generazione di codici hardware è davvero l'ABC del programmatore.

    Prendi spunto dai componenti open-source TurboPower OnGuard.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    Non avendo a che fare con hacker e non essendo poi fondamentale la protezione del programma mi accontenterei di una funzione che recupera l'ID della CPU...

  4. #4
    Non avendo a che fare con hacker e non essendo poi fondamentale la protezione del programma
    Nel messaggio precedente hai scritto: "Mi serve per un sistema di protezione da copie che sto realizzando". Quindi mi sembrava ovvio che in un sistema di protezione fosse fondamentale la...protezione! Da chi dovrebbe proteggere il sistema di protezione delle copie che stai realizzando?

    accontenterei di una funzione che recupera l'ID della CPU...
    Non esiste un "ID della CPU", se non per alcuni vecchi modelli di Intel Pentium III (per i quali l'ID poteva anche essere disabilitato dall'utente).

    Come ti ho detto anche prima i codici legati all'hardware vengono calcolati come combinazione di più elementi, per assicurarsi una certa robustezza nel caso di componenti hardware mancanti.

    Potresti creare una stringa partendo dalla funzione cpuid, combinarla con l'indirizzo MAC per poi calcolarne l'hash SHA1. Il risultato può essere considerato un "codice hardware" minimale.

    Rinnovo il consiglio di dare un'occhiata alla funzione CreateMachineID della libreria OnGuard.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    Ti spiego: il problema che voglio evitare è che copiando il file exe da un pc all'altro sul secondo pc il programma continui a funzionare. Non ho bisogno di un sistema complesso o molto sicuro, perchè le persone che utilizzeranno il programma non sono in grado di "implementare un algoritmo per la generazione di codici hardware".

    Avevo pensato a una cosa del genere: ogni volta che si avvia il mio programma questo va a leggere nel registro un valore e lo confronta con un codice univoco che identifica il pc. Se i due codici sono uguali il programma si avvia correttamente, altrimente manda a video il codice univoco e un messaggio che richiede l'attivazione del programma. Per attivare il programma l'utente mi deve mandare il codice univoco del suo pc, quindi io gli invierò un programmino d'attivazione che non fa altro che scrivere in una voce del registro questo codice (criptato), così al successivo avvio del programma principale questo partirà senza problemi. Naturalmente il codice che andrà scritto nel registro sarà "criptato" per fare in modo che senza il programma di attivazione l'utente non potrà andare a creare la voce di registro perchè non è in grado di ottenere il valore criptato partendo dal codice mostrato a video dal programma non ancora attivato.

    Non so se sono stato abbastanza chiaro, comunque la sostanza è che mi serve un codice univoco (o un insieme di codici) per identificare il pc. Ho trovato un programma che stampa l'id della cpu: pensavo di usare quello, ma siccome hai detto che questo id non esiste volevo chiederti cos'è il codice che mi stampa questo programma (ho allegato uno screenshot) e se, qualunque cosa sia, secondo te va bene al mio scopo. Ti ringrazio per l'aiuto.
    Immagini allegate Immagini allegate

  6. #6
    Ho trovato un programma che stampa l'id della cpu: pensavo di usare quello, ma siccome hai detto che questo id non esiste volevo chiederti cos'è il codice che mi stampa questo programma (ho allegato uno screenshot) e se, qualunque cosa sia, secondo te va bene al mio scopo.
    Dovresti chiederlo allo sviluppatore del software in questione...

    In questa pagina del repository Torry.net trovi diversi wrapper per l'istruzione CPUID, un'istruzione supportata da buona parte dei processori moderni (achitettura IA32/64) che restituisce informazioni sulle feature disponibili per un dato modello di processore. L'output della CPUID non è però univoco, però puoi usarlo (come detto più volte) combinato con altri parametri per generare un codice specifico, magari tramite un algoritmo di hashing.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

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 © 2024 vBulletin Solutions, Inc. All rights reserved.