Visualizzazione Stampabile
-
Dump Validator
Premetto che non so se questa è la sezione giusta ma a me sembrava la più appropriata.
A tempo perso sto facendo un programmino per la verifica dei dump e diciamo che concettualmente sono a buon punto, soltanto che non riesco a capire come poter sistemare la funzione relativa alla ricerca statistica all'interno del dump. Qualcuno di voi ha mai avuto esperienze dirette con una cosa del genere ? avete qualche consiglio ?
Thanks :friendly_wink:
-
Sto facendo un programma simile e ce ne sono diversi più completi per la verifica del dump, primo fra tutti flowrebuilder. Se lo vuoi fare per puro piacere ecco il codice per le statistiche
Codice:
RandomAccessFile file = new RandomAccessFile ( fileName, "r");
long [] statistiche = new long[256];
byte [] buffer = new byte [1024];
int indice;
int n;
file.seek(0);
while ( ( n = file.read(buffer) ) > 0) {
for ( int i = 0; i < n; i++){
indice = buffer[i] & 0xFF;
statistiche[indice]++;
}
}
float stat;
int flag = 0;
for ( int i = 1; i < 256-1; i++ ) {
stat = (float) statistiche[i]*100/16777216;
if (stat > 0.5) flag++;
}
float zeros = (float) statistiche[0x00]*100/16777216;
float ffs = (float) statistiche[0xff]*100/16777216;
System.out.println("zeros="+zeros+", ffs="+ffs+", byte sopra lo 0,5% trovati="+flag);
-
Grazie carloss, si in effetti come dicevo lo sto facendo per curiosità a tempo perso (ovvio che se viene fuori un buon lavoro nulla mi vieta di condividerlo qui sul forum), la cosa carina è che a differenza degli altri tool questo ti dice su quale parte del file la verifica è fallita; per ora mi sto concentrando sulla classica tabella di ps3devwiki:
- Confronto dei due dump
- Statistiche
- Controllo delle regioni e del bootloader
- Pattern finding (il giochetto dei magic headers che nel wiki sta alla voce repetitions)
- Posizione e grandezza di metdlr e bootldr
- Bytereverse ed estrazione
Credo che questi passaggi possano bastare per stabilire la validità del dump, in seguito mi piacerebbe aggiungere qualcosa per la ricostruzione delle sezioni danneggiate (ove possibile ovviamente), questo perchè spesso può capitare un dump pressochè perfetto ma con un errore in una determinata regione, che in teoria potrebbe essere fixato direttamente.
Secondo te c'è qualche controllo importante che mi sta sfuggendo o quelli che ti ho elencato sono sufficienti ?