Avisos
Respuesta  
Tema : La Eeprom De Nagra  
Herramientas
  post #1  okaki está desconectado
Antiguo
15-Jul-2008, 21:49
Avatar de okaki
okaki
Mas información Mensaje Spam
Poder de Credibilidad: 42
okaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la famaokaki tiene una reputación que sobrepasa la fama
Fecha de Ingreso : 19-November-2007
Ubicación : En bilbao pues
Mensajes : 4.850
Predeterminado La Eeprom De Nagra

Segundo tutorial sacado de otro foro

Zona de código

En nagra1 todas las versiones de las rom similares pero no iguales, eso también pasaba en seca, en general la división entre zona de datos y la de código no tiene por que ser fija, por ejemplo en la rom3 (también rom7) la eeprom va de E000 a EFFF siempre empieza por la zona de código pero en E030 está escrito donde comienza la zona de datos, así si leemos esa posición veremos E400 y por lo tanto desde ahí empieza para ellas la zona de datos, en las rom10 y 11 la posición de inicio está escrita en C080 que podemos ver que contiene D000.

En todas las rom lo primero que nos encontramos al principio es la zona que físicamente es diferente al resto de la eeprom es la llamada OTP (one time programable, es típica de esta arquitectura de micros y en seca no había) que va desde C000 hasta C01F en rom10 y 11 y desde E000 hasta E01F en rom3, esta zona es especial y, como su nombre indica, solo se puede escribir una vez, es decir en principio está a 0 y si se pone un 1 en un bit cualquiera ya no se puede volver a cambiar. En esa zona reside información característica de cada card el primer octeto se denomina MFGINFO y en el último byte denominado MAPNABLE, que como dice tomi06 si lo cambiamos la tarjeta deja de funcionar al llamar al punto de entrada de MAP (en $2800 está el punto de entrada para las librerías del coprocesador, que no es directamente accesible por el micro) ya que deshabilita el mapa de funciones y la tarjeta se cuelga. Al principio algunos ataques de los proveedores consistía en escribir en la zona OTP en tarjetas mosceadas poniedo algún bit a 1 si detectaban en la tarjeta código escrito por personas ajenas a la casa, lo cual les permitía inutilizar dichas tarjetas mandando el código adecuado que solo ejecutaban las marcadas en ese bit (también de forma accidental algunos de los primeros scripts para unlooper escribían en esa zona).

Luego están las backdoor de la eeprom que debe tener entre 32 y 60 bits a 1, en caso contrario la considera inválida, si tiene menos copia otra backdor que está grabada en rom y se puede seguir usando, si tiene más se bloquea la tarjeta esto es igual para todas las versiones.

Luego en $C0A1 rom10 y 11 o en $E051 rom3 está el tamaño de la tabla de bugcatchers si lo ponemos a 0 la tarjeta se creerá que no hay ninguno y no buscará los parches que arreglan los bugs por eso se ponen a cero. El lugar de comienzo de la tabla está en la rom10 y 11 en C0D3 y en la rom3 en $E09B aunque podría empezar en otro lugar pues la dirección de inicio se escribe en $E07C (rom3).

Una vez que estamos en la tabla de bugcatchers la organización de la misma es así AA BB CC DD dos bytes indican la rutina de rom que parcheamos y los otros dos la dirección en la eeprom (por supuesto de la zona de código) donde reside el parche; por tanto cuando se quiere añadir un parche para una rutina se busca una zona libre para ponerla y se escriben esos cuatro bytes al final de la tabla de bugcatchers aumentando el tamaño de la tabla a su vez en 4 bytes.
¿Cómo sabe la tarjeta que hay un parche?. Pues porque han tenido la precaución de poner antes de cada rutina de rom que preveían que podía tener un fallo la instrucción swi (interrupción por software) y la rutina que maneja la interrupción la han escrito de forma que consulta la tabla y busca si hay algún parche para ella, si lo hay lo ejecuta y si no devuelve el control.

Zona de datos

La zona de datos es una base de datos elemental, hay varias rutinas en rom para manejarla. Tenemos registros de varios tipos, cada uno tiene una cabecera de 3 bytes el primero es un separador y vale siempre 07 (en realidad este byte se usa para el control de errores si tiene otro valor quiere decir que el registro no es válido y la tarjeta al inicializar si puede repara el error o lo marca como no válido y el espacio que ocupa se considera como libre), el segundo es la longitud del registro, el tercero el tipo de registro (01 info de ird casada, 02 info proveedores de visión, 07 info de clave, 08 canales contratados, 0By 11 info PPV, 0C info de crédito, ….)

ZONA DE CODIGO
DESDE C000 HASTA CFFF

