PDA

View Full Version : [C++] Funzione per avere identificativo del PC


TonyManero
02-03-2004, 08:56
Salve,
Mi servirebbe una funzione che mi restituisca un numero, nome, seriale... insomma una qualsiasi stringa o numero univoco che mi identifichi il singolo PC. Mi serve per fare un grossolano sistema anti compia.

Grazie!!! :)

cionci
02-03-2004, 09:38
Se si tratta di Windows...un sistema di base potrebbe essere collezionare in una stringa le varie informazioni ritornate da:

GetVersionEx (informazioni sulla versione dell'OS)
GetSystemInfo (informazioni sulla/e CPU)
GetComputerName (nome del computer)

e poi con frne l'MD5... salvi l'MD5 all'interno dell'eseguibile e lo confronti ogni volta (o di una DLL, così devi solamente ricompilare quella)... Mgari salvalo in forma numerica e non sotto forma di stringa...

TonyManero
02-03-2004, 10:39
Originariamente inviato da cionci
Se si tratta di Windows...un sistema di base potrebbe essere collezionare in una stringa le varie informazioni ritornate da:

GetVersionEx (informazioni sulla versione dell'OS)
GetSystemInfo (informazioni sulla/e CPU)
GetComputerName (nome del computer)

e poi con frne l'MD5... salvi l'MD5 all'interno dell'eseguibile e lo confronti ogni volta (o di una DLL, così devi solamente ricompilare quella)... Mgari salvalo in forma numerica e non sotto forma di stringa...

Grazie! ;)

Si, si tratta di Win...
no sono molto pratico... avevo bisogno di una cosa veramente da fare "al volo"... giusto per dare un minimo di protezione... per evitare che basti fare il "copia e incolla" della cartella di installazione del software.


Non ho capito però l'ultima.... l' MD5....

cionci
02-03-2004, 10:43
http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

Serve per avere un fingerprint di una stringa di testo... Crea un codice con scarsissima probabilità di ripetersi fra stringhe diverse...e non puoi ritornare alla stringa partendo dal risultato...

TonyManero
02-03-2004, 10:45
Argh!!! Na.... troppo "advanced" :D :D

Già ci capisco poco nelle prime tre che mi hai consigliato...
Ritornano delle robe che vanno infilate nelle struct...

Non c'è una funzione "stupida" che ritorni un int o una semplice stringa? :confused:

cionci
02-03-2004, 10:46
No...
md5 è facile da usare...nel link c'è già il codice C++ pronto...

TonyManero
11-03-2004, 08:05
Originariamente inviato da cionci
Se si tratta di Windows...un sistema di base potrebbe essere collezionare in una stringa le varie informazioni ritornate da:

GetVersionEx (informazioni sulla versione dell'OS)
GetSystemInfo (informazioni sulla/e CPU)
GetComputerName (nome del computer)

e poi con frne l'MD5... salvi l'MD5 all'interno dell'eseguibile e lo confronti ogni volta (o di una DLL, così devi solamente ricompilare quella)... Mgari salvalo in forma numerica e non sotto forma di stringa...

Una domanda... e così magari smetto di scassare sul forum una volta per tutte!! :D

Ora, io per trovare una funzione che fa una data cosa (vedi sopra) trovo che il metodo più veloce (e anche l'unico che conosco) sia postare qua sul forum ( :D ).
Cosa dovrebbe fare invece un buon programmatore? Qual'è il metodo più veloce per trovare qwual'è la funzione che serve?

Per esempio a me adesso servirebbe sapere se c'è, e in caso positivo come si chiama, una funzione che dia come risposta il percorso in cui è l'eseguibile che contiene la funzione stessa.
Qual'è la prassi più intelligente da seguire per trovare 'sta funzione?

ri
11-03-2004, 08:11
scrivere la descrizione di quello che ti serve in inglese su google

cmq se usi le MFC:

CString filePath = GetModuleFileName( GetModuleHandle(NULL) );

TonyManero
11-03-2004, 08:45
Originariamente inviato da ri
scrivere la descrizione di quello che ti serve in inglese su google


E' quello che già facevo! Ma è circa 1000 volte più veloce chiedere qua... Il mio spirito da sanguisuga prevale... :D

Probabilmente però, con l'esperienza, uno può anche andare ad intuito e immaginarsi direttamente quale nome debba avere una tale funzione... no? :confused:


Originariamente inviato da ri
cmq se usi le MFC:

CString filePath = GetModuleFileName( GetModuleHandle(NULL) );

MFC?

Grazie per la funzione! E per i consigli. :)

ri
11-03-2004, 13:40
M.F.C. = Microsoft Foundation Class (mi pare eh...)
tutte le librerie microsoft per la gestione dell'interfaccia grafica e non solo

cmq si, con l'esperienza riesci ad immaginarti come possano averla chiamata... (oddio, a volte ci sono cose impensabili, ma vabeh)