Newsgroup: it.comp.giochi.action
Titolo: SOF 2 - VIOLENCE LOCK!!!

Tempo fa ho scritto due messaggi riguardo al violence lock di SOF 1.
Vi riporto i messaggi e in più aggiungo ORA una brevissima descrizione del
VLOCK di SOF 2 (presentando soltanto le differenze).
SOF 1 - VIOLENCE LOCK
[...]
Per completare il quadro, ecco dove viene salvata la password:
HKEY_CURRENT_USER\Software\Raven Software\SoF\
Qui, tra le altre cose, troverete:
Server = password criptata!
Ecco alcune corrispondenze: (è un valore binario!)
"30 00 cc 51 0f"    = "" (password disabilitata)
"9b 35 c6 77 9e 39 51 83 8c 51 0f    = "kiuhnm"
Kiuhnm
-----
[nota: tutti i numeri sono esadecimali (in base 16)]
Parlavamo del campo Server!
Il valore binario è formato da due parti: password e checkval.
Se la password è disabilitata, il valore binario è lungo 5 byte.
Ad ogni lettera che si aggiunge, cresce di un byte.
Questo ci porta alla conclusione che:
Server = [password_1_byte_per_lettera][check_val_sempre_5_bytes]
Ora se proviamo a inserire la password (dal menù di SOF)
"aaaaaaaaaa"
vediamo che Server diventa (incolonnato per l'occasione):
91 2D B2 70
91 2D B2 70
91 2D
51 5F 0F 52 0F
Come vedete, i primi 10 bytes costituiscono la password di 10 lettere e gli
ultimi 5 il valore di controllo.
Si vede benissimo che si ripetono 4 numeri (91 2D B2 70).
Non è difficile capire che, presa la password, è sufficiente sommare in modo
ciclico i 4 numeri (90, 2C, B1, 6F).
Inoltre possiamo convertire tutto direttamente in ASCII:
91 = lettera 'A' criptata. In Ascii 'A' = 41, quindi 91 = 'A' + 50.
Lo stesso vale per gli altri: per criptare la password espressa in ASCII, si
sommano ciclicamente i numeri [50, EC, 71, 2F].
Nota: EC viene da BYTE(2C - 40) = BYTE(FFFFFFEC) = EC. Questo vale per
qualsiasi numero: stiamo lavorando con byte!
Per esempio, per risalire alla password senza cancellarla (come invece
accadeva nel "metodo diretto") si può procedere come segue:
Server = "9B 35 C6 77 9E 39 51 83 8C 51 0F"
Usiamo tutti i byte tranne gli ultimi 5 (valore di controllo):
9B 35 C6 77 9E 39
([50, EC, 71, 2F]).
1) 9B - 50 = 4B ('K')
2) 35 - EC = 49 ('I')
3) C6 - 71 = 55 ('U')
4) 77 - 2F = 48 ('H')
5) 9E - 50 = 4E ('N')
6) 39 - EC = 4D ('M')
La password è "kiuhnm" (le password non sono case-sensitive).
Come vedete non serve neanche sapere come viene calcolato il checkval in
quanto la password nuova potete inserirla direttamente dal menu del gioco.
BUG: Mentre cercavo di capire la struttura della password, ho scoperto un
BUG!
La password è limitata a 32 lettere eppure se si prova a inserirne una di
tale lunghezza, SOF aggiorna il registro, ma non riconosce più la password
come valida!
Mi direte che basta troncarla a 31 lettere....NO! Non funziona neanche
quella. Date un'occhiata a come diventa il campo Server e capirete dove sta
l'errore!
(usate la password "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa": semplifica le cose).
Kiuhnm
-----
SOF 2 - VIOLENCE LOCK
E' analogo a quello di SOF 1.
La chiave è:
HKEY_CURRENT_USER\Software\Raven Software\SoF2\ICARUS
I valori ciclici sono:
[E5, F0, 41, 3E] --> (ASCII (-40)) --> [A5, B0, 1, FE]
BUG: Il bug è peggiorato!!! Anche in SOF 2, come in SOF 1, una password di
32 lettere crea problemi (il check_val viene privato di un byte...l'avevate
capito, vero?). Il peggioramento è dovuto al fatto che il menu di SOF 2
permette di scegliere una password di 35 lettere (viene comunque troncata a
32), ma quando ce la richiede, ci permette d'inserire soltanto 22
lettere...roba da matti! Siamo sicuri che quelli che programmano il gioco
siano gli stessi che si occupano del Violence Lock???
Kiuhnm
P.S. Per eliminare la password, usate ICARUS = 85 00 90 E1 DE

 ha scritto nel messaggio
news:rPbF8.56024$CN3.1...@news2.tin.it...
posso darti un bacino?
hehehehehehe
--
Ciao, Dragster

 hehehehehehe
Dai precedenti messaggi devo dedurre che tu sia un machio...in definitiva
penso che impedirņ (in qualche modo) ai programmatori di fare Sof 3,
altrimenti non vedo scampo...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
sto scherzando :-)
Kiuhnm