Newsgroup: it.comp.lang.visual-basic
Titolo: Protezione Software lancio la sfida ...

Salve gente
Qualche giorno fa ho postato un messaggio circa la protezione che uso io per
i miei software, e cioè usando il seriale dell'HD, ovviamente come
limitazione ha che se il cliente mi formatta il disco devo ridargli una
nuova chiave di attivazione. Molti si sono scatenati sul fatto che tanti
usino il seriale dell'HD come sistema di protezione ... ma invece di non
condividere la soluzione perchè non ci strizziamo il cervelletto è troviamo
una soluzione plausibile che permetta di:
1) Avere un chiave di attivazione unica per posto di lavoro (quindi niente
UserName con relativa Password perchè è la forma di protezione più inutile
del mondo visto che Username e password viene passata insieme al programma)
2) Avere la possibilità che tale chiave non debba mai cambiare nemmeno se il
cliente formatta il disco che è il limite del mio sistema...
Forza diamoci dentro ... aspetto vs idee ....
Ciao

 Ciao
Ricavare il numero di serie UNICO dell'HD memorizzato sul'eprom dell'HD
stesso
Ciao
Sir Jo

 stesso
Non male, non ci avevo pensato.
Ma:
1) se l' hd viene sostituito ?
2) se l' installazione viene trasmigrata su un altro hd ?
Buon Anno, Sir
Aldo

 wrote in message
92n2lf$79g0j$2...@ID-56381.news.dfncis.de...

Ciao Aldo.
Questo sistema lo isavo per i programmi in DOS ed era una buona soluzione
(non ottimale).
Dagli HD si ricava la marca, il modello, e (non tutti) il numero di serie.
Se l'HD viene sostituito ovviamente cambia il numero di serie.
Il problema però è che funziona solo su HD IDE e non sgli SCSI
Per me la soluzione ottimale rimane la chiave hardware da collegare
alla porta parallela che ormai hanno prezzi accettabili (intorno alle 80.000
lire).
Mi è successo infatti parecchie volte che il cliente cambi l'HD, cambi PC
eccetera..........
Per fortuna alcuni dei miei programmi si basano su un codice identificativo
dell'azienda
(ad esempio le delegazioni ACI hanno un codice identificativo) e quindi
uso la protezione su questo codice, per altri programmi uso chiavi hardware.
Ciao e buon anno anche a te
Sir Jo

Visto che più di uno me lo chiede, vi posto il source per leggere i dati
dall'EPROM dell'HD.
La buona notizia è che è molto semplice, sono solo delle istruzioni IN e
OUT, ma la
brutta notizia è che non funziona in ambiente Windows perchè leggendo dalla
porta &H1F7
non so perchè ma ricevo sempre un &HFF.
Se invece riavvio in modalità MS-DOS, tutto OK.
Io posto il sorgente, se qualcuno lo sistema per Windows, please, si faccia
sentire..............
Ciao
Sir Jo
----------------------------------------------------------------------------
----------------------------
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <bios.h>
char *getascii (unsigned int in_data [], int off_start, int off_end);
char dati[514];
unsigned int dd [256]; /* DiskData */
unsigned int dd_off;   /* DiskData offset */
void main (void)
{
printf("\nTestDisk Version 1.1\n\n");
while (inp(0x1F7)!=0x50);  /* Wait for controller not busy */
outp(0x1F6,0xA0);
outp(0x1F7,0xEC);   /* Get drive info data */
while (inp(0x1F7) != 0x58);  /* Wait for data ready */
for (dd_off=0; dd_off!=256; dd_off++) dd[dd_off]=inpw(0x1F0);
printf("Model Number______________________: %s\n",getascii(dd,27,46));
printf("Serial Number_____________________: %s\n",getascii(dd,10,19));
printf("Controller Revision Number________: %s\n\n",getascii(dd,23,26));
printf("Able to do Double Word Transfer___: %6s\n",(dd[48]==0 ?
"No":"Yes"));
printf("Controller type___________________:   %04X\n", dd [20]);
printf("Controller buffer size (bytes)____: %6u\n", dd [21] *512);
printf("Number of ECC bytes transferred___: %6u\n", dd [22]);
printf("Number of sectors per interrupt___: %6u\n\n", dd [47]);
printf("Hard Disk Reports\n");
printf("Number of Cylinders (Fixed)_______: %6u\n", dd [1]);
printf("Number of Heads___________________: %6u\n", dd [3]);
printf("Number of Sectors per Track_______: %6u\n\n", dd [6]);
}
char *getascii (unsigned int in_data [], int off_start, int off_end)
{
  static char ret_val [255];
  int loop, loop1;
  for (loop = off_start, loop1 = 0; loop <= off_end; loop++)
    {
      ret_val [loop1++] = (char) (in_data [loop] / 256);  /* Get High byte
*/
      ret_val [loop1++] = (char) (in_data [loop] % 256);  /* Get Low byte */
    }
  ret_val [loop1] = '\0';  /* Make sure it ends in a NULL character */
  return (ret_val);
}

 Sir Jo