C000: 97 B4 20 19 38 5C A7 00 27 00 00 00 00 00 00 FF | —´ .8.§.'......ÿ ->Si se modifica algo = muerte segura
C010: FF FF FF FF FF FF FF FF FF FF FF FF 0B 01 F4 00 | ÿÿÿÿÿÿÿÿÿÿÿÿ..ô.
C020: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
C030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
C040: AE 09 1C 70 C4 E1 98 3F B9 AE D9 25 B0 62 A9 50 | ®..pÄá˜?¹®Ù%°b©P ->Backdoor 0
C050: D2 BE 3D 5C 89 B3 ED 5F 92 14 08 7B 92 5A 90 C8 | Ò¾=.‰³í_’...’Z.È ->Backdoor 1
C060: 4D 56 38 55 E8 68 80 A1 F1 C9 AD 1D D0 9E BC 33 | MV8Uèh€¡ñÉ..Ð.¼3 ->Backdoor 2
C070: 15 13 9B 97 90 73 9B CF 7E AB 2D 0F 61 76 F3 CE | ..›—.s›Ï~«-.avóÎ ->Backdoor 3
C080: D0 00 52 65 76 42 30 39 cc cc cc cc 27 05 0D 0B | Ð.RevB09.Š®Ý'... ->Rev y cam

C0A0: 2D 00 4E 69 70 50 45 72 20 49 73 20 61 20 62 75 | ..NipPEr Is a bu ->Bugcatchers(abierta)
C0A0: 2D 30 4E 69 70 50 45 72 20 49 73 20 61 20 62 75 | ..NipPEr Is a bu ->Bugcatchers(cerrada)

C0D0: 00 00 29 99 63 C1 DA 83 64 C5 16 82 A5 C2 19 65 | ..)™cÁÚƒdÅ.‚¥Â.e
C0E0: 63 C2 22 81 F2 C2 30 59 14 C4 86 96 F6 C3 7B 65 | cÂ".òÂ0Y.Ć–öÃ.e
C0F0: 3E C3 8A 99 8A C3 B1 69 CF C4 6F 58 6A C4 75 99 | >Ê™ŠÃ±iÏÄoXjÄu™
C100: 86 C4 CD 00 00 00 00 00 00 00 00 00 00 00 00 00 | †ÄÍ.............

En los bytes en azul, tenemos la tabla de los bugcatchers, formada de la siguiente forma: Tomamos bloques de 4 bytes y los dos primeros bytes indican la rutina de ROM que parcheamos y los dos siguientes indican la dirección en la eeprom donde reside el parche. En este caso concreto, vemos que hay 48 Bytes Dec = 30 Hex bytes, por lo que se ejecutaran 48/4 = 12 parches. En la dirección C0 A1 tendremos que especificar ese 30 que es el tamaño de la tabla de bugcatchers para "cerrar" la tarjeta.

ZONA DE DATOS
DESDE D000 HASTA DFF0

D000: 07 27 01 40 01 08 01 00 00 zz zz hh 00 ii ii ii | .'.@.....»‚..... ->cp zona,horario,ird.
D010: ii 00 00 00 00 00 5C 03 1C 03 6B 01 02 00 00 00 | ..........k..... ->ird(cont),lugar para el password
D020: 00 bb bb bb bb bb bb bb bb 07 38 06 40 00 00 cc | .èÒg^?½Vª.8.@... ->Box***, cam
D030: cc cc cc FF FF FF FF FF FF FF FF FF FF 00 FF FF | Š®Ýÿÿÿÿÿÿÿÿÿÿ.ÿÿ ->Cam








Últimos temas en esta categoría:


Cada persona tiene más de 1000 deseos. Un enfermo de cáncer sólo uno: PONERSE BUENO
En honor a quienes se han ido por esta causa o por quienes continuan luchando.


  Última edición por okaki; 15-Jul-2008 a las 21:52  
Responder Citando
Los siguientes 2 usuarios agradecen a okaki por este mensaje:
Respuesta
Ir al Foro Arriba
Temas Similares
Claves Nagra
1.-Parity ***s -> Existen 3 Parity ***s (0, 1 y 2) que son únicas por cada proveedor, son constantes en el tiempo ya que de ellas depende el ...
Replys: 0
Last Post: 15-Jul-2008 22:29
Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes
Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Activado
 
Herramientas

Información del foro
Desarrollado por: vBulletin® Versión 3.8.9
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.
Recursos ahorrados en esta página: MySQL 0% Organización : 30 Junio 2006
La franja horaria es GMT +2. Ahora son las 09:43.
Aviso importante


Yukarý Fýrlat