1.CONECTAR EL LECTOR A UN PC:
Hay dos maneras para alimentar el lector cuando está conectado a un PC:
1) Desde la XBOX 360
2) Desde la fuente de alimentación de tu PC o un adaptador externo de 12V.
La opción 1 es la más facil, pero no es tan segura como la opción 2. Para la opción 1 haz esto:
1) Conecta el lector de DVD a tu XBOX360 usando el cable de alimentación para el lector que te viene dentro de la consola.
2) Conecta el lector de DVD a tu PC usando un cable SATA estándar.
3) Conecta la carcasa de tu PC a la carcasa de la 360 usando unas pinzas.
4) Enciende la XBOX 360
5) Enciende el PC
El paso 3 no es estrictamente necesario en este caso, pero es un buen hábito para prevenir sustos.
La opción 2 es más complicada, pero es más segura y no tendrás que encender la consola para usar el lector. El siguiente circuito alimentará el lector de la 360 desde la fuente de tu PC:
Es posible que sea util arrancar el lector en el PC y despues cambiarlo a la consola sin apagar el lector para que mantenga su estado. Para alimentar el lector desde una fuente externa de 12 o más voltios, se requiere un adaptador principal y reguladores de voltaje adicionales (7805) para generar la corriente de +5v.
NOTA: Todo lo referente a este punto se aplica al lector Hitachi-LG, no para el Toshiba-Samsung.
2. Hacer que el lector Hitachi sea detectado en Linux y Windows:
Depende de como tengas conectado el cable SATA a tu PC. Hay tres maneras diferentes:
1) Adaptador PATA - SATA
2) Tarjeta PCI SATA
3) Controlador SATA nativo
Hay un método que he probado en los tres casos, y funciona perfectamente. Desafortunadamente, requiere soldadura y desoldadura. Haz esto:
1) Quita la carcasa del lector, 4 tornillos
2) Localiza la resistencia R214. Está en un grupo de 6 resistencias entre el conector SATA y la MN103 MCU.
3) Quita la resistencia R214.
4) En el cable de alimentación del lector, quita la cubierta de la linea tray_status para descubrir el conector (no cortes el conector). Si sujetas el lector horizontalmente con la parte de arriba del lector mirando al techo y miras el conector de alimentación en la parte de atrás del lector, la linea tray_status es el segundo pin desde la izquierda en la columna de atras de pines.
5) Suelda una resistencia de 10k en la parte descubierta del conductor de la linea tray_status.
6) Suelda la otra patilla de la resistencia a un switch que tenga 3.3V y masa (puedes obtener los 3.3 voltios del tercer pin desde la izquierda en la columna de atrás. Masa esta disponible en cualquiera de los 4 pines de más a la derecha de la columna de arriba).
7) Antes de encender el lector, selecciona 3.3v en el switch para funcionamiento normal y masa para el modo debug, que posibilita que el lector funcione en Windows, Linux y en cualquier sistema operativo.
Otro método que supongo que funcionará para cualquier tipo de conexión SATA, es un parcheo del firmware. No lo he probado, pero se que un hacker lo ha hecho funcionar así. Tengo unas enormes sospechas de que también funcionará con el adaptador y la tarjeta PCI. Obviamente, esto supone que eres capaz de flashear el chip del firmware de tu lector. Tienes que parchear el siguiente código en la cabecera del comando INQUIRY.
ROM:00024F6D movbu (word_5BD), D0 ; D0 = packet[5]
ROM:00024F70 mov 0xC0, D1 ! '+'
ROM:00024F73 and D1, D0 ; clear all bits except for (vendor-specific) bits 6 and 7
ROM:00024F75 cmp D1, D0 ; are both bits set?
ROM:00024F76 beq loc_24F80 ; yes, so continue
ROM:00024F78 mov 0xD, D0 : no, so fail
Si no te gusta ninguna de estas dos opciones, también tienes disponibles las siguientes. Tendrás muchas más oportunidades de que funcione utilizando un adaptador PATA-SATA:
1) Si usas un adaptador PATA-SATA, simplemente abre y cierra la bandeja durante el arranque para que el lector sea detectado por LINUX.
2) Si usas un adaptador PATA-SATA o tu placa tiene legacy mode en el controlador SATA, puedes usar el siguiente programa para iniciar el modo debug que harías con la modificación hardware. Esto debería hacer que el lector se detectara por windows después de un reinicio (ten cuidado de que el lector no se apague) y tal vez ejecutando "Encontrar nuevo hardware" en vez de reiniciar (sin probar).
Descargar código fuente
Descargar binarios
3) Si tu lector se detecta en Linux pero no en Windows, inicia linux y ejecuta el siguiente programa. Después reinicia en Windows (ten cuidado de que el lector no se apague). Windows debería detectarlo.
modeb.c
4) Los usuarios de linux deberían echarle un ojo a los excelentes esfuerzos de Probutus para que el lector funcione en linux.
5) Para los usuarios de Windows, durante mis test con SATA nativo, a veces me he dado cuenta de que windows detecta el lector pero no le asigna letra. Para asignarle una ve al Administrador de discos y asignale una.
(pantallazo)
3. Dumpear el firmware del Hitachi desde un PC:
Hay un comando de debug en el lector que nos permite dumpear la memoria del lector. Hay medidas de seguridad para evitarlo, pero son un completo fallo. El siguiente programa dumpeará tu firmware:
memdump.c Código fuente del hex memdump para Linux
memdump_win.zip Binarios del hex memdump para Windows
memdump_win_src.zip Código fuente del hex memdump para Windows
Ejemplo en Linux:
$ ./memdump /dev/hdc 12200 8 8000 ./firmware.bin
Ejemplo en Windows:
C:\> memdump_win e 12200 8 8000 firmware.bin
Tan simple como esto.
4. Dumpear los "rangos prohibidos de RAM" 0x8002EC00-0x80037300 y 0x8003A000-0x8003A300
Con esto revelaremos estos rangos que contienen información tan interesante :). De nuevo, las medidas de seguridad para prevenir el dumpeo de estos rangos, son un fallo total. Usando el siguiente comando, dumpearemos todo el contenido de la RAM, los "regiones prohibidas" están en los offsets 0x2EC00-0x37300 y 0x3A000-0x3A300 del archivo resultante.
Ejemplo en Linux:
$ ./memdump /dev/hdc 10200 8 8000 ./ram.bin
Ejemplo en Windows:
C:\> memdump_win e 10200 8 8000 ram.bin
5. Dumpear la key única del lector:
Esta key se usa para encriptar y desencriptar algunas transferencias ATAPI durante la autentificación del disco.
Ejemplo en Linux:
$ ./memdump /dev/hdc 91004F0 1 10 ./key.bin
Ejemplo en Windows:
C:\> memdump_win e 91004F0 1 10 key.bin
6. Escribir en la región de memoria que quieras del lector Hitachi desde un PC
Una combinación del ModeSelect y los comandos de debug del Hitachi, te permite escribir donde quieras del espacio de direcciones del lector. El siguiente programa te permite trabajar con pocos bytes, pero el mismo principio se puede usar para cualquier cantidad de datos, no solo para pocos bytes.
pp.c Código fuente de peek/poke para Linux
pp_win.zip Binarios del peek/poke para Windows
pp_win_src.zip Binarios del peek/poke para Windows
Ejemplos en Linux:
$ ./pp /dev/hdc 40000000 peek
$ ./pp /dev/hdc D98D poke 30
Ejemplos en Windows:
C:\> pp_win e ABF peek
C:\> pp_win e 804A4B4C poke F2
7. Forzar al Hitachi a ejecutar código arbitrario desde un PC
Una combinación del ModeSelect y los comandos de debug del Hitachi, te permiten ejecutar código del MN103 en el lector. El siguiente programa lo hará por ti. NOTA: Puede llevar un tiempo si tratas de mandar demasiado código.
execcode.c Código fuente de execcode para Linux
execcode_win.zip Binarios del execcode para Windows
execcode_win_src.zip Binarios del execcode para Windows
Ejemplos en Linux:
$ ./execcode /dev/hdc ./code.bin
Ejemplos en Windows:
C:\> execcode_win e code.bin
Con esto y la información contenida en
este hilo al que practicamente nadie hizo ni caso, está toda la información necesaria para preparar un firmware modificado.