Download aspectos técnicos del "glitching" introducción: definición

Document related concepts
no text concepts found
Transcript
ASPECTOS TÉCNICOS DEL "GLITCHING"
(Traducido By Pekador)
CAPITULO 1
INTRODUCCIÓN:
El "Glitching" consiste en una serie de estudios, actuaciones, desarrollos e investigaciones que
permiten corregir problemas de programación y funcionamiento de Tarjetas Electrónicas. Esta serie de
métodos permiten en muchos casos corregir errores de programación o diseño de tarjetas electrónicas,
que durante su funcionamiento han quedado inservibles por haber entrado en un funcionamiento
anómalo (loop). Los métodos Glitching permiten obtener información de estas tarjetas y permite
recuperar su funcionamiento normal, y detectar la causa del malfuncionamiento.
Para la consecución de estos m étodos se precisan de programadores UNLOOPERs. Consistentes en
programadores comerciales creados específicamente para esta labor. Estos programadores unloopers
disponen de características propias y configurables para dotarles de mayor versatilidad (para funcionar
con un amplio rango de tarjetas electrónicas). Algunos modelos de Unloopers disponen ademas de
utilidades para la programaci ón de otros dispositivos distintos (programación de chips, JTAGs, etc).
AVISO: El uso de estos dispositivos Unloopers debe ceñirse a la legalidad, y no usarse en dispositivos o
tarjetas electrónicas con la intención de defraudación. Recordamos que el uso de scripts diseñados
para tarjetas electr ónicas de operadores SAT esta penado por la ley y constituye un delito en muchos
paises. En este documento no se presenta ninguna información válida para la defraudación de este tipo
de tarjetas (ni scripts, ni programas).
DEFINICIÓN DE GLITCH:
Existen dos señales principales que van hacia la tarjeta y que pueden ser controladas externamente:
· La primera es el suministro de corriente a VCC. Se espera que sea un valor en corriente continua de 5V
constantes.
· La segunda es la señal de reloj a la tarjeta,
que se espera sea una onda cuadrada alternando entre 5V y 0V con una frecuencia de 4,608 Mhz.
Observando el esquema de un unlooper, observamos que tanto el VCC como el reloj de la tarjeta son
controlados por los chips 74HC4053 y la tarjeta no posee ninguna conexión directa con los 5 voltios.
Un glitch puede de ser definido como un cambio brusco intencional en cualquiera de estas señales.
Así, uno de los tipos de glitch que puede ser efectuado es el glitch de voltaje. Para esto, el voltaje de
entrada (Vcc) es disminuido hasta un valor intermedio (en torno a 2.5V) durante aproximadamente ½
ciclo de reloj o menos. (En algunos pocos casos, mas, hasta aproximadamente 1 ciclo de reloj).
El otro tipo de glitch que puede ser empleado es el glitch de reloj. Para este glitch, la señal de reloj es
acelerada hasta en torno a 4 veces su frecuencia normal (en este caso, hasta aproximadamente 18,432
Mhz.), durante aproximadamente 1 ciclo de reloj "normal". Esto causa que la señal de reloj haga 4
transiciones durante el período de tiempo en que normalmente haría solo una.
Hacer el glitch de línea de reloj es similar a arreglar y cambiar la forma del pulso de reloj que controla a
la tarjeta. Esto introduce un retraso en los picos de la línea de reloj, interfiriendo en el modo en que son
almacenados los datos en los registros internos y en el contador de programa (PC), siendo así que
pequeñas variaciones en los pulsos de reloj en la tarjeta combinados con pequeñas variaciones en el
voltaje provocan diferencias dramáticas en el comportamiento de la tarjeta. Y que lo que funciona para
unas no funcione para otras.
Hacer un glitch en la línea Vcc de la tarjeta puede llevar a resultados imprevisibles, pero algunas veces
esto produce exactamente los resultados esperados. El glitch que es enviado a la tarjeta tiene
normalmente la duración de un pulso de reloj sincronizado con el reloj normal. La teoría básica del
glitching es simple.
Se sincroniza la línea de reset de la tarjeta con el reloj, entonces se cuentan los pulsos de reloj a partir
del final del reset de la tarjeta para determinar cuando aplicar el glitch.
Los primeros tipos de unlooper usaban un potenciómetro para controlar la bajada en la línea de Vcc a
la tarjeta. El ajuste del potenciómetro variaba de tarjeta a tarjeta. Se usaba un resistor de 56 ohms
acoplado a la línea de Vcc y un trimpot multivueltas (25) de 200 ohms para controlar la profundidad del
glitch. Si se analizan los componentes utilizados para trabajar con las tarjetas F, se tendrá una idea
básica de cómo eran proyectados y como funcionaban aquellos aparatos.
PREGUNTAS FRECUENTES:
* ¿El procesador de la tarjeta y el del Atmel funcionan a la misma velocidad?. ¿Los ciclos
casan 1 a 1?
- NO, el Atmel funciona a 9, 200 Mhz, 1/2 de la velocidad del Oscilador (18.432/2 Mhz).
* ¿El procesador de la tarjeta posee un oscilador interno que la controla ?
- La tarjeta no posee un oscilador interno, siendo suministrado el clock externamente, por software,
en torno a 4,6 Mhz
(el voltaje del reloj está controlado por los chips 74HC4053
para mantener los picos de voltaje del reloj igual o inferiores al voltaje de glitch.)
* ¿En la grabación y lectura de la tarjeta se necesitan niveles de tensión diferentes?
- Si, a lectura se realiza a 5V, pero la grabación exige, alimentación de 12V y un buen nivel de corriente.
Este voltaje es suministrado por un generador interno el propio chip de la tarjeta,
no siendo necesario un voltaje diferenciado de entrada para la grabación.
Continua en Capitulo 2 ...