E perché? DA != 39...
E perché? DA != 39...
Sì ok, DA è il compare dell'hash del CB_B e 39 del CD, ma ad una prima occhiata all'ASM pare che facciano la stessa cosa (ovviamente su BL differenti).
Quello che mi chiedo è: il calcolo dell'hash del CD (37) è molto più breve del calcolo dell'hash del CB_B(D9)? Perché altrimenti non trovo spiegazione...
CD è più piccolo di CB_B e se non sbaglio SHA è polinomiale sull'input, ma c'è veramente così tanta differenza?
Te lo lascio capire da solo...
Lo prendo come un sì.
Al momento non posso verificarlo sulla piastra sotto analisi (RROD), se ne trovo una pre 14xxx faccio la prova del 9, altrimenti resterà un'ipotesi.
Quello che mi induce a pensare che sia corretta è il fatto che RGH2 FAT non usa il PLL e che su Xenon (CPU ref clock fixed) ci si sia fermati alle single CB.
Update for me: cacchio se cambia da RGH1 a RGH2!
Tabella molto "spannometrica" ma che rende abbastanza l'idea:
Ultima modifica di DrSchottky; 26-05-14 alle 23: 04
Ok, dopo un periodo di sosta dettato da cause di forza maggiore mi rimetto al lavoro e chiedo l'aiuto del pubblico: parlando con Swizzy mi ha fatto notare che il mio ECC era spazzatura (avevo commesso una "leggerezza" non indifferente), quindi devo revisionare la parte software.
Quello che non mi è chiaro è la struttura delle patch di xebuild:
-32bit di indirizzo
-32bit di numero patch
-32bit di patch
-Delimitatore(FFFFFFFF)
Prendendo come esempio RGH2 su falcon:
Da quel che capisco:Codice:00 00 69 44 00 00 00 01 60 00 00 00 00 00 6A A0 00 00 00 03 60 00 00 00 60 00 00 00 60 00 00 00 00 00 71 B0 00 00 00 01 38 60 00 00 FF FF FF FF
-Offset 0x6944, una patch: 60 00 00 00
-Offset 0x6aa0, tre patch: 60 00 00 00
-Offset 0x71b0, una patch:38 60 00 00
Le prime 4 sono NOP, mentre l'ultima non ho ancora guardato a che opcode corrisponda.
Corretto il ragionamento?
Quindi ora immagino che debba prendere uno dei CB_B 19XX ( quale? vanno tutti bene?), trovare l'indirizzo delle funzioni da patchare e appilcare i fix, cifrare e impacchettare. Right?
Scusa che ti frega di xebuild per creare l'ecc? Poi se non ricordo jrunner già lo crea.
Xebuild in se a poco, mi interessa sapere quali patch vengono fatte sul CB_B per poi applicarle manualmente al CB_B dell'ECC.
Devi ricavartele.. non è difficile.. poi modifica il build.py e basta
Fatto. Tenendo davanti un 5772 come esempio ho localizzato i 3 fix
-NOP del Panic branch nel caso sia revocato (Post A0)
-NOP dei cmp/branch che portano al panic con Post 0xA3. Non ho ancora capito esattamente il come/perché ma approfondirò.
-Sostituisce un valore in un registro per far combaciare la compare e bypassare il controllo dell'hash.
Ora devo solamente localizzare gli indirizzi dei fix sul CB_B Xenon ( un 1941 va bene?) e patchare+cryptare manualmente o col build.py
Ah, curiosità: avevo letto che veniva disabilitata la cifratura per il loader successivo in modo da poterlo usare in plaintext. Questo dove viene fatto?
Ma cosa stai patchando??
Il CB_B. Perché?
Allora qual è il problema.. Patcha il 1941 e via
Boh, col 1941 proprio non ce ne salto fuori: mi sembra diversissimo dai cb_b delle altre piastre, soprattutto non riesco a capire come stampi sul POST (sembra che le regioni di codice che contengono l'asm per scrivere sulla linea siano riempite con 32bit di zeri), né mi spiego come mai alcuni branch vadano su aree senza codice ma con zeri.
Questi sono gli offest delle patch che ho dedotto.
-0x3d5c
-0x3e90
-0x45a0
Riusciresti a confermarmene la bontà?
usa il 1921
Ma 1921 non è un CB "monolitico"?
Ultima modifica di DrSchottky; 22-06-14 alle 20: 17
...Quindi?
Quindi se voglio fare un ECC universale mi serve per forza il CB_A 9188 zp. Non capisco: posso usare un CB_A per avviare un CB completo?
Ultima modifica di DrSchottky; 22-06-14 alle 20: 30
bah.. prova no?
Mmm ok, non l'avevo nemmeno presa in considerazione come ipotesi.
Comunque: perché il 1941 non va bene?
Segnalibri