Línia 37: Línia 37:
#verificar que clau_registre ^ password_secret == nº de serie de la clau Exemple:
#verificar que clau_registre ^ password_secret == nº de serie de la clau Exemple:
{|class=wikitable
{|class=wikitable
!Nom
!Nom||ASCII
!colspan=10|Hex
!colspan=10|Hex
|-
|-
|clau registre||64||59||45||5d||3e||10||64||5e||14||66
|clau registre||-||64||59||45||5d||3e||10||64||5e||14||66
|-
|Password||Power To The Penguin||00||36||32||38||4c||30||30||31||34||32
|-
|clau_registre ^ password||-||34||36||32||38||4c||30||30||31||34||32
|-
|Nº serie||4628L00142||34||36||32||38||4c||30||30||31||34||32
|-
|-
|}
|}

Revisió del 10:47, 30 jul 2012

Protecció Actual (Sentinel)

S'utilitza una clau USB Sentinel SuperPro. La clau conté 64 cel·les, cada cel·la amagatzema 16bits. S'utilitzen de la següent manera:

0x0e
.
.
0x3f||DISPONIBLE||-
Cel·la(Hex) Dades Exemple
0x00 ? 0x00d9
0x01 ? 0xd4e9
0x02
.
.
0x07
NO USAT -
0x08 nº de execucions restants de la demo
Si és la versió completa conté 0xffff
0xffff
0x09
0x0a
0x0b
0x0c
0x0d
nº de serie de la clau codificat en ASCII
2 caracters per cel·la en BigEndian.
Ex:4628L00124
0x3436
0x3238
0x4c30
0x3031
0x3432

Procediment per validar la clau

Per poder treballar amb la clau primer s'ha de inicialitzar la lliberia amb els següents passos:

RNBOsproFormatPacket(packet, SPRO_APIPACKET_SIZE); // Inicialitzem el buffer que usarà la llibreria per comunicar-se amb la clau
RNBOsproInitialize(packet);                        // Inicialitzem la llibreria

Un cop inicialitzada, s'ha de buscar la clau amb les funcions RNBOsproFindFirstUnit(packet, dev_id) per trobar la primera clau, i RNBOsproFindNextUnit(packet) per passar a la següent clau.

Per validar la clau es procedeix de la següent manera:

  1. llegir la posició 0x08 (amb RNBOsproRead) i:
    1. si el valor llegit és 0 -> Error la demo s'ha acabat
    2. si el valor és diferent de 0xffff, decrementar-lo usant RNBOsproDecrement
  2. llegir les posicions 0x09 a 0x0d per obtenir el nº de serie de la clau
  3. verificar que clau_registre ^ password_secret == nº de serie de la clau Exemple:
Nom ASCII Hex
clau registre - 64 59 45 5d 3e 10 64 5e 14 66
Password Power To The Penguin 00 36 32 38 4c 30 30 31 34 32
clau_registre ^ password - 34 36 32 38 4c 30 30 31 34 32
Nº serie 4628L00142 34 36 32 38 4c 30 30 31 34 32

Alternatives

Opció Descripció Requeriments HW Pros Contres
A Usar nº de serie + dades en la EEPROM del FT2232H
  • Cap
  • Barat
  • No HW extra
  • Fàcil de copiar
  • Fàcil de modificar
B FT2232H + sentinel
C FT2232H + PIC18F88 emulant EEPROM
D