
Lo sviluppatore alexfree ha rilasciato un nuovo aggiornamento di EDCRE con una nuova versione 1.0.9. EDCRE è una soluzione avanzata a riga di comando per rilevare e/o aggiornare i dati EDC/ECC in modo che corrispondano a qualsiasi modifica apportata alla traccia dati di un’immagine CD BIN/CUE.
Cosa sono i dati EDC/ECC?
EDC (Error Detection Code) è un checksum che verifica l’integrità della porzione di dati utente di un settore in una traccia dati. Se durante la lettura di un settore l’EDC non corrisponde ai dati letti dall’unità CD, i dati ECC (Error Correction Code) forniscono quindi un modo per correggere i dati in base a quanto previsto nella maggior parte dei casi.
Se una parte significativa del settore risulta illeggibile (a causa di graffi o problemi all’unità) oppure una parte significativa dei dati utente è stata modificata senza aggiornare anche l’EDC/ECC, il sistema crolla, ma funziona piuttosto bene e offre molta più affidabilità e resilienza per la lettura dei CD dati.
Quando modifichi una traccia dati in un’immagine CD (usando un patcher, un editor esadecimale, ecc.), l’EDC e l’ECC originali rimarranno intatti (a meno che il patcher non supporti anche l’aggiornamento di questi), causando una mancata corrispondenza con i nuovi contenuti dei dati utente in tutti i settori modificati, impedendo che le modifiche abbiano effetto o invalidino l’immagine disco quando viene masterizzata su un disco e utilizzata su hardware reale. Di solito questo non è un problema poiché quasi tutti i software di masterizzazione CD scrivono EDC/ECC aggiornati sui dischi masterizzati al volo in base ai dati nella porzione di dati utente del settore. La maggior parte degli emulatori ignora anche i dati EDC/ECC nei settori per progettazione come ottimizzazione/caratteristica.
-
IMGBurn scrive sempre dati EDC/ECC aggiornati e non esiste un modo per disattivare questo comportamento.
-
CDRDAO scrive sempre dati EDC/ECC aggiornati quando si usa il
generic-mmc
driver predefinito. È tuttavia possibile specificare chegeneric-mmc-raw
venga usato al suo posto, il che non modifica i dati EDC/ECC e li lascia così come sono . -
CloneCD scrive sempre dati EDC/ECC aggiornati , a meno che non si utilizzi la modalità di scrittura RAW . Di solito, scrivere dati EDC aggiornati su disco è ciò che si desidera, in questo modo i dati EDC/ECC corrispondenti corretti sono correlati a qualsiasi modifica ai dati utente dei settori trovati in un’immagine disco.
Ma cosa succede se vuoi modificare i dati utente dei settori in una traccia dati di un’immagine disco CD e poi scriverli raw? Questo è esattamente ciò che voglio fare per sconfiggere la misura di protezione antipirateria basata su EDC presente in quasi tutti i giochi Dance Dance Revolution PSX .
Protezione antipirateria PSX EDC
L’idea di una protezione antipirateria aggiuntiva basata su EDC/ECC è brillantemente imperfetta. Vedete, gli strumenti Sony per generare immagini disco all’epoca erano pieni di bug . Uno di questi bug sembra essere che i settori riservati 12-15 , che sono riempiti con zero nella porzione di dati utente del settore, hanno anche un checksum EDC pari a zero . Il checksum corretto per un settore di dati utente riempito con zero dovrebbe essere 3F 13 B0 BE
, ma non lo è . È 00 00 00 00
come il resto del settore oltre ai dati di sincronizzazione. In pratica, questo non ha importanza, quindi il bug è passato inosservato e i settori tecnicamente non validi 12-15 sono stati spediti su veri CD-ROM PSX con licenza.
Qualcuno che lavorava ai giochi Dance Dance Revolution PSX notò questo strano comportamento e capì che poteva essere sfruttato come ulteriore misura di protezione antipirateria. Se i veri CD-ROM PSX con licenza fossero stati spediti con un checksum EDC pari a zero nel settore 12-15, allora quando qualcuno andò a copiare il vero CD-ROM PSX con licenza e poi lo masterizzò di nuovo su un CD-R, il checksum EDC nel settore 12-15 non sarebbe più 00 00 00 00
, sarebbe il previsto 3F 13 B0 BE
. Il codice di gioco può leggere il checksum EDC sul disco nel settore 12 e una routine potrebbe quindi bloccare il gioco se i dati EDC sono diversi da zero per scoraggiare la pirateria.
Soluzione alternativa per la protezione PSX EDC con EDCRE
EDCRE ha una soluzione semplice per consentire alle immagini disco PSX modificate/patchate che hanno EDC Protection di funzionare su hardware PSX reale. Utilizzando l’ -s 16
argomento, non puoi toccare il settore selezionato (12) e invece rigenerare solo i dati EDC/ECC per tutti i settori dati a partire dal settore descrittore del volume di sistema (16/LBA 166).
se masterizzi l’immagine disco RAW usando CloneCD o CDRDAO . Allo stesso tempo, qualsiasi modifica/patch apportata a un’immagine disco PSX avrà dati EDC/ECC corrispondenti (poiché tali modifiche saranno sui dati di gioco stessi che iniziano al 16° settore), consentendo alle patch della traccia dati di funzionare correttamente su hardware reale.
Utilizzo
EDCRE è un programma a riga di comando. Su Windows e sulla maggior parte delle distribuzioni Linux, puoi semplicemente trascinare e rilasciare il file “track 01.bin” del gioco PSX per cui vuoi aggiornare i dati EDC/ECC.
Se vuoi vedere informazioni più dettagliate e/o se vuoi aggiornare i dati EDC/ECC per tutti i settori (ciò che probabilmente vuoi se il file bin della traccia dati non è un gioco PSX protetto da EDC ma qualcos’altro), devi eseguire edcre
con le opzioni della riga di comando:
Utilizzo: edcre
Il file bin della traccia dati. Questo è il primo (ad esempio traccia 01) o unico file bin in un’immagine cd bin/cue
Argomenti facoltativi:
-v Verbose, visualizza ogni numero LBA del settore contenente dati EDC non validi, se presenti.
-t Testa l’immagine del disco per i settori che contengono EDC/ECC non validi. Non modifica in alcun modo il file bin della traccia dati.
-s Avvia la rigenerazione EDC/ECC al numero di settore successivo all’argomento -s invece che al settore 0. Ad esempio, -s 16 avvia la rigenerazione al settore 16 (LBA 166) che sarebbe il volume di sistema per un’immagine disco PSX (e ciò che è consigliato nella maggior parte dei casi). Tuttavia, gli utenti di TOCPerfect Patcher vogliono -s 15 qui.
-k Mantieni i dati dell’intestazione di settore esistenti dal file di dati. Ciò impedisce a EDCRE di rigenerare MM:SS:FF nell’intestazione di settore. Utile per testare o rigenerare EDC/ECC in un frammento di file immagine disco (ad esempio, l’ultimo pregap della traccia dati di un’immagine Dreamcast GD-ROM non inizia al settore 0 ed è un file separato).
Windows
-
Avviare cmd.exe e fornire il file eseguibile.
-
Fornire eventuali argomenti aggiuntivi (
-v
,-t
-s <sector number>
,-k
). -
Fornire il file bin della traccia dati dell’immagine disco come ultimo argomento (che deve essere l’argomento 1, 2 o 3 a seconda di quanti argomenti aggiuntivi, se presenti, si stanno utilizzando) ed eseguire il comando, ad esempio:
edcre.exe -v "track 01.bin"
Linux
-
Avviare il Terminale e fornire il file eseguibile.
-
Fornire eventuali argomenti aggiuntivi (
-v
,-t
-s <sector number>
,-k
). -
Fornire il file bin della traccia dati dell’immagine disco come ultimo argomento (che deve essere l’argomento 1, 2 o 3 a seconda di quanti argomenti aggiuntivi, se presenti, si stanno utilizzando) ed eseguire il comando, ad esempio:
./edcre -v "track 01.bin"
Changelog
- Corrette le build di Windows, chiudendo il problema n. 3 .
- Per tutti i sistemi operativi, se viene specificata la modalità solo test (
-t
), il file di input viene aperto in sola lettura, il che è più corretto. Altrimenti viene aperto in lettura/scrittura in modo che EDC/ECC possa essere aggiornato se necessario. - L’
-v
argomento verbose() ora visualizza quali settori/lbas non sono validi, se ce ne sono. Senza specificare la modalità verbose, non viene più stampato per impostazione predefinita quali settori esatti necessitano di aggiornamento di EDC/ECC e si ottiene solo il report di scansione alla fine che indica quanti lo sono stati. Ciò è più coerente con il modo in cui la modalità verbose visualizza già solo quali settori/lbas sono stati corretti, piuttosto che solo una somma di quanti nel report di scansione. - Aggiornato il sistema di compilazione EzRe alla versione 1.0.3. I file del pacchetto RPM vengono ora generati per i386 e x86_64 Linux.