Sono abbastanza convinto che sia un errore grossolano.
Sono anche convinto che il metodo descritto faccia acqua e non porti al risultato sperato, almeno nel mio caso.
Oppure posso aver anche sbagliato io qualcosa, ma direi di aver seguito il metodo descritto.
Ricordo, per riprendere il post precedente che l'obbiettivo era:
- Vogliamo/dobbiamo lavorare dal nostro sistema Linux
- Abbiamo un sistema windows XP installato su un PC, non necessariamente il PC in uso, ma ovviamente dobbiamo avere accesso almeno al disco che ospita l'installazione di xp
- Si vuole determinare il Product Key di quel sistema
I. Background:
Il prooduct key è il seriale di 25 caratteri alfanumerici riportato sull'adesivo COA, quello che si deve inserire per attivare il prodotto. Se il sistema è preinstallato di fabbrica dalla casa produttrice "Royalty OEM". Allora il product key con qui risulta attivato il sistema (e che determineremo con la procedura in oggetto) non coinciderà con quello dell'adesivo e non si potrà utilizzare per eventuale attivazione manuale.
Dove si trova il prductkey all'interno del sistema operativo XP:
Si trova in formato codificato in una voce del registro:
Codice: Seleziona tutto
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId
Se lavorassimo in windows avremmo vari tool per accedervi e decifrarlo automaticamente vedi i vari EKeyfinder ecc ecc.
Ma noi vogliamo lavorare da linux e quei tool non ci servono.
Che cos'è "HKLM\SOFTWARE"?
Ok è una sottodir del registro, ma è anche fortunatamente un banale file. Quale di preciso?
Se abbiamo montato la partizione di XP in /mnt/tmp
Che roba è, che tipo di file?
Codice: Seleziona tutto
/mnt/tmp/WINDOWS/system32/config/software: MS Windows registry file, NT/2000 or above
II. Procedura
Codice: Seleziona tutto
$ cp /mnt/tmp/WINDOWS/system32/config/software .
$ chntpw -l software
chntpw version 0.99.6 110511 , (c) Petter N Hagen
Hive <software> name (from header): <emRoot\System32\Config\SOFTWARE>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 686c <lh>
File size 33554432 [2000000] bytes, containing 7571 pages (+ 1 headerpage)
Used for data: 584839/32933192 blocks/bytes, unused: 5487/223320 blocks/bytes.
Simple registry editor. ? for help.
> dpi Microsoft\Windows NT\CurrentVersion\DigitalProductId
Value <Microsoft\Windows NT\CurrentVersion\DigitalProductId> of type REG_BINARY, data length 164 [0xa4]
Decoded product ID: [PXQ**********************]
> q
$
Banalmente la riga di nostro interesse è:
Decoded product ID: [PXQ**********************]
Nel mio caso ho verificato leggendo il COA sul cassone ed effettivamente è proprio lo stesso.
Se cercate in rete "come ottenere il il product key di xp da linux"... Saltano fuori una marea di risposte che esortano ad usare BootCD particolari e spessissimo risposte ridicole del tipo: leggilo sull'adesivo.
Cose del genere capitano quando si ha a che fare con software chiuso e con licenze a dir poco pittoresche.
Però purtroppo si può avere a che fare con una situazione del genere, come dicevo ad esempio capita il tizio con sistema installato PC non avviabile CD perso e adesivo sul CD pure: niente paura un boot cd linux con chntpw e via product key ritrovata e reinstallazione/attivazione possibile.
A me di tutto ciò non è che poi interessasse troppo. Ero solo curioso di trovare il mio product key in modo più laborioso più che altro per sfida.
E comunque si può fare anche se ha poco senso, infatti chntpw puà stamparci il contenuto codificato della voce "Microsoft\Windows NT\CurrentVersion\DigitalProductId".
Il contenuto appare come quando si accede ad un binario con hexedit o hexdump.
Si tratta di capire dove sono posizionate le cifre corrispondenti al product key. Ci si può arrivare penso perchè quel file è piccolo, sono 10 righe di numeri esadecimali didposti su 6 colonne.
Penso che non ci siano dubbi sul fatto che il tutto sia perfettamente legale.
Vi aggiornerò nel caso riuscissi a decodificare quella roba.
Alla prossima.