Prima che qualcuno lo sistemi per Windows mi sa tanto che occorre
"sistemarlo" per VB.....
Bye, Enrico.
================================
Dim VbEnry As Enrico
vbe...@supereva.it
================================

Secondo me sono più sicure le chiavi Hardware...
Ciao.

 wrote in message
news:vmK36.216394$hk4.8...@news.infostrada.it...


 wrote in message
vmK36.216394$hk4.8...@news.infostrada.it...


 "sistemarlo" per VB.....
Certo, il sorgente che ho postato è per Turbo C in DOS.....................
Ciao
Sir Jo

 precedentemente registrati simulando in questo modo la chiave hardware.
Una volta, adesso la chiavi hardware contengono anche parti di codice
(alcune), oppure lavorano ricevendo una stringa dati da passare in algoritmo
e restituire, quindi i dati in entrata variano sempre, come variano sempre i
dati restituiti.
Ciao a tutti!

 ha scritto nel messaggio
news:92lrjr$bs...@news.edisons.net...

Be... si potrebbe identificare il disco rigido in qualche modo...
Ad esempio Marca, Modello, N° di Cilindri, Testine, Settori etc.
Come limitazione rimarrebbe però che:
- Chi acquista il tuo programma e lo vuole passare ad un'altro
  gli può dire di comprare lo stesso HD uguale al suo (ma dovrebbe
  conoscere come funziona il sistema di protezione...)
- Quando viene cambiato il Disco, gli dovrai dare una nuova chiave...
  però cambiare disco (e/o computer) non è poi così frequente come
  purtroppo è diventata la formattazione...
--
Buon Natale e Felice Anno Nuovo
Ciao!
----------------------------------------------------------
* AutoQuote! (1.08.0001), il programma FREEWARE che quota
* VELOCEMENTE i messaggi che Outlook Express non quota in
* automatico!!!
* Lo trovi nel mio sito, sezione "I Miei Programmi"
===========================================================
Daniele Pinna  Email: 
dan...@dapinna.com
Nell'indirizzo Email eliminare la parola "OOPS."
Sito Web: Il DoCFa in Pillole: 
http://dapinna.freeweb.org
ICQ UIN: 24567484              
http://www.dapinna.com

OK! Posso essere d'accordo (hai descritto uno schema di sprotezione), ma chi
arriva a quel livello ti disassembla il programma comunque e rimuove la
protezione...
La protezione software è un deterrente, credimi, è giusto applicarla per
evitare che chiunque possa copiare il programma.
E' tanto più efficace quanto la tiratura del tuo programma è limitata.
Quindi se io faccio un software e ne distribuisco quindici copie, sono
tranquillo con la maggior parte degli schemi di protezione, altrimenti posso
proteggere nel modo che mi pare e entro poche settimane, come per magia, c'è
qualcuno che mi craccka il software.
Il metodo dell'ID del disco non è male, però non illudetevi... se c'è
interesse a farne una copia, si farà... quindi è inutile diventare matti.
Io se distribuisco dieci copie di un S/W ci metto una chiave hardware (punti
di vista comunque, io accetto il fatto che, purtroppo, se qualcuno vuole
copiare, lo farà!).
Pesci molto più grossi di noi si sono fatti copiare il software.
In ogni caso applicare uno schema di protezione (come quello di questo post)
a meno chè non comporti il diventare matti, è utile, se diventa invece di
sforzo eccessivo non so quanto ne valga poi la pena... (però sono punti di
vista, che io rispetto!)
Paolo Ferraresi.

Infatti, so che hanno fatto parecchi progressi, d'altronde sono
professionisti della protezione...
L'idea comunque del'ID di una scheda o un Hard-Disk non è male, tant'è che
software house famose che forniscono soluzioni di CAD aziendale, proteggono
il loro software con l'ID della scheda di rete...
purtroppo ho sentito parlare di versioni patch-ate... quindi... basta solo
prendersi la briga di sproteggere...e se un programma diventa di publico
interesse... si sprotegge.
Perchè Windows e Office si copiano? Non sono nemmeno protetti? Perchè niente
potrebbe proteggerli?
Perchè invece se vendo io un programma magari ho poco interesse a scrivere
codici anti-copia ma so che funzionerebbero?
Io per fortuna scrivo programmi che interessano a pochi e quindi non devo
fare troppi sforzi per proteggere (e non voglio nemmeno doverci pensare
troppo).
Ma per carità non è la pubblicità delle chiavi hardware, anzi...basta una
patch e via la chiave hardware... però chi la fa la patch... uno che ti
sprotegge qualsiasi cosa...per le prime, ok, c'erano dei wrapper che
sproteggevano, per quelle attuali è più complicato proprio perchè sono
dotate di logica e non sono più solo di elementi passivi...


 Quindi grazie dell'idea ... ma ha troppe limitazioni ....
