Web Analytics

Xbox_SMC

⭐ 58 stars Dutch by Prehistoricman

🌐 Taal

Xbox_SMC

PIC16/Xyclops dumps van de originele Xbox en IDA-databases met enige reverse engineering.

Afbeelding van PIC16LC63A uit een originele Xbox

Xyclops flashen (XycloMod)

Zie
de Xyclops map en README

Dumps

Het .bin-bestand voor elke PIC-dump heeft de bytes omgewisseld voor correcte laading in IDA. Dus het eerste woord van het PIC-geheugen is byte_0 + byte_1 << 8.

De .idb IDA-databases bevatten informatie over variabelen en enkele observaties op het database-notitieblok.

Zie deze wiki-pagina voor een overzicht van de SMC-versies: https://xboxdevwiki.net/Xboxen_Info

B2A

Gedumpt van een DVT3 Xbox. Zelfde configuratiewoord als P01. Het heeft ook het apparaat-ID ingebrand in het configuratiegebied als 0000 0000 000B 002A, in tegenstelling tot de productie-PICs.

De boot-uitdaging ontbreekt volledig.

D01

Gedumpt van XDK BETA 2 Xbox. Identiek aan P01 behalve dat de boot-uitdaging ontbreekt. De functie om de verwachte boot-uitdagingsrespons te berekenen is er nog, maar wordt nooit aangeroepen.

DXF

Gedumpt van een XDK D2 debug kit. Zeer vergelijkbaar met D01 maar met iets andere lade-logica, oververhittingslogica en bootlogica. Boot-uitdaging ontbreekt op dezelfde manier als bij D01.

D2E

Gedumpt van een Tuscany (v1.6) dev kit. Xyclops-chip is gemarkeerd als X01202-001, en mist de A-A02 of A-B01 lijn die retail-units hebben.

De debug-seriecode bij FC00 komt overeen met de retail P2L-dump. Er is een vreemd patroon van data van 0x4000 tot 0xFBFF.

P01

Gedumpt van een v1.0 Xbox. Het configuratiewoord is 0x86: Een configuratiewaarde van 0x3FB6 is geschikt voor SMC-klonen zodat ze geen codebescherming hebben ingeschakeld.

P11

Gedumpt van een v1.3 Xbox. Zelfde configuratiewoord als P01.

Er zijn een paar kleine wijzigingen in P11 ten opzichte van P01, waaronder een extra SMBus-commando (schrijf 0x22), andere LED-prioriteiten en meer ontspannen timings voor het opstarten.

Ik heb gescrambelde dumps van v1.3 vergeleken met v1.4 en ze kwamen overeen. Dit betekent dat het zeer waarschijnlijk is dat ze hetzelfde programma hebben.

P2L

Gedumpt van een v1.6 Xbox. Xyclops revisie A-A02. Het bevat Intel 8051-code maar heeft veel speciale functieregisters waarvan de functie onbekend is.

De debug-serie wordt aangestuurd door de code op FC00. Het lijkt op een eenvoudige debugger die uitvoering kan pauzeren, data kan dumpen en naar registers/RAM kan schrijven.

Xyclops dumpen

De Xyclops-chip heeft 3 pinnen voor 'debug': TXD (pin 64), RXD (pin 63), en DEBUG (pin 29). Zet de DEBUG-pin hoog om de seriële poort op de TX- en RX-pinnen te activeren. De seriële verbinding werkt op 9600 baud.

Het protocol is gebaseerd op 4-byte commando's die meestal het formaat hebben

Commando 0x14 dumpt telkens 64 bytes BIOS-data en 0x15 dumpt telkens 64 bytes SMC-programmadata. Een dump van Xyclops, P2L.bin, is opgenomen in de repo. xyclops_dumper.py is ook meegeleverd zodat je je eigen apparaat kunt dumpen.

PIC dumpmethodologie

Volledig verslag op https://wiki.recessim.com/view/PIC_Burnout

De PIC heeft zijn codebeveiliging ingeschakeld, waardoor alle data als 0000 wordt gelezen. Ik gebruikte een truc om in plaats daarvan gescrambelde data te krijgen, ontdekte het scramble-algoritme met een opgeofferde chip, en gebruikte daarna een soort exploit om de ROM-data te wijzigen zodat sommige bits op bekende waarden werden gezet. Vervolgens kan ik de benodigde informatie uit de verschillende gescrambelde dumps halen om de originele data te herstellen.

PICProgrammer

PICProgrammer is een van een paar Arduino-projecten voor de RP2040 die ik in mijn onderzoek heb gebruikt. Het biedt een eenvoudige commandoregelinterface om ICSP (in-circuit seriële programmering) bewerkingen op de PIC uit te voeren. Dit wordt verkozen boven het gebruik van een speciaal gebouwde programmer zoals de PICkit vanwege de flexibiliteit en de mogelijkheid om dingen te doen die de fabrikant niet heeft voorzien.

Je moet een goed begrip hebben van elektronica en programmeren voordat je dit gebruikt, en goed kijken naar wat commando's doen voordat je ze uitvoert.

--- Tranlated By Open Ai Tx | Last indexed: 2025-09-20 ---