Bug dello Xor
From UIC
Il bug dello xor fu scoperto nel 2005 da un frequentatore assiduo di #crack-it vale a dire Figaro`... Anzi, Figaro`Cool. Il merito della scoperta è completamente suo, infatti dopo essersi cimentato con le peripezie algebriche dell'OR-esclusivo, portò alla luce due incredibili risultati:
- Xorando una stringa con se stessa si ottiene uno 0, per cui lo xor può comprimere ogni stringa in input in una stringa di output lunga 0 bit
- Lo xor ha un bug!
La scoperta numero 2 è diretta conseguenza della 1, infatti sebbene lo xor sia in grado di comprimere indefinitamente una stringa in ingresso, presenta lo spiacevole effetto della perdita di contenuto. Il fatto stesso che A ^ A = 0 fu per Figaro` uno shock tremendo che lo portò alla seguente conclusione: si tratta di un bug, non c'è dubbio.
Figaro` in effetti fece subito una terza scoperta: partendo dal principio che A ^ B = C e C ^ B = A scoprì immediatamente che il processo di offuscamento poteva essere scalato su più di chiavi... Addirittura 2. A seguito di ciò creò un crackme incrackabile che però venne immediatamente crackato da qualcuno. Ma Figaro` non perse la speranza e creò un secondo crackme invincibile, sfruttò infatti il bug dello xor, dal momento che qualunque chiave veniva xorata con se stessa, non era possibile ottenere nessun risultato diverso da 0, e di conseguenza non si poteva superare il check nel crackme, che era più o meno così:
MessageBox(..., "Serial Corretto", ...);
else
MessageBox(..., "Serial Errato", ...);
Tuttavia nonostante le dimostrazioni matematiche che i più pazienti gli dedicarono, lui uscì dal canale fiero di se, sicuro di aver creato un crackme... Incrackabile. Perciò se ve lo stavate chiedendo, la risposta è si, esiste un bug nello xor, quindi attenti!
Il bug dello xor (che ricordiamo essere: A ^ A = 0) prese il nome dello scopritore e fu ribattezzato in seguito: Effetto Figaro`.