In questo caso perchè non usare licenze di rete su di un server? Tipo FlexLM
(TM).
Ciao da Paolo Ferraresi.

 wrote in message
92lrjr$bs...@news.edisons.net...


 interesse... si sprotegge.
Vero.
Comunque il sistema più "Bastard Inside" di cui ho sentito parlare finora
usa la chiave hardware, con processore interno, che esegue algoritmi
necessari per il funzionamento del programma. Anche questo può essere
simulato da un crack ben (...mal...) fatto. In vari punti del programma, ben
nascosti, e con metodi di accessi diversi, esegue dei controlli sull'esistenza
della chiave. Se non la rivela, continua a funzionare _QUASI_ regolarmente...
Chissà perché però, i calcoli eseguiti danno dei risultati diversi ogni volta.
Immaginate cosa succede quando uno dei calcoli si riferisce per esempio,
alla struttura in Cemento Armato di un palazzo...
Ho sentito anche di un antivirus che craccato fa degli scherzetti strani se
scopre un virus... il resto alla vostra immaginazione. :-)))
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: gaetano_d(AT)
hotmail.com

Non so se è un sistema valido cmq un software della Siemens (WinCC) si
protegge utilizzando delle "chiavi software". Sono dei files contenuti in un
dischetto che vengono installati sull'HD. Sono protetti contro la copia,
infatti un limite del sistema è l'impossibilità di spostare fisicamente i
files nell'HD (vietata la deframmentazione).
In pratica per poter utilizzare il software con tutte le funzionalità
occorre trasferire i files contenenti le autorizzazioni necessarie dal
dischetto all'HD, se poi si trasferisce il software su un'altra macchina o
se si cambia/formatta HD è possibile parcheggiare di nuovo i files sul
dischetto per ritrasferirli successivamente.
C'è da dire che viene fornito anche un secondo dischetto con dei files
d'emergenza (durata 15 gg), forse per via della scarsa affidabilità dei
dischetti o in caso di crash dell'HD(???)
Ciao

le vende con tutti i MAC uguali. Magari a 00:00:00:00...
c'è di peggio: tutti i Windows hanno installato di default un emulatore di 
scheda di rete (il PPP adapter) con un mac address identico...

"fidelizzare" il cliente in caso di change hardware.
lo usa la Borland, per fare un esempio illustre
l'installazione di Delphi5 Enterprise calcola un codice al momento
dell'installazione. Tu lo spedisci alla Borland, paghi, e loro ti danno la
chiave per eliminare la modalità trial

Esiste una istruzione asm ( il VB consente l'impiego di istruzioni
in assembly? ). L'istruzione si chiama come da oggetto "CPUID", e può
ritornare parecchi valori, fra i quali il modello esatto di processore e il
numero
di serie di ogni processore. Il processore in genere è il componente che si
guasta meno e che si sostituisce più di rado, inoltre due processori non
possono avere il medesimo CPUID. Per ulteriori informazioni andate
sul sito 
www.intel.com
 . Io tempo fa avevo usato il sistema del CPUID
per prendere in giro alcuni miei amici (il programma funzionava solo
sui computer che volevo io:-)  )
Comunque sul sito della intel ci dev'essere l'Application Note, scaricatelo,
è molto interessante.
Saluti a tutti by
Claudio

 eccetera..........
Be ma sono *in genere* cmq "eventi" rari, rispetto alla formattazione...
E cmq può risolvere la situazione nei casi in cui non si vuole aumentare
il costo di vendita di un programma delle 80'000 lire della chiave
hardware...


 ha scritto nel messaggio
news:92tfa7$esm$1...@lacerta.tiscalinet.it...

Inoltre, se non sbaglio, si può disabilitare la visione da bios.
--
Buon Anno e Felice 3° Millennio


 ha scritto nel messaggio
news:Pg846.222096$hk4.8...@news.infostrada.it...

Be l'idea non è male... veniva usata qualche cosa di simile da
alcuni programmi, come ad esempio la prima versione di "Errata
Corrige"...
Cmq non è vietato deframmentare, bisogna però evitare di usare
il defrag di Windows... Usando, ad esempio, lo speed disk di
Norton, si possono impostare alcuni file da "non toccare".
