PDA

Ver la versión completa : ONO digital



Páginas : [1] 2

acb1
13-05-2006, 19:58
he visto algun anuncio de gente que vende decos de ONO digital con todo abierto, cierto ??? o bulo??? :confused:

Tongaor
13-05-2006, 22:17
Donde lo as visto?
Me pudes decir las direcciones?
Tengo el 3000 digital y estoy a la espera, parece que algo hay pero no se donde localizar la información.

triana.es
18-05-2006, 18:52
Hola, un saludo a todos....pues si, parece que lo han conseguido, yo me he puesto en contacto con un vendedor y me dice que en "abierto" y sin problema.
En esta direccion lo podeis ver: http://www.compraventa.com/view/4681093.htm?fk=0

Un saludo.

GALLEGO
18-05-2006, 21:53
cuidadin cuidadin con las compras de cosas raras.
primero el anuncio lleva solo 2 dias puesto.
el sr solo contesta por mail.
y por si fuera poco el que lo recomienda es su primer post.
yo no correria a comprarlo

acb1
19-05-2006, 12:49
Bueno pues ya han bajado de precio ahora ya los hay por 260 euros. :0=

japy
26-05-2006, 13:45
Pos eso compañeros yo he visto uno funcionando todo abierto.
LLamada a los que tienen el firm y demas COMPARTID !!!!!! :0= :0= :0=

sangreverde
16-06-2006, 10:37
en sevilla los estan vendiendo a 30 euros porque dicen que no se ven en abierto

clos2x3
17-06-2006, 10:22
a mi me han confirmado que si se ve, pero con el cambio os durará muy poco,
no os penséis que es como el cft analogico que era definitivo,
cuando lo peten a ver a quien os dirijís para que os lo solucione...
ojo para todos los lugares no funciona y ademas dentro de muy poco valdrá la mitad de precio y habrá mas informacion de como volverlo a abrir y tal...
de momento no hacer esa fuerte inversion que os arrepentiréis. ;)

novato1223
17-06-2006, 11:02
A ver.

Si funcionan y se ve todo en abierto al 100%

Las zonas donde funcionan son en Zaragoza, Barcelona, Madrid y Andalucia las zonas del antiguo auna.

Esto no es un foro de compra venta y no quiero hacer publicidad pero yo tengo algunos si alguien quiere mas informacion ya sabeis me dais un toque.

Venga un saludo

patatapool
17-06-2006, 19:00
A ver si alguna alma caritativa pasa informción acerca de los decos abq, tengo en mi casa 15 o 20 y necesito irme de vacaciones, asinnnn que haber si alguien empieza a dar pistas sobre como florear estos decos.
Salu2

novato1223
17-06-2006, 20:29
Por lo visto se instala un chip dentro del deko y ademas se modifica la tarjeta eso es lo que dicen a saber.
El caso que yo conozco solo a una persona que lo sabe hacer y no suelta prenda ni pagandole y creer que lo he intentado.

Venga un saludo

clos2x3
18-06-2006, 10:24
A ver si alguna alma caritativa pasa informción acerca de los decos abq, tengo en mi casa 15 o 20 y necesito irme de vacaciones, asinnnn que haber si alguien empieza a dar pistas sobre como florear estos decos.
Salu2


en los tiempos que corren de "ALMA CARITATIVA YA NO QUEDAN"
te decimos el como y por tu jeta te los vende y te piras de vaca verdad ? :D :D
pero que morro tienen algunos...

si quieres yo te digo el como...y tu me pagas las vaca te parece ?
ve firmando un talon de......digamos 3.000 € ;) :0=

GALLEGO
18-06-2006, 11:12
joer... vaya panorama.
en ningiun sitio saben abrir el sistema y aqui qiuen mas o quien menos ya lleva años con todo abierto.
me parece que alguien se quiere ir de vacaciones a costa de algun pardillo

patatapool
18-06-2006, 11:22
en los tiempos que corren de "ALMA CARITATIVA YA NO QUEDAN"
te decimos el como y por tu jeta te los vende y te piras de vaca verdad ? :D :D
pero que morro tienen algunos...

si quieres yo te digo el como...y tu me pagas las vaca te parece ?
ve firmando un talon de......digamos 3.000 € ;) :0=
Mira CLOS2X3, no vengas aqui dando consejitos, con tus tres post, ademas estube buscandote, ya que te tenian denunciado en un foro por estafador, y sabes bien de lo que te estoy hablando, pos ahi queda,
ahhhhhhhhhhh y por cierto, yo mis conocimientos siempre los comparto con los demas, no creo que si tu sabes hacerlo sea por que eres ingeniero tecnico, sino porque algún alma caritativa te ha pasado la información
Saludos para todos mis amigos(que lleven mas de un mes posteando por aqui)

novato1223
18-06-2006, 11:29
x gallego


Te aseguro que funcionan al 100% pero solo en las zonas del antiguo auna



un saludo

patatapool
18-06-2006, 11:32
muuu güenoooo, novato.
Salu2

GALLEGO
18-06-2006, 11:57
entiendo que varios sois de andalucia y no se que sistema usan supongo que es videguard.
pero yo estoy en cataluña y segun tengo entendido aqui se usa el mediachipter.
lo que no acabo de enender es porque todos usamos el mismo deco.
porque supongo que estamos ablando del abq

novato1223
18-06-2006, 12:57
hola, mira en cataluña tambien funcionan y si es el abq

Funcionan en cataluña, madrid, andalucia y zaragoza.

Porque el mismo deko? ni idea solo se que va el que lo hace no suelta prenda ni soñando me los vende echos pero de dar informacion nada de nada.

Un saludo

SxR
18-06-2006, 17:33
No voy a cerrar este post pq está interesante el hecho de que ya se pueden ver los canales en abierto del ABQ (me fío de novato1223 pq lo conozco personalmente y se que no miente) pero por favor, dejáos de 3000€, 5000€ etc ya que esta web es de conocimiento libre y para todos, el que quiera comprar que compre, pero no centreis la conversación en eso.

clos2x3
18-06-2006, 18:03
Mira CLOS2X3, no vengas aqui dando consejitos, con tus tres post, ademas estube buscandote, ya que te tenian denunciado en un foro por estafador, y sabes bien de lo que te estoy hablando, pos ahi queda,
ahhhhhhhhhhh y por cierto, yo mis conocimientos siempre los comparto con los demas, no creo que si tu sabes hacerlo sea por que eres ingeniero tecnico, sino porque algún alma caritativa te ha pasado la información
Saludos para todos mis amigos(que lleven mas de un mes posteando por aqui)
1º/mira patatapalo eso que dices de que yo estoy denunciado es falso, yo nunca he estado denunciado (gracias a dios) mañana no lo se pero hasta hoy NUNCA, si tu en algun foro de compraventas, ves a alguien que desacredita a otro para hacer su agosto, tu tan inocente vas y te lo crees, y ahora vienes aqui diciendo lo que ni siquiera puedes asegurar.
2º/ lo que si te digo es que es de cara dura tener 15 decos apalancados y querer enterarte en los foros del como... para poder venderlos y decir que te quieres pirar de vacaciones.
si estuvieras enfermo y necesitaras un operacion que te cuesta las perras yo era el primero que te ayudaría, pero para tus vacaciones, ponte a trabajar como hacemos los demas.
3º/ si, tengo 3 post (acabo de registrarme) pero tu no me das leciones con tus post, que en seis meses solo tienes 9 manda huevos...
y con esto termino contigo. no quiero mal rollito con nadie.
yo no tengo la llave del ABQ, era un farol pero el que tiene el monopolio no te lo va a dar por nada del mundo.


novato1223
ni idea solo se que va el que lo hace no suelta prenda y creeme no le he ofrecido 3000 como decia el colega si no 5000 y dice que nanai que no me lo cuenta ni soñando me los vende echos pero de dar informacion nada de nada.
pues tu mismo te acabas de contestar, el que tiene el tema controlado no lo suelta por nada del mundo. ojalá lo tuviera yo...pero en poco tiempo la cosa cambia, te lo aseguro.

GALLEGO
el sistema abierto es videoguard de a*na, pues mediacipher es o*o

SxR
hh moderador.
tienes toda la razón, aunque aqui acabo de registrarme llevo muchos años en esto y se que es un foro de estudio y no se debe manejar temas de dinero y demas...
lo siento.

GALLEGO
18-06-2006, 18:26
veo que el foro se calienta. eso es bueno y a ver que sacamos entre todos.
creo recordar que el videoguard esta abierto.
el mediachipter que ono usa y compro un monton de decos abq para este sistema no lo a abierto nadie y estoy casi seguro que en donde estoy yo (cataluña) es mediachipter.

patatapool
18-06-2006, 19:51
1º lo del farol era de suponer, jejeje.
2º Si quieres cojo los 15 decos y los pongo en la puerta del garaje de mi casa, y así todo el que pase se los puede ir llevando.
3º Si te crees que no he investigado, logicamente estas equivocado. si tu tuvieras 15 aparatos de estos estarias en mi misma situación, buscando que alguien eche un cable, al igual que yo he ayudado a mucha gente con el temas de los cft. No es nada personal contigo, pero con lo del farol, ya te me has mostrado de que pié cojeas.

Salu2

clos2x3
18-06-2006, 21:05
pues no cojeo de ningun pie ya que en todos los foros posteo como clos,
si tuviera 15 de momento intentaría hablar con el tal que los hace y haría negocio con el, no me vengo aqui al foro a buscar nada pues sabes de sobra que aqui nadie te va a decir nada. alomejor el año que biene...pero ahora lo dudo.
yo tengo 1 bien guardadito y a esperar me toca.
para mi uso personal por supuesto.
y del tema de los cft llevo 5 años ayudando a millones, quizás tu hayas leido y aprendido de mis manuales a chipear. antes usaba otro nick que no es clos.
de todas formas te deseo una felices vacaciones (al caribe si puede ser) y que veas que no tengo nada contigo ni con nadie jeje.
buen rollito.

SxR
18-06-2006, 22:06
Aquí finalizo yo la discusión SIN SENTIDO de patatapool y clos2x3; si veo que continúa la discusión tontamente cierro este post y, sinceramente, es una pena.

El que quiera aportar algo de ABQ que lo haga, el que no que se calle.

novato1223
18-06-2006, 22:30
Voy a tratar de explicar un poco el funcionamiento dentro de lo poco que se.

EL deko es llegar y se ve no hay que esperar mapa ni nada.

Solo funciona en zaragoza, barcelona, madrid y andalucia menos cadiz y huelva.

En Zaragoza en el antiguo able no se si habra algun otro.

Tiene que estar conectado a la linea de telefono ya que las taquillas las tienes que comprar.

Una vez al mes el deko descarga la informacion de la tarjeta y vuelves a tener el saldo.

Ese saldo unos me dicen que es 50 euros otros 70 y ay quien dice 140 yo no lo se.

Dicen que haciendo un buen uso de ella no se llena si copras como loco si lo agotaras con lo cual debes esperar la descaga.

No se que dia del mes hace la descarga ni si todos los meses es el mismo dia.

A ver si sabiendo como van alguno puede hacer algun tipo de investigacion.

Con forme me entere de mas cosas las hire añadiendo

Un saludo

clos2x3
18-06-2006, 22:40
buena explicacion novato, por algo se empieza todo...

patatapool
18-06-2006, 22:47
O.K. Sxr. Solamente decirle a clos, que por supuesto estube hablando con un pollo de Valencia, que dice ser el único que abre estos decos, y me intentó comprar los decos a 40€, y me dijo que no me preocupara que no encontraría nada de información de estos aparatos, ya que el y socio son los únicos que saben como funciona. Por supuesto no me lo creo, y por mi tema zanjado y tan amigos. Seguiremos en la investigación.
Salu2 para todos

SxR
18-06-2006, 23:49
Novato1223 INCREÍBLE EXPLICACIÓN!!!

A ver si pasamos algo y sabemos más. Saludos

clos2x3
19-06-2006, 11:00
O.K. Sxr. Solamente decirle a clos, que por supuesto estube hablando con un pollo de Valencia, que dice ser el único que abre estos decos, y me intentó comprar los decos a 40€, y me dijo que no me preocupara que no encontraría nada de información de estos aparatos, ya que el y socio son los únicos que saben como funciona. Por supuesto no me lo creo, y por mi tema zanjado y tan amigos. Seguiremos en la investigación.
Salu2 para todos

pues mira lo que son las cosas...precisamente el "tal" que tiene esto montado tambien se que tiene un socio (y esto no es ningun farol) es de sevilla ya que a un amigo mio se lo ha vendido y el socio es de cataluñya,(segun el) a saber si es verdad por no dar pistas... entre los 2 sacan la mercancia, lo preparan, y al usuario final.
es normal que no quieran decir el como...aun que lo que dice novato es verdad porque este amigo mio lo tiene enchufado a una linea de telefono y si lo desconecta le dijeron que se bloquea el deco.
son 2 cosas, una al deco y otra a la visa + el cable del tlfno.
saludos.

novato1223
21-06-2006, 21:26
Pues vamos aclarando algun punto.

Los dekos no van tocados como dicen solo va tocada la tarjeta la cual no creo que sea tan dificil descifrar ya que el sistema videowa o como se llame creo que es nagra 1 y este esta reventando hace mucho.

Ademas ese sistema ya lo usan en otros paises y esta mas que reventado.

Yo como ya dije tengo algunos mientras no haya riesgos de que mela cargue acepto ideas.

Venga entre todos podemos

Un saludo

cliper2
22-06-2006, 23:08
hola parece q son tres las personas q manejan este tema valencia sevilla y cantabria
creo q estan en su dercho de no soltar prenda pero el palo q les pueden dar es muy gordo y es facil cortar el arbol al nacer antes q eche ramas
saludos

novato1223
23-06-2006, 00:00
pues yo tengo el material y si necesito algun tipo de programador o algo lo compro que no debe ser caro solo necesitamos el maestro que nos guie.

A ver si alguno de por aqui que seguro hay mas de uno se brida.

La union hace la fuerza

Un saludo

patatapool
23-06-2006, 07:50
me uno a novato, tengo varios decos y no me importa expirimentar, si alguien se presta a dar ideas. Sigo dudando un poco del tema, si ya estan en la calle ¿porque nadie les ha metido mano ya? Me extraña que haya fotos rulando por la red, peroooooo vamosssssss, todo se andará

novato1223
23-06-2006, 09:09
No lo dudes yo los tengo ya hechos y funcionan al 100% pero me los han vendido ya hechos.

En la calle llevan un par de meses solo que como indica cliper2 solo lo mueven 3 personas en toda españa y tienen el monopolio.

Segun parece estas personas han pagado una investigacion privada y los resultados han sido solo para ellos y no penseis que eso vale mucho que si les ha costado 10 seguro sacan 50.

Venga un saludo

clos2x3
23-06-2006, 12:18
He rescatado esto que posteo aqui abajo de un foro (ya cerrado en la actualidad) y que creo que es interesante para el conocimiento del sistema videoguard (NDS)

EDITO NOMBRES DE PERSONAS Y PROGRAMAS VINCULADOS POR EL BIEN DEL FORO Y DE LOS PROPIOS INTERESADOS.

POSTEADO POR xxxxxx el 22-10-03 a las 21:18 EN EL FORO xx xxxxxxxx

Bueno aquí dejo este texto de xxxxx explicando en que se basa la nueva tecnología...espero que sirva de algo y sobre todo dar las gracias a xxxxx

El sistema Videoguard está siendo utilizado por las plataformas Sky Digital (Reino Unido), Stream (Italia) en Europa. Y en España lo emplea la empresa de TV por cable MADRITEL Y AUNACABLE (es posible que por otras plataformas más pequeñas o por algunos sistemas de cable), YES (Israel) y por diferentes plataformas en Sudamérica, si bien los sistemas sudamericanos parecen ser algo diferentes y los resultados allí obtenidos no son directamente aplicables a los sistemas europeos.

El sistema Videoguard ha sido desarrollado por la empresa NDS y todos los sistemas europeos o americanos tienen, parece ser, una base similar.
No tiene nada que ver con el sistema nagra ya sobradamente crakeado.

Para comenzar debo decir que mi intención es centrarme en las plataformas europeas, es decir la inglesa e italiana, pero sobre todo en la inglesa. Oficialmente no existe la posibilidad de ver Sky Digital si no es pagando religiosamente, pero muchas (1E1000000000) veces en foros ha habido quien ha dicho saber seguro que corren tarjetas que lo abren todo, la credibilidad a esas voces es baja, pero ha salido este comentario de miembros con mucho prestigio en el tema satélite, lo cual ya es muy diferente, pero yo no se nada mas del tema, especialmente porque no tengo contacto personal (e-mail personal) con ningún hacker ni persona destacada dentro del mundo del satélite, todo lo que se es de dominio público. En cuanto a la plataforma Stream sí parece que hay unos ficheros para ponerlos en una wafercard o Piccard (que creo que se puede decir que son iguales, o al menos eso creo). Yo no se lo que hace esta tarjeta, pero tengo fuertes dudas de que permita ver algo diferente a los FTA. Mi duda reside en el hecho de que la información sobre el sistema es muy pobre, tal como se puede comprobar visitando las páginas que debajo incluyo, y contrastando con la poca información aparecen unos archivos hex. listos para montar, parece un poco raro.

. Actualmente se está, en mi opinión, trabajando poco en el tema del logging (o sea hacer logs para ver que es lo que se dicen la tarjeta y el deco), tal vez los hagan pero poca gente, en los foros hay mucha gente que está esperando que ocurra algo pero que no hace casi nada. En parte la "culpa" de que el logging no sea una práctica común es de Sky por utilizar un bautrate no estándar, así para poder monitorizar el tráfico de datos se ha de hacer algo como lo de Nagra Digital, es decir que se ha de modificar una tarjeta de puerto serie o bien se ha de crear un interfaz capaz de "arreglar" el problema de la velocidad.

El ATR de una tarjeta de SKY Digital tiene la forma:

3F 7F 13 25 03 40 B0 0B 69 4C 4A 50 C0 00 00 53 59 00 00 00 (Sky Digital)
3F 7F 13 25 02 40 B0 0C 69 FF 4A 50 C0 00 00 52 53 00 00 00 (Stream)
3F 7F 13 25 05 40 B0 11 69 FF 4A 50 00 00 00 47 54 00 0C 00 (Yes)

Y como algunos de vosotros sabéis del ATR se puede sacar alguna información de la comunicación, no entraremos en detalles, pero si alguien quiere conocer esto en más profundidad puede consultar un documento del Estándar ISO 7816.

Pues bien del ATR y del protocolo en cuestión se deduce que la velocidad de reset y la de datos son:

(Fec. Reloj/372)*1000000 = Baudios de reset
(Fec.Reloj/(372/4))*10000000) = Baudios de Datos.
Y los que han medido la velocidad de reloj de los receptores de Sky dicen que dicha velocidad es de 4,5MHz lo cual resulta en una velocidad de reset de 12096.8 y de datos de 48387baudios.
Estas son las velocidades a las que se deberán realizar los logs, que ya se puede observar que no son estándar.

En cuanto a la posibilidad de utilizar un Phoenix para comunicarse con la tarjeta la cosa se simplifica dado que con un reloj de 3,16... Que es el que se monta típicamente en estos dispositivos las velocidades resultantes son:

Reset: 9622 Baudios
Data: 38489 Baudios
Que pueden ser asimilados a 9600 y 38400 que sí son estándar. El resto de datos de la comunicación son:

Paridad: Impar
Bits de Stop: 2
Convención: Inversa.

En cuanto al software que se está imponiendo para el trabajo con el Phoenix y la tarjeta de Sky es el xxxxxxx, para los poco iniciados no pertenece a Microsoft ni está dentro de Windows ni nada por el estilo, lo digo por el nombre, el cual a mi me sugería una aplicación de Windows. Se trata de una aplicación muy buena creada por xxxxxxxxx, la última versión que se conoce es la xxxxxxx 4.6.

El programa xxxxxxxx está enfocado a la investigación más que al uso final, permite la programación en Visual Basic Script, Java Script y Scripts muy simples, la forma de aprender como hacer Scripts simples es consultando los ejemplos. El problema de estos programas es que se requiere tener las dlls o ocx's adecuadas, las cuales han sido utilizadas por el desarrollador (simplemente que no sean muy antiguas), pero también se incluyen en las descargas.
-----------------------------fin del texto-----------------------

LECTURA DE LAS VISAS CON xxxxxxxxxxxx CON PHOENIX Y CRISTAL 3.5790 MHz por CLOS. En su dia…
============================================
AUNACABLE

Trying to reset card...
Reset Successful

ATR: 3F 7F 13 25 02 40 B0 12 69 FF 4A 50 90 41 55 00 00 00 00 00
(sin activar)

Convention: INVERSE
Protocol: T=0
TA1 = 13
TB1 = 25
TC1 = 02

Historical Bytes: 40 B0 12 69 FF 4A 50 90 41 55 00 00 00 00 00
@ ° i ÿ J P � A U

Programming Voltage = 5.0 volts
Programming Current = 50ma
Maximum Clock Frequency = 5.0MHz

Assuming a 3.5790MHz clock:
Work ETU = 0.0000259849 seconds
Guard Time = 0.0003637887 seconds
Baud Rate After Reset = 38484
=============================================
MADRITEL (ya esta operadora no existe)

Trying to reset card...
Reset Successful

ATR: 3F 7F 13 25 05 40 B0 11 69 FF 4A 50 00 00 00 59 36 00 04 00 (activada en su día)

Convention: INVERSE
Protocol: T=0
TA1 = 13
TB1 = 25
TC1 = 05

Historical Bytes: 40 B0 11 69 FF 4A 50 00 00 00 59 36 00 04 00
@ ° i ÿ J P Y 6

Programming Voltage = 5.0 volts
Programming Current = 50ma
Maximum Clock Frequency = 5.0MHz

Assuming a 3.5790MHz clock:
Work ETU = 0.0000259849 seconds
Guard Time = 0.0004417435 seconds
Baud Rate After Reset = 38484

Pues ya sabemos que las visas de auna desde hace 2 años hasta la actualidad se han podido abrir,
Quien quiera que haga sus experimentos y saque conclusiones.
Nadie lo va a poner fácil os lo aseguro.
PERO EL QUE TIENE EL MONOPOLIO ESTARÁ EMPEZANDO A MOSQUEARSE :D

amdk8
23-06-2006, 15:20
Segun se comenta en un foro bastante importante y de fiar, dicen que se basan en el mosc nds por fuerza bruta con el script:

Sub Main()
Dim Len
Dim BC,BC1,BC2,BCC,BCC1,BCC2,SB
Dim A58,B58,C58
Dim StatusByte
dim A
Set FilesystemObj = CreateObject("Scripting.FileSystemObject")
Set TextStreamFileObj = FilesystemObj.OpenTextFile ("C:\Documents and Settings\TheJollyJoker\Desktop\LogBrute.txt", 8 )' '
'***** Mem ins36*******
Verbose=False
Sc.write("D0 38 80 00 02")
ricevi
Len = HexString(sc.GetByte(2),2)
Sc.write("D0 36 00 00" & Len )
Sc.read(1)
sc.read(Hextodec(len)+2)
For i = 0 To &H29 -1
BC1 = BC1 & HexString(GetByte(i),2)
next
Sc.write("D0 36 00 00" & Len )
Sc.read(1)
sc.read(Hextodec(len)+2)
For i = &H39 To Hextodec(len)-11
BC2 = BC2 & HexString(GetByte(i),2)
next
BC= BC1 & BC2

'****** Mem ins58*****
Sc.write("D0 58 00 00 4A " )
Sc.read(1)
sc.read(&H4A+2)
For i = &H00 To &H08 -1
A58 = A58 & HexString(GetByte(i),2)
next
Sc.write("D0 58 00 00 4A " )
Sc.read(1)
sc.read(&H4A+2)
For i = &H14 To &H4A -1
B58 = B58 & HexString(GetByte(i),2)
next
C58=A58 & B58


mylen = &H16
Ilen= mylen -2
Cicli=inputbox ("Inserisci il numero cicli da provare:")
A = 1
For CurrStep= 1 to Cicli
BCC=""
BCC1=""
BCC2=""
D58=""
E58=""
F58=""
randomize
x1=INT(rnd*&H100)
x2=INT(rnd*&H100)
x3=INT(rnd*&H100)
x4=INT(rnd*&H100)
x5=INT(rnd*&H100)
x6=INT(rnd*&H100)
x7=INT(rnd*&H100)
x8=INT(rnd*&H100)
x9=INT(rnd*&H100)
xA=INT(rnd*&H100)
xB=INT(rnd*&H100)
xC=INT(rnd*&H100)
xD=INT(rnd*&H100)
xE=INT(rnd*&H100)
xF=INT(rnd*&H100)
x10=INT(rnd*&H100)
x11=INT(rnd*&H100)
x12=INT(rnd*&H100)
x13=INT(rnd*&H100)
x14=INT(rnd*&H100)
x15=INT(rnd*&H100)
x16=INT(rnd*&H100)
Joker= HexString(x1,2) & HexString(x2,2) & HexString(x3,2) & HexString(x4,2) & HexString(x5,2) & HexString(x6,2) & HexString(x7,2) & HexString(x8,2) & HexString(x9,2) & HexString(xA,2) & HexString(xB,2) & HexString(xC,2) & HexString(xD,2) & HexString(xE,2) & HexString(xF,2) & HexString(x10,2) & HexString(x11,2) & HexString(x12,2) '
randomize
Sc.Write "D0420000" & HexString(mylen,2)
Sc.Read(1)
Sc.Write "90" & HexString(Ilen,2) & "4002" & (Joker)
Sc.Read(2)
SB = HexString(GetByte(0),2)& HexString(GetByte(1),2)
print "D0420000" & HexString(mylen,2) & "90" & HexString(Ilen,2) & "4002" & (Joker) & SB & vbcr
if SB <> "9000" then
TextStreamFileObj.writeline ("New Status >") & SB & " - D0420000" & HexString(mylen,2) & "90" & HexString(Ilen,2) & "4002" & (Joker) & SB & vbcr
msgbox " Status Changed !!! "
end if

Call Sc.ProgressBox("Cicli-Brute > " & CurrStep, CurrStep, Cicli, "EMM Extreme-Brute")
Call Sc.Delay(50)
Sc.write("D0 36 00 00" & Len )
Sc.read(1)
sc.read(Hextodec(len)+2)
For i = 0 To &H29 -1
BCC1 = BCC1 & HexString(GetByte(i),2)
next
Sc.write("D0 36 00 00" & Len )
Sc.read(1)
sc.read(Hextodec(len)+2)
For i = &H39 To Hextodec(len)-11
BCC2 = BCC2 & HexString(GetByte(i),2)
next
BCC= BCC1 & BCC2

if BCC <> BC then
TextStreamFileObj.writeline ("Changed 36 con >") & " - D0420000" & HexString(mylen,2) & "90" & HexString(Ilen,2) & "4002" & (Joker) & SB & vbcr
msgbox "Controlla 36"
end if
Sc.write("D0 58 00 00 4A " )
Sc.read(1)
sc.read(&H4A+2)
For i = &H00 To &H08 -1
D58 = D58 & HexString(GetByte(i),2)
next
Sc.write("D0 58 00 00 4A " )
Sc.read(1)
sc.read(&H4A+2)
For i = &H14 To &H4A -1
E58 = E58 & HexString(GetByte(i),2)
next
F58=D58 & E58

if F58 <> C58 then
TextStreamFileObj.writeline ("Changed 58 con >") & " - D0420000" & HexString(mylen,2) & "90" & HexString(Ilen,2) & "4002" & (Joker) & SB & vbcr
msgbox "Controlla 58"
end if
A = A + 1
if A = 10 then
Sc.Reset
else
end if
Next
Call Sc.ProgressBox("", 0, Cicli) 'close the dialog
Sc.MsgBox "Done", vbInformation
End Sub

Function Ricevi
Sc.Delay(200)
NumeroByte = Sc.BytesInBuffer
buffer=Sc.Read(NumeroByte)
Sc.Delay(50)
print
End Function

Function HexString(ThisNumber, Length)
Dim RetVal
Dim CurLen
RetVal = Hex(ThisNumber)
CurLen = Len(RetVal)
If CurLen < Length Then
RetVal = String(Length - CurLen, "0") & RetVal
End If
HexString = RetVal
End Function

Function HexToDec(NumHex)
If NumHex = "" Then Exit Function
NumHex = Replace(UCase(NumHex), "", "")
HexToDec = CLng("&H" & NumHex)
If Len(HexToDec) = 1 Then HexToDec = "0" & HexToDec
End Function

Se habla que solo es valido con tarjetas no activadas, son noticias sacadas de un foro no mias, lo que no me cuadra es por que dicen los vendedores que las cards no se pueden usar en otros decos y que estan casadas como en nagra2, si alguien sabe si videoguard usa el mismo sistema que lo aclare.

Gracias.

clos2x3
23-06-2006, 15:32
ese script lo tengo, incluso un par de programitas para leer la card incluido
el NDS-Reactivator y mi card esta de fabrica.
lo malo de esto es que no tengo a*na asi que por muchos conocimientos que puedo ofrecer tengo las manos atadas...
de videoguard no se sabe mucho y si dicen que esta casada con el deco solo hay 2 opciones,
o es para despistar, o es verdad.

amdk8
23-06-2006, 17:10
Yo creo que es para despitar al personal ya que si esto sale publico y no son casadas el beneficio que ganan ellos es minimo ya que asi pueden abultar algo mas el precio con los decos unos 200€ unidad.

EDGARDS
23-06-2006, 18:41
Hasta las pruebas que he echo....

Siempre he pensado que las tarjetas de Ono Morado (Auna -
Madritel) este es mi caso, no iban casadas. ahora he cambiado de idea, solo van casadas para las takillas (Mirador en este caso).

Conociendo la empresa como la conozco, y sabiendo como funciona el sistema, me da a mi que tal monopolio Existe.

Pero nada de Mosc, tocar la Card y el deco.... x socios, unos trabajando de instaladores y algun otro en el NOC. se da la tarjeta de alta en sistema.. esa card de los decos que se pierden... y a vender.. para disfrutar de unas fructiferas vacaciones.

Un Saludo

clos2x3
23-06-2006, 18:41
hombre ya dije en un anterior post que al deco tambien se le hace algo internamente aunque no lo puedo confirmar, pues si solo fuera la reparacion en la visa, es muy facil, que quien haya pagado esas perras puede meter la visa en un deco igual y hacer las pruebas...
asi enseguida podriamos saber si estan casadas o no...
pero bueno, a ver si alguien se moja en decir algo concluyente.

----------------------------
uffffffff edito, a la misma hora y minuto las 2 respuesta. ;)

amdk8
23-06-2006, 20:54
Confirmado amigo clos, estan casadas, aqui tienes info para hacer rular una card original nds de sky en una dream y veras en las imagenes que tienen boxkey o sea que van casadas con el deco.

http://www.xs4all.nl/~rai/data/bewaar/NDS%20card%20in%20Dreambox.mht

Ya sabemos algo mas, tambien tengo entendido y hablando con uno de los que venden me ha confirmado que al deco no se le instala ningún tipo de chips y los que venden en foro compraventa son intermediarios solo hay una persona que los suministra y ellos los ponen en reventa.

Conclusión del tema creo que el amigo edgards tiene razón.

Un saludo a todos.

novato1223
23-06-2006, 21:25
A ver yo lo tengo y ya comente en este hilo que el deko no lleva ninguna modificacion que solo se modifica la tarjeta o al menos a simple vista ya que lo he abierto.

Las tarjetas si van casadas con el deko.

Seria cuestion de conseguir un programa para leerlas, leer varias comparar los archivos y ver donde se diferencian.

Luego conseguir el programa y comando correcto para para escribir lo que se necesite y listo.
Y la pregunta del millon ¿con que programa y con que programador y hacemos lecturas de visas de baja, de alta, y de estas tocadas y a comparar.

Venga un saludo

clos2x3
23-06-2006, 21:32
bueno pues por lo menos en sky si esta casada con el deco
a ver si alguien que lo tenga lo confirma aqui tambien...
lo que si me queda una duda y es que
un deco ABQ de fabrica, no tiene el sofw de a*na logicamente, llega en blanco y solamente es esta operadora la que se lo envia por cable de antena, entonces yo me pregunto, si al crakear la card tiene poder para la descarga del sofw ?
porque no creo que el sofw lo tenga nadie y se lo meta con jtal, es lo que desconozco.

clos2x3
23-06-2006, 21:38
A ver yo lo tengo y ya comente en este hilo que el deko no lleva ninguna modificacion que solo se modifica la tarjeta o al menos a simple vista ya que lo he abierto.

Las tarjetas si van casadas con el deko.

Seria cuestion de conseguir un programa para leerlas, leer varias comparar los archivos y ver donde se diferencian.

Luego conseguir el programa y comando correcto para para escribir lo que se necesite y listo.
Y la pregunta del millon ¿con que programa y con que programador y hacemos lecturas de visas de baja, de alta, y de estas tocadas y a comparar.

Venga un saludo
el programador es lo de menos, un phenix con cristal 3,579 te la lee, por lo menos te da el ATR de la visa.
el programa hay varios que den soporte a ese cristal.
todo es ponerse, y si tienes varias visas de alta hacer la comparacion..

MAIRELES1982
26-06-2006, 00:16
EDITADO POR IMPROCEDENCIA E INCUMPLIMIENTO DE LA NORMATIVA DE CONVIVENCIA.

NOTA: Al ser tu primer error será un simple aviso pero tenlo muy encuenta o recurrirá en un baneo.

clos2x3
26-06-2006, 14:08
Por favor, paciencia

SxR
26-06-2006, 15:04
Clos2x3, no te enfades tio. Ya he borrado (y continúo borrando posts inadecuados) pero tienes que comprender que la gente novata pasa de todo. Ponen cosas que no deben. Espero que lo entiendas. Hay que tener paciencia. Aquí SÍ QUE SE PERMITE 'DE TODO' pero hay que seguir unas normas y esos posts no las siguen, pero como no existe bot alguno que los pueda eliminar automáticamente, ha que hacerlo a mano y alguno siempre se escapa.

clos2x3
26-06-2006, 17:13
te entiendo, ya he visto varios post donde algunos pasan de todo, unos porque son novatos y otros porque son unos listos, solo aparecen para sacar tajada del foro, y es lo que no estoy de acuerdo.
soy de la opinion del que quiera peces que se moje el culo, y mira que comparto lo poco que se con todos, no soy un experto y cometo errores como todo el mundo pero que algunos vengan, abran el frigorifico, se beban la cocacola, y no repongan es que me jode compañero.
yo lo tengo claro, el que comparte y se lo curra, estará conmigo hasta el final pero el listillo de las vicocas se le perderá sus post en blanco por la parte de abajo.
saludos.

PD: no se si hay opcion de poner un edit personal en cada post (lo mismo que el quote y el reply) para que cada uno pueda editar el contenido de sus argumentos...

clos2x3
26-06-2006, 17:20
aparte del parentesis iniciado por maireles1982 seguimos con la investigacion...

tengo un amigo en sevilla que hablando con el me dice:
he metido la card del ABQ en otro deco y esta funcionando a las mil maravillas
por lo que te confirmo que la card y el deco NO estan casados.

eso se lo pregunté yo hace varios dias y despues de hacer las pruebas me dice esto.
si alguien me da una oportuna explicacion se lo agradeceré pues ahora si que estoy confuso...

KAPON
26-06-2006, 17:46
compis donde puedo encontrar progrmas pra estudiar este sistema gracias,
estoy interesado como vosotros ya ke dispongo de un deco+card de mi propiedad para estudiar
saludos y ya me presento ke se me a olvidado

cocolis_1
26-06-2006, 21:14
Estoy interesado en el tema contad con un colaborador mas, clos2x3, tienes un privado.Salu2

clos2x3
26-06-2006, 21:20
Estoy interesado en el tema contad con un colaborador mas, clos2x3, tienes un privado.Salu2

no tengo activado el privi, lo siento :confused:

SxR gracias x el EDIT ;)

GALLEGO
26-06-2006, 22:44
hola, debe ser un problema de zona. en algunos sitios va de una manera y en otros de otra.
yo afirmo porque lo he comprobado y es seguro (creo que soy de fiar estoy registrado en casi todos los foros del tema este) tengo 2 decos y dos targetas un deco y una targeta legal y dada de alta y lo otro me lo encontre por ahi.
pues los dos decos funcionan bien con la targeta dada de alta y ningun deco funciona con la otra targeta.
la zona es girona.
la señal es a+na en analogico pero no es como en barcelona ya que alli funciona el inversor de sincronismos y aqui solo modifican elsincronismo sin invertir.
a ver si sacamos algo en claro .

clos2x3
27-06-2006, 07:55
x gallego:
en analogico no, en digital. el ABQ 1H4G es digital videoguard.

pues podria ser que fuera el mismo sistema pero con distintas configuraciones (dependiendo de la zona) porque ya son varios de otras zonas que dicen tener 2 equipos y la tarjeta mosceada va en los 2 sin embargo en zonas norteñas solo vale para 1, raro no ?
podria ser debido a que el deco esta de alta en algun codigo postal ? pregunto...

GALLEGO
27-06-2006, 18:16
el deco es digital.
pero la señal (en mi zona) es analogica y digital ya que con el max veo takis (solo algunas) por ejemplo play boy lo emiten en digital y el axn en analogico y todo se ve por el mismo deco y (no estoy seguro)me parece que no es videoguard si no mediachiper.
alguin sabe si ay alguna manera de comprobarlo que tipo de sistema es

servala
27-06-2006, 19:59
Hola, confirmo lo de Sevilla las cards no estan casadas con los decos

clos2x3
28-06-2006, 15:27
el deco es digital.
pero la señal (en mi zona) es analogica y digital ya que con el max veo takis (solo algunas) por ejemplo play boy lo emiten en digital y el axn en analogico y todo se ve por el mismo deco y (no estoy seguro)me parece que no es videoguard si no mediachiper.
alguin sabe si ay alguna manera de comprobarlo que tipo de sistema es

aver te explico, auna en la mayoria de las zonas aun emiten dualmente en los 2 formatos. analogico y digital.
hay zonas que unicamente es en digital.
la zona que tiene los 2 formatos verán aun con cualquiera de los decos un paquete de canales u otro,
cft 2142 (analogico)
abq (digital)
lo que si te digo es una cosa, el sistema que usa a*na es videoguard y mas el deco abq 1h4g que va con tarjeta.
la operadora o*o es la portadora de sistema mediacipher con los decos motorola dvi 3000 y 3500 y que no llevan tarjetas de ningun tipo.

no hay que confundirse de porque o*o ahora este en la zona au*a pero se mantienen los sistemas y los equipos. ;)

KAPON
28-06-2006, 17:40
alguien me puede decir con que programa puedo leer una card de *n* digital compis
y donde puedo encontarlo
gracias compis

clos2x3
29-06-2006, 13:56
todo lo de a*na esta AQUI (http://www.hackhispano.com/foro/showthread.php?t=17229)

KAPON
29-06-2006, 17:41
GRACIAS compi tomo nota
saludos

michel69
30-06-2006, 13:01
Hola tengo en la ventana el cable de lo quera madritel luego auna y ahora ONO, lo tengo metido para dentro y veo algunos canales supongo que los analogicos,... los nacionales, eurosport, mtv, parlamento, 06, y AXN y odisea.

Hay posibilidad de pillar mas? que puedo hacer ? AYUDA PLSSSSS

gracias .........

acidillo
02-07-2006, 22:07
hola, soy nuevo en este foro pero ya llevo unos cuantos a mis espaldas :P, y lo primero que tengo que deciros es que no entiendo nada de nada, este hilo trata sobre *n* digital, y *n* digital usa un sistema llamado MediaCipher II, este sistema es propiedad de Motorola y *n* lo compró para proteger la seguridad de sus emisiones, este sistema viene implantado en los dekos de Motorola sea el modelo que sea, no os comais la cabeza con NDS, ni con Videoguard, eso pasó a la historia, y si aún es verdad que sigue en las viejas redes de A*NA pues eso mismo, sólo funcionaría en redes basadas en viejos sistemas, aunque me parece a mi que si *n* se fusionó (absorvió jejeje) a estas compañías lo más normal es que unifique su sistema, vamos digo yo, y que use el mismo método de encriptación para todas sus provincias por igual, yo soy de Valladolid y tenia R*t*cal desde 2000, luego fué fusionado (absorvido :P) por *n* y ahora me han clavado un DVI 3200 que usa MediaCipher II, aunque sea antigua red sé que tengo nuevo sistema, y amigos, a este cabrón de MediaCipher II hoy por hoy no se le puede meter mano, nos toca esperar, yo personalmente a no ser que me lo demuestren con videos no me lo creo, ya se ha hablado mucho, muchísimo sobre posibles aperturas y todo fueron bulos y rumores sin fundamento, o bien para sacar tajada a cuenta de algún que otro pardillo. Hasta que no os lo demuestren no lo compreis....
Ójala me esté equivocando, y ójala sea verdad que está abierto, en ese caso sólo nos tocaría esperar a que los listos saquen dinero y luego ya todos compartiríamos la preciada información.
Al fin y al cabo creo que sólo hablais del posible visionado de la vieja a*na aprovechando que ahora tiene los canales de *n*
Saludos a todos y buena educación :) + :0= = :D (y buenos humos claro)

GALLEGO
02-07-2006, 22:47
tu no sabras como saber si es mediachipter o videoguard ya que esta aqui la madre del cordero.
yo por lo que he leido el abq se ha violado en algunos sitios.
y mi teoria es que o es videoguard o lo hacen desde dentro.
y saludos a los que vienen del otro foro

clos2x3
03-07-2006, 12:38
decos ABQ 1H4H (ANTIGUA A*NA) sistema videoguard (sistema abierto en españa)
decos MOTOROLA DVI 3000 - 3500 (*N*) sistema mediacipher (sin abrir)

las demarcaciones de a*na y *n* son las de siempre, la fusion puede conllevar que en un futuro se implante el mismo sistema en todo el territorio, pero de momento los sistemas permanecen de origen.

danimv1
03-07-2006, 12:38
alguien me puede decir si existe alguna tarjeta pirata para poder ver ono con su decodificador

clos2x3
03-07-2006, 12:41
no hay nada.
ademas el deco de o*o no lleva card. (motorola)
el de a*na si (abq 1h4g)

danimv1
03-07-2006, 12:42
tu sabes algo

clos2x3
03-07-2006, 12:45
MOTOROLA no lleva tarjeta,
ABQ 1H4G si lleva una tarjeta videoguard,
ahora mismo es monopolio de unos cuantos
lee la chincheta de arriba.

Albertito_kd
03-07-2006, 23:58
Os hago una pregunta directa
-¿Se puede piratear el ono digital ya?? Mi cacharro es un motorola dvi3000
Ayuda k empezará la liga y ya sabeis...jejeje

Rockmartinez
04-07-2006, 01:33
Albertito_kd no sabes leer ?

acidillo
04-07-2006, 01:42
yo flipo con los que dicen "se puede pir***** ya? con todos sus cojones, y encima nombrando operadores reales, si yo fuera admin te ibas a comer un ligero baneo pero bueno... yo no tengo nada que decir aqui de esas cositas.
gallego tu me suenas de no sólo uno sino muchos foros jejeje, lo que yo decía es eso mismo, que la antigua a*na usa NDS en sus respectivas provincias, y eso es lo que estará abierto según dicen, pero yo sé perfectamente que antes R*t*cal analógico era accesible a la investigación, mientras que ahora mismo con *n* lo que tengo es un señor DVI 3200 con su MediaCipher II y todos los que tenemos un Motorola lo sabemos porque ese sistema es propiedad de Motorola y viene implantado sea el modelo que sea. Yo me cambié y seguía viendo los canales R*t*cal y la factura me venia de *n*, seguía usando el ccdxp32 etc etc, pero una vez cambiarme a digital, que ahi si que está la madre del cordero.. jejej, ahi es donde me la metieron doblada con el Metopolla este, porque aunque use la misma red, las mismas infraestructuras, el mismo cable, el sistema ya no es el anterior, es MediaCypher II, y lo sé de muy buena tinta, ya no me sirve el ccdxp32 porque directamente el analógico ha muerto (sólo quedan los del básico que se ven tirando de cable)
Todo se resume en que la gente que tenía la antigua a*na significa que ahora tienen los canales de *n* pero pueden verlo todo investigando el NDS Videoguard.
En cambio los de Castilla y León que teníamos R*t*cal, tenemos también los canales de *n* con sus dosmil filas porno jejeej, pero nanai, porque tenemos Motorolas y no hay manera de sodomizarlos :D

Saludos

PD: Vaya chapas que os meto y eso que llevo 2 posts aki :D, pero así ayudo un poco a despejar las posibles dudas que tenga la gente respecto a las demarcaciones.

:0= (mmmmm que rico webito)

clos2x3
04-07-2006, 11:11
ya lo comento yo en el POST 64 sin extenderme demasiado...
al final estamos diciendo lo mismo.

enlivo
06-07-2006, 13:52
hola un saludo a todos. soy muy novato en esto pero hago este comentario por si ayuda algo y es que he oido que han decod***cado algunos aparatos de *n* pero que luego les han llegado unas facturas de escandalo.
estoy hablando de la zona de alicante.
Bueno un saludo para todos y a por ellos. Ya que si nos mandan señales a nuestro hogar, lo logico es que busquemos los medios para utilizarlas. Si no que no nos las manden.

acidillo
06-07-2006, 17:30
muchas gracias por tu info enlivo, una vez más alguien ha sido timado, yo ya estoy harto de los bulos sin sentido, de los rumores no se puede sacar nada en claro, yo ya he visto como otras ocasiones dijeron que se veia y zasss, facturazo, y no solo una vez sino varias, por eso digo que o se esta muy muy seguro o es mejor no tocar los webillos, hasta que no este absolutamente demostrado con imagenes y esperando al papelito mensual... nada de nada
Saludos

mentus
06-07-2006, 17:40
Hola a todos,

Soy un novato en todo esto, de *N* pigital, y tengo un cacharro para poder experimentar, está a disposición de todos para poder probar cosas, así que acepto ideas.

De las cosas que he leido en este hilo, deciros que me ha comentado un compañero, que tenia un amigo trabajando en la distribución de *N* y sacaba equipos trasteados para verlo todo pero esto se acabó, él tiene uno y me comentó que hay más cosas.

Una de ellas es como el antiguo cubo, con la diferencia que tienes que comprar el partido y momentos antes eliminar la compra, quedando en abierto.

La otra todavía no lo tengo claro, pero le he dicho que se informe y me lo diga, con la posibilidad de comprarlo y experimentar con ello para ver si llegamos a sacar lo que es.

Ya os iré comentando a medida que vaya sabiendo más cosas, además aseguraros que no me guardaré nada, se trata de compartir con todos.

clos2x3
08-07-2006, 00:07
de lo que veas "creete la mitad"
y de lo que te digan sobre o*o (mediacipher) "no te creas na"
proverbio de uno que invento el rollito de primavera... :0=

Albertito_kd
08-07-2006, 02:06
acidillo eres carajote

vilma
09-07-2006, 12:08
vamos aver:
soy de sevilla tengo un deco abq-1h4g esta tocado pero no se que cono le han hecho,lo veo todo todo,llevo tres meses con el y no he tenido ningun susto de esos que hablais con las facturas.

SxR
09-07-2006, 14:16
Wenas vilma, cuanto tiempo.

clos2x3
09-07-2006, 18:33
vamos aver:
soy de sevilla tengo un deco abq-1h4g esta tocado pero no se que cono le han hecho,lo veo todo todo,llevo tres meses con el y no he tenido ningun susto de esos que hablais con las facturas.

aver vilma, tienes medio de leerte esa card y postear resultados ?
(recuerdas a pablo picapiedra cuando decia: abrenos la puerta vilma...)
pues igual, abrenos esa card (es broma eh!) :0=

GALLEGO
09-07-2006, 19:01
buenas.
si alguien consigue leer la card.debe mirar si está escrito el numero de serie del deco y el codigo postal.

vilma
09-07-2006, 22:45
Sxr 3 Meses

acidillo
10-07-2006, 01:52
Albertito_Kd, quién es carajote??? con quién me estás comparando si se puede saber??? espero que no sea un pringao ok?

SxR
10-07-2006, 12:29
Por favor, no empeceis discusiones tontas o cierro el tema.

Nuiter
10-07-2006, 23:51
Editado por incumplimiento de Normas:
- Incoherencia con el tema a tratar.

pesotes
13-07-2006, 11:01
hola a todos he chipeado un cft 2142 se pone solo en el canal 02 pero no se ve en la tele solo veo la pantalla gris de lluvia alguien save algo sobre este tema gracias

clos2x3
13-07-2006, 11:12
hola a todos he chipeado un cft 2142 se pone solo en el canal 02 pero no se ve en la tele solo veo la pantalla gris de lluvia alguien save algo sobre este tema gracias
que zona es la tuya ?

angelsev
13-07-2006, 13:03
decos ABQ 1H4H (ANTIGUA A*NA) sistema videoguard (sistema abierto en españa)
decos MOTOROLA DVI 3000 - 3500 (*N*) sistema mediacipher (sin abrir)

las demarcaciones de a*na y *n* son las de siempre, la fusion puede conllevar que en un futuro se implante el mismo sistema en todo el territorio, pero de momento los sistemas permanecen de origen.


hOLA CLOS2X3. Tengo un decos ABQ 1H4H pero no tengo tarjeta (no se si la tarjeta es necesaria) lo cierto es que me gustaria saber si ese deco lo puedo utilizar para ver la la television, no aspiro a ver taquillas pero si las básicas y la TDT. Tengo contratado internet mg.

Xanatos
13-07-2006, 20:35
A ver yo soy instalador en sevilla, voy a dejar algo de info a ver de que sirven.
Cuando se activa un deco en la cabecera se liga la MAC del deco con el nº serie de la card y el codigo postal de la zona (lo del CP no lo entiendo). No se si realmente es para casar la mac con el deco porque la descarga de soft se puede hacer con la tarjeta quitada y seguro que cuando activan no se escribe nada en la tarjeta tampoco, ademas se dan casos de que una tarjeta vale para varios decos y tambien se dan casos de que solo sirve para el suyo. Por cierto alguien preguntaba por aquí que como se le metia el soft ya que los decos vienen en blanco pues se puede hacer con el mismo deco enchufado al cable sin problema. Entre nosotros los instaladores teorizando, investigando y tal sabemos que la que manda es la tarjeta pero no sabemos como se puede ver TODO si no existe ninguna configuración en cabecera para ello. simplemente cada nº de serie de tarjeta tiene asociado un paquete pero no existe nadfa de taquillas en abierto. y con respecto al tema de las facturas mientras no esté el deco enchufado a la linea telefónica no hay problema ya que por coaxial los decos de la zona AU*A no tienen retorno y de todas formas por coaxial no hay manera de localizar a nadie. La teoria mas fuerte que tenemos a estas alturas esque hay alguien con acceso a la cabecera, ya sea de averias, activacion, etc que es el que hace todo el tema. Ahora mismo no se me ocurre nada mas a ver si me acuerdo de algo mas que poner o preguntad a ver si os lo puedo contestar. Gracias por vuestra atención.

clos2x3
14-07-2006, 13:07
hOLA CLOS2X3. Tengo un decos ABQ 1H4H pero no tengo tarjeta (no se si la tarjeta es necesaria) lo cierto es que me gustaria saber si ese deco lo puedo utilizar para ver la la television, no aspiro a ver taquillas pero si las básicas y la TDT. Tengo contratado internet mg.

simplemente no puedes, depende de una card ademas de estar de alta o la card manipulada.

clos2x3
14-07-2006, 13:16
x Xanatos

el CP es precisamente el Codigo Postal y sabemos que los tiros van por ahí...
lo que no creo es que haya nadie en la cabecera activando card a diestros y siniestros pues las compras se almacenan en la memoria del deco y una vez al mes se conecta a una linea telefonica para vaciar la memoria, puedes usar cualquier linea que nunca llega a la cabecera por lo tanto hay algo manipulado que no sabemos que es.
imagina por un momento que eso sea cierto, y las noticias corren como la polvora, si hay alguien activando dentro de la compañia no crees que estaría vijilado en cuanto salen los rumores ? yo no correría riesgos en mi empresa x tal motivo, a menos que sea la directiva completa que este en el ajo...
saludos.

acidillo
15-07-2006, 04:05
no estaria nada mal que los cheriffs se introdujeran un pokito en el ajo no?, por el bien de todos, el suyo y el nuestro, si todos pudieramos educarnos ellos a su vez iban a ganar toneladas incontroladas de abonados que a su vez robarian de otras cableras y plataformas....que se darian de baja de su no educativa vision, para venir a la si interesante parrilla de canales :D
Saludos

clos2x3
15-07-2006, 11:48
acidillo, que me estas dando a entender, que el monopolio no es tal monopolio sino la misma empresa ? (pues ahora es o*o) y en materia de abonados suma los de o*o de siempre mas ahora los de a*na con lo que no tiene sentido, pues el 90% del territorio esta controlado por o*o eceptuando las cableras del norte.
hasta que no me lo demuestren sigo pensando que la apertura del ABQ 1H4G y su tarjeta es cosa del estudio de los italianos y que alguien muy metido en esta guisa sabe manipular y ha dado con el tema...
(es mi opinion)

Trebol
15-07-2006, 13:21
A ver yo soy instalador en sevilla, voy a dejar algo de info a ver de que sirven.
Cuando se activa un deco en la cabecera se liga la MAC del deco con el nº serie de la card y el codigo postal de la zona (lo del CP no lo entiendo). No se si realmente es para casar la mac con el deco porque la descarga de soft se puede hacer con la tarjeta quitada y seguro que cuando activan no se escribe nada en la tarjeta tampoco, ademas se dan casos de que una tarjeta vale para varios decos y tambien se dan casos de que solo sirve para el suyo. Por cierto alguien preguntaba por aquí que como se le metia el soft ya que los decos vienen en blanco pues se puede hacer con el mismo deco enchufado al cable sin problema. Entre nosotros los instaladores teorizando, investigando y tal sabemos que la que manda es la tarjeta pero no sabemos como se puede ver TODO si no existe ninguna configuración en cabecera para ello. simplemente cada nº de serie de tarjeta tiene asociado un paquete pero no existe nadfa de taquillas en abierto. y con respecto al tema de las facturas mientras no esté el deco enchufado a la linea telefónica no hay problema ya que por coaxial los decos de la zona AU*A no tienen retorno y de todas formas por coaxial no hay manera de localizar a nadie. La teoria mas fuerte que tenemos a estas alturas esque hay alguien con acceso a la cabecera, ya sea de averias, activacion, etc que es el que hace todo el tema. Ahora mismo no se me ocurre nada mas a ver si me acuerdo de algo mas que poner o preguntad a ver si os lo puedo contestar. Gracias por vuestra atención.

Hay 3 cosas que no me cuadran:

Xanatos, a ti te preguntan el CP cuando das el alta del deco? Tengo entendido que preguntarlo, no lo preguntan. Otra cosa es que lo saquen del contrato, pero siempre puede estar equivocado.

Por otro lado, y siento contradecirte, pero el coaxial si que tiene retorno. Lo tenia con los antiguos analogicos y lo tiene con los digitales. Lo que no se hace es el "vacio" mensual de la tarjeta, que para eso si que tiene que estar conectado al telefono. He visto como pueden "vaciar" una tarjeta, solamente llamando al 902 que tienen, cargan las compras en factura, y renuevan los 90€. Ademas, aun sin estar conectado al telefono, cuando pinchas una tarjeta virgen en un deco, te dice claramente que la tarjeta no es valida (por lo que hay comunicacion deco->operadora), es mas, alguna vez te salta el mensaje de error "tarjeta no asociada a este terminal", lo que confirma que alguna relacion guardan.

Y por ultimo, es que ahora ya no hay nadie en el call center dando altas. Por lo visto han cambiado el sistema de altas y todo se hace desde una plataforma via WEB. Por lo tanto, sobre el topo... como no sea de averias...


Un Saludo.

Noish
15-07-2006, 18:25
Hay 3 cosas que no me cuadran:

Xanatos, a ti te preguntan el CP cuando das el alta del deco? Tengo entendido que preguntarlo, no lo preguntan. Otra cosa es que lo saquen del contrato, pero siempre puede estar equivocado.

Y por ultimo, es que ahora ya no hay nadie en el call center dando altas. Por lo visto han cambiado el sistema de altas y todo se hace desde una plataforma via WEB. Por lo tanto, sobre el topo... como no sea de averias...


Un Saludo.

El codigo postal no se pide para dar de alta el deco. Solo se pide el numero de serie del deco y el numero de serie de la tarjeta.

Las altas, modificaciones o bajas de contrato se hacen desde una aplicacion via wap (desde el movil) y siento decirte ke los callcenter no estan vacios, siguen como antes solo que no se habla con ellos via telefonica, todo es por wap.

acidillo
16-07-2006, 18:11
A ver... para clos2x3, lo que digo es que no estaría nada mal que estuvieran en el ajo, si digo eso es porque sé que ha sido la comunidad underground, ya sean italianos, árabes o egipcios, lo que yo decía es que si nos dejaran un poquito a huevo el tema, pues arrastrarían la competencia, no sólo del cable, sino de todo, cable y satelital, a eso me refería, a que podrían tener monopolio audiovisual si quisieran, yo ya sé que lo que esté abierto será obra de los hackers, y que de momento sólo hay acceso mediante pago, como siempre, al principio siempre es así y siempre será asi.

Para los incrédulos en general, yo trabajé en o*o y os puedo garantizar que nadie, absolutamente nadie sabe nada, nadie tiene conocimientos de como abrir nada, no nos enseñan como funciona por dentro ni el mediacypher ni nada, sólo hay atención al cliente para dudas y consultas, y luego averías de tv, teléfono e internet, pero nada más.... nadie sabe como funcionan las tripas de los dekos, eso es un secreto muy bien guardado de sus creadores y de algún pez gordísimo de o*o.
Y luego?... los instaladores?... jajjjajajaja, ellos tiran los cables, hacen conexiones y les enseñan que tienes que fijarte en el nº tal y en el nº pascual y llamarnos para que te demos el supercódigo milagroso.
Pero nada más, nada más, ellos... un instalador no tiene ni pu.t.a idea de cómo funciona todo esto, y si tu le dijeras a un instalador ábreme ésto te diria "si chaval, si, ójala supiera que yo tambien lo tengo en casa"... eso es lo que te diria

Saludos

clos2x3
17-07-2006, 10:49
eso que dices es una cosa normal ya que, si fueras tu el hackers que lo hubiera abierto, lo pondrias en la red ? te sacarías unas pelillas antes que nadie ?
la respuesta yo me la se, pues es lo mismo de siempre,
lo que hay que aprovechar es la informacion de los que pasaron por caja, (que son los unicos que tienen la prueba)
que lean la visa, que miren y remiren el deco, y el que tiene 2 uno de baja y el otro manipulado pues que hagan comparaciones...en fin, si no es asi poco vamos a sacar a menos que alguien que conozca al del monopolio le pague una juerga del 15 y una vez borracho le saque el tema...otra cosa no hay jeje :)

acidillo
18-07-2006, 01:37
si, ya te digo, eso es asi y siempre será asi... lo de hacer el agosto, de hecho ahi que ser bastante tonto para no hacerlo si llegases a hackearlo por tu cuenta jejeejj, pero que vamos, de todas formas a mi la antigua a**a me da igual, yo lo que kiero es follarme el coño :D , y lo único que tengo en casa para eso es un MetoPolla DVI 3200 que efectivamente eso, me la está metiendo él a mi jejejeje, con su maldito MediaCypher II, en fin, habrá que sentarse tranquilamente en el sofá y esperar.

usurario
18-07-2006, 21:23
novato total
pregunto?
tengo esperanzas con un dec digtl moto dv3? ya existe algo? no?
empieza la liga y estoy ya nervioso
gracias a tod@s

clos2x3
19-07-2006, 00:03
posssssss tranquilizate que te dará un infarrrrrrrrrrrrto compi
la liga queda mas de 1 mes
para el moto dv3 nanai de la china
de na.

presario2500
21-07-2006, 12:07
hola yo he comprado un deco para ono digital decir que me vino de andalucia yo vivo en cataluña y lo claro que lo del cp nada de nada yo lo veo todo menos los tdt que no estan pillados esos canales solo veo la sexta y el cuatro los demas nada hablamos del tdt los demas todos incluso miradores que debo hacer si se puede para coger los de tdt como se hace la busqueda tengo la configuracion de andalucia si la cambio por la de cataluña no veo na que debo hacer si se puede para coger los canales de tdt ?alguno que tenga dicho deco me pueda ayudar SALU22

gabiro
21-07-2006, 19:03
presario2500 tienes el deco digital conectado a la toma del tlf? para ver los miradores tienes que comprar o salen del tiron sin codificar? cuanto te ha costado eldeco? GRACIAS

sapo2006
22-07-2006, 17:29
amigos el analogico si se ve el digital no.no cambiar los terminos.

vilma
22-07-2006, 19:14
sapo2006 lee un poco mas, el digital ya se esta viendo lo que estamos haciendo es intentar averiguar que es lo que hay que hacerles.
PD: yo tengo uno y tambien un analogico y te aseguro que se la diferencia entre ambos

acidillo
24-07-2006, 03:02
no mezcleis, no mezcleis, no mezcleis, joder no mezcleis vale?
cada uno pregunta una cosa, y cada uno responde lo que le apetece, o*o está absolutamente cerrado, lo único que se puede estudiar es la red perteneciente a la antigua a**a, nada más ok?, la gente pregunta mal y otros responden peor, la gente lee que o*o está abierto y se piensan que es el otro o*o y asi todo el tiempo.

Zona antigua a**a usa sistema videoguard que es el viable a la investigación.
Todo el resto de o*o ya sea el de siempre o las últimas adquisiciones usa Motorola con sus MediaCypher II incorporados y ese nanai y punto.

Que quede bien clarito porque esto ya aburre.
Por cierto, nombrad l@s operador@s tanto satelitales como de cable mediante asteriscos para evitar males mayores, un tirón de orejas, y enmarronar la web ok?
Creo que es fácil de entender cuando lees otros posts y te fijas, a mi eso no me lo tuvo que decir nadie, lo vi yo solito.

clos2x3
24-07-2006, 14:31
nunca mejor dicho acidillo
http://www.hackhispano.com/foro/showpost.php?p=83974&postcount=64
no esta mal apostillarlo de nuevo.

presario2500
24-07-2006, 14:59
x gabiro aver segun me han dicho que hay que conectarlo al telefono ,yo ahora mismo al telefono no lo tengo conectado y se ve todo perfectamente lo del telefono es para borrar los eventos teoricamente comprados pues hay un tope y si llega a ese tope el deco o card (no se cual de los dos) se blokea lo llevo hace unos dias cuando pase un mes os iré dando informacion para tener mas experiencia sobre lo que hay que hacer y si lo hago bien SALU2

daviss
24-07-2006, 18:21
hola qese puede azer en un motorola gv3 de ono no tengo targeta xqe no me dieron

sapo2006
24-07-2006, 18:38
vilma el que tiene que leer mas eres tu.Desde luego que se esta viendo pero pagando.Te digo que no se puede porque lleva una tarjeta impreso con una memoria que si lo manipulas te lo cargas y lo utilizas como sombrilla .con esto que te digo nada porque siempre hay gente que vale para todo.pero a dia de hoy nada que rascar y si te lo digo es por algo.un saludo amigos

clos2x3
24-07-2006, 20:57
que listo eres sapo2006, mandas a leer a uno que lleva aqui mas tiempo que tu y a la vez sabe lo que dice y en cambio tu no tienes ni idea de lo que hablas...
si leyeras mas te darías cuenta de que lo que estamos diciendo es que el deco de a*na abq 1h4g y con sistema videoguard si se puede abrir, el que no hay nada es el de o*o de siempre, motorola dvi 3000 y 3200 sin tarjeta y con sistema mediacipher
asi que de pagar con el de auna, nada de nada.
tal vez estas diciendo cosas distintas a nosotros o no estas al dia.........

acidillo
25-07-2006, 00:51
jajjaja, lo que hay que leer....lo que yo digo, si uno pregunta mal.... el otro en vez de aclararle la mala pregunta realizada encima responde peor aún jajajaja, asi no nos enteramos ehh, y lo que es peor, la gente se lia cada vez más.
No os fijéis en dónde vivís, si la zona pertenece arriba o abajo, sólo fijaros en que tipo de descodificador tenéis.
Si tenéis un deko a*na abq 1h4g sólo tenéis que estudiar, investigar, educaros, y las respuestas saldrán a la luz solas.
Si teneis deko Motorola es igual donde viváis, como si vivís en la luna o bajo tierra, no podréis estudiar absolutamente nada, ya que el MediaCypher II no nos deja ni sacar la matrícula para ir al insti.
Y eso de mandar leer a alguien es insultante, es como llamarle tont@, simplemente se dice.... revisa los posts antes de preguntar algo ya posteado y sabido.
Saludos foreros.

vilma
25-07-2006, 03:50
Mi respuesta fue por lo de (amigos el analogico si se ve el digital no.no cambiar los terminos) por eso le dige que tenia que leer.
CLOS2x3 lo ha esplicado mucho mejor que yo.
Solo pongo esto para que valga de disculpa si alguien se molesto

sapo2006
25-07-2006, 20:48
CLOS2x3 amigo con tigo no iva nada y nunca te rijas por el tiempo porque el ultimo puede ser el primero.

acidillo
25-07-2006, 22:16
Dejémonos de chorradas de niñatos de haber quién tiene o no tiene la razón ok?
Eso no lleva a ninguna parte, y que yo sepa no nos ayuda para investigar y estudiar el sistema en cuestíón.
114 post con éste y seguro que la mitad sobraban.

clos2x3
25-07-2006, 22:37
CLOS2x3 amigo con tigo no iva nada y nunca te rijas por el tiempo porque el ultimo puede ser el primero.

sapo2006 amigo, no te ofendas con lo que te digo, simplemente que creo que hablamos terminos distintos porque ya he dicho por activa y por pasiva que los sistemas son distintos, que aunque el titulo de este post ponga
O*O DIGITAL aqui estamos hablando de los 2 sistemas digitales de cable que hay actualmente en el pais, mediacipher y videoguard, el primero nada de nada y el segundo si, pero como no leemos todo el hilo pues pasa lo que pasa...
ah! yo no me fijo en la cantidad de post de cada usuarios, ni siquiera se cuantos llevo yo ahora mismo, pero por mi respuesta anterior se que vilma en este hilo ha participado varias veces y tu es la primera, por eso te decia que leyeras todo el hilo...saludos.

fblasco69
27-07-2006, 16:43
wenas
me presento
soi fblasco69 vendedor de todos estos caxarros
soi revendedor de los abq etc etc
y estoy asta los huevos de los monopolios,ke me jodan con los precios ,los cuales yo tengo ke aumentar
pongo a vuestra disposicion decos y tarjetas para estudiar
decirme ke tengo ke acer y lo intentare
QUIERO ACLARAR:
-no lo hago para vender ,si no devolver una putada ke man gastao
l a info de la card se saca de la maestra (card maestra)
-si no pones el cable tlf se te bloquea la card y acto seguido la eprom
yo e mandado a madrid barcelona etc ,estos decos se hacen en sevilla ,
-cuando pones el deco,apretas menu
y te sale zona a elegir :madrid zaragoza etc ,apretas tu zona y yasta (osea lleva un soft actualizable en cada zona auna
no se ke mas deciros
INVESTIGUEMOS JUNTOS Y LO SACAREMOS SEGURO
saludos

vilma
27-07-2006, 20:03
por mi parte bien venido fblasco69 yo soy de sevilla y compre un deco de estos osea abq-1h4g me va de maravilla y ya me he puesto a disposicion,igual que tu, de quien pueda orientarme para sacarle a estos decos lo que tienen hecho.
Tengo uno sin estrenar y no hay manera de ver nada ni metiendole la targeta del deco que tengo tocado, no hace ni la busqueda de canales siquiera, asi que supongo que a estos decos habra que meterles algun firm,porque ami no se me actualiza el que yo tengo nuevo de ninguna manera. salu2

GALLEGO
27-07-2006, 21:56
yo no se si investigaremos juntos, pero seguro que vas a tener un monton de privados,
je,je,je

ALBATOR
27-07-2006, 23:36
Hola a todos, tengo cierta informacion ke os puede intersar
1/ Los decos de la zona a/na no se de ke tipo son, pero llevan tarjeta
2/ Los decos de la zona o/o son de la marca motorola dvi3020, sin tarjeta
3/ A estos se puede acceder a su sofware desconectandolo de la red electrica y volviendo a conectar manteniendo pulsado el boton de power.
4/ Habiendo hecho esto se seleciona el menu con las teclas subir bajar programas
5/ Para entrar en el menu especifico de datos tecnicos, solo hay ke pulsar casi seguido o la mismo tiempo la tecla de encendido y OK del mando

Bueno con esto me despido, espero keos sirva de algo, SALU2

presario2500
28-07-2006, 11:42
x flasco69 yo tengo un ABQ cuando dices se blokea por no poner al telefono es por pasarte en las compras de miradores o se blokea simplemente por no conectar el deco al telefono a la espera de un reseteo ,en caso de no tocar miradores tambien se blokea?hay alguna forma de resetear el deco por nuestra cuenta ?,ese creo que es el gran problema de estos decos ,alguna solucion a esto? SALUDOS

presario2500
28-07-2006, 11:51
otra cosa yo lo compré en la zona de andalucia (como creo que todos)yo soy de zona catalana ,y no veo tv1,la2,tv3,c33,t5,a3 y la cuatro ,la sexta y demas del tdt si los veo que puedo hacer para ver los teoricos libres?he probado poniendo zona "cataluña"me hace una rapida busqueda y no veo nada lo pongo en andalucia hago la busqueda y me quedo como estaba algun metodo para poder ver esos restos de canales?SALUDOS

fblasco69
28-07-2006, 13:31
lo ke se de los canales estos es ke son aereos ,no estan en digital aun
y referente alo del tlf ,si no me ekivoco el deco resetea la tarjeta al mes este utilizada o no
y la recarga o deja en su estado actual
en la tdt no t salen ningun canal de los nuevos de las privadas ? tele v ,antena III,etc?

y referente a los privados :solo e recibido uno y era para vendermelo a mi
no veas lo ke lee la peña

presario2500
28-07-2006, 16:37
si que estan en digital eso seguro por lo menos en cataluña esos canales que no veo yo y comento antes lo unico que pregunto es si hago bien la busqueda ,o no?y se sabe cuanto es el tope de la recarga para no blokear el deco?salu2

acidillo
28-07-2006, 20:38
Siento deciros una cosita..... en o*o parece ser que no son tontos, y al igual que no se puede investigar Motorola, tampoco es que se masturben precisamente sabiendo que los abq 1h4g si son educables, además no están por la labor de que una zona en concreto como es la antigua a**a les fastidie, ellos lo que quieren es unificar el sistema y los dekos, además en los abq 1h4g parece ser que no hay soporte para ojo, y aquí os pongo una cosita que he visto en otro foro... todo empezó cuando yo les pregunté si era cierto el rumor de que estaba colgando de un hilo el contrato con Motorola porque éstos pedían más dinero por mantener (alquilarles) su sistema de encriptación propio implantado en sus dekos.

"""" Dicen por ahi que está a punto de romperse el contrato con Motorola por subida de precios por mantener el sistema MediaCipher II.
Dicen que en agosto ahi un ultimátum... se dice en muchos foros, pero nadie sabe de dónde salió la fuente principal
Alguien sabe algo?? """"

"""" No tenemos constancia de que haya malas relaciones con Motorola.
De momento si hay conversaciones con ADB, la suministradora de decos en las zonas A**a que se supone seran retirados y tendran que ponerse de acuerdo para rescindir ese contrato. """"

Osea que según esto están en conversaciones con ADB para finiquitar esos molestos dekos que además de ser educables nisiquiera les aportan ingresos por el ojo... yo si fuera vosotros no gastaría mi dinero para que me dejen con cara de imbécil en 4 dias.

Espero que me equivoque y dure muxo la educación en la zona a**a.
Ójala me equivoque.

SAludos

novato1223
28-07-2006, 21:51
x acidillo

No estoy del todo de acuerdo contigo.

Yo soy de la zona auna y acaban de cambiar todos los analogicos por los abq.

Segun yo he leido la politica de ono es recortar al maximo los gastos en las zonas auna incluydo en la atencion al cliente.

Si quieren recortar gastos no creo que se metan en cambiar otra vez miles de dekos.

Creo que la cosa durara bastante mas.

x fblasco69

Ataste los cabos tal y como te dije? jeje lo siento colega te han echo la cabra supongo sabras ya quien soy.

Tengo tarjetas de sobra procedientes de bajas t21 y uploap y estoy a vuestra disposicion para lo que sea.

Un saludo

acidillo
29-07-2006, 03:05
Si? pues entonces genial, ya os decía yo que ójala me equivocara :D, larga vida al los abq entonces jejej

Saludos y muy buena educación :0=

novato1223
29-07-2006, 13:00
informacion de una educada

Trying to reset card...
Reset Successful

RX ATR : 3F 7F 13 25 02 40 B0 12 69 FF 4A 50 90 41 55 00 00 00 00 00

Card Information Hex Decimal
---------------------------------------------------
Card ID 000xxxxx 00000xxxxxxx
IRD Number xxxxxxxx xxxxxxxx
USW 0000 0
Fuse/Guide 05 91 05 145
Time Zone 00 ???
Rating 0F ???
Spending Limit FFFF $655.35
---------------------------------------------------

Channel Tier Expires
---------------------------------------------------
1. 32 5B Sept 2006 Day 25 (M=B0, D=D9)
2. 37 54 Sept 2006 Day 25 (M=B0, D=D9)
3. 47 95 Sept 2006 Day 25 (M=B0, D=D9)
4. 45 B3 Sept 2006 Day 25 (M=B0, D=D9)
5. 00 07 Sept 2006 Day 24 (M=B0, D=D8)
6. 00 00 Jan 1992 Day 00 (M=00, D=00)
7. 00 00 Jan 1992 Day 00 (M=00, D=00)
8. 00 00 Jan 1992 Day 00 (M=00, D=00)
9. 00 00 Jan 1992 Day 00 (M=00, D=00)
10. 00 00 Jan 1992 Day 00 (M=00, D=00)
11. 00 00 Jan 1992 Day 00 (M=00, D=00)
12. 00 00 Jan 1992 Day 00 (M=00, D=00)
---------------------------------------------------

Broadcaster Purchases Purchase Limit


informacion de una de bajaa


Trying to reset card...
Reset Successful

RX ATR : 3F 7F 13 25 02 40 B0 12 69 FF 4A 50 90 41 55 00 00 00 00 00

Card Information Hex Decimal
---------------------------------------------------
Card ID 00094787 000006081350
IRD Number 03E1527D 65098365
USW 0000 0
Fuse/Guide 05 93 05 147
Time Zone 00 ???
Rating 0F ???
Spending Limit FFFF $655.35
---------------------------------------------------

Channel Tier Expires
---------------------------------------------------
1. 32 0A Jun 2004 Day 01 (M=95, D=C1)
2. 00 00 Jan 1992 Day 00 (M=00, D=00)
3. 00 00 Jan 1992 Day 00 (M=00, D=00)
4. 00 00 Jan 1992 Day 00 (M=00, D=00)
5. 00 00 Jan 1992 Day 00 (M=00, D=00)
6. 00 00 Jan 1992 Day 00 (M=00, D=00)
7. 00 00 Jan 1992 Day 00 (M=00, D=00)
8. 00 00 Jan 1992 Day 00 (M=00, D=00)
9. 00 00 Jan 1992 Day 00 (M=00, D=00)
10. 00 00 Jan 1992 Day 00 (M=00, D=00)
11. 00 00 Jan 1992 Day 00 (M=00, D=00)
12. 00 00 Jan 1992 Day 00 (M=00, D=00)
---------------------------------------------------

Broadcaster Purchases Purchase Limit
---------------------------------------------------
DirectTV $0.00 $ 0.00
USSB $0.00 $ 0.00



decirme que pruevo y como y lo hago

un saludo3

fblasco69
29-07-2006, 13:43
novato1223 _SI ME LA ICIERON SI
LOS MUI CABRONES
POR ESO KIERO DESMANTELAR EL TEMA
Y SE JODAN LOS DEL MONOPOLIO
AKI ESTOI PA LO KE SEA

N@RKO
29-07-2006, 14:02
se ke este post no debe ir aki pero bueno. necesito saber como crear nuevos post. no responder a otros, sino crear nuevos. hay un par de temas ke me gustaria comentar

acidillo
29-07-2006, 16:03
pues en el hilo principal de TVCABLE le das a nuevo tema.....
más facil imposible jejejeje

novato1223
30-07-2006, 11:17
Alguno entiende italiano?
Se supone o yo entiendo que usan el mismo sistema y ellos lo tienen mas que reventado creo que ay esta la clave.

Sobre la tarjeta esta vale para cualquier deko salvo para la compra de takis para ello deve estar casada pero solo para la taquis para el resto no



NDS ITALIA

La SmartCard
________________________________________

La struttura di una smartcard con CPU ( + CoProcesore o ASIC) è strutturata come in figura:



Lo schema rappresentativo fa vedere che i contatti servono a collegare il reader con i componenti all’interno del microprocessore attraverso una interfaccia. Questa collega direttamente con la CPU.
Sono presenti tre livello di memoria:

1) RAM (Random Access Memory - Memoria di accesso casuale)

2) ROM (Ready Only Memory - Memoria a sola lettura)

3) EEPROM (Electrically Erasable Programmable ROM - Memoria programmabile/cancellabile elettronicamente.

E presente una CPU che gestisce tramite un bus di sistema il I/O dei dati da/verso i "gestori" delle memorie e Firmware. I "gestori" sono (sommariamente): uno Stack (sicuro) per l'esecuzione del programma; provabile uno (oppure due) dal codice di Sistema Operativo per eseguire annidamenti di chiamate a subroutine; provabile un altro per StackPointer, ProgrammCounter, Registri di Stato, etc etc. Presente anche un CoProcessore crittografico (ASIC).
A richiesta del codice, l'ASIC esegue i processi di crittatura di primo/secondo livello a seconda del sistema in uso (esempio: RSA per il Seka2 ed Irdeto2).

Il seguente schema contiene la definizione dei contatti d’accordo all’ISO7816-2



La tabella seguente determina il nome del contato nel chip ed uso secondo ISO 7816

Contato Designazione Uso
C1 Vcc Collegamento attraverso cui l'alimentazione di funzionamento è fornita al circuito integrato del microprocessore nella scheda.
C2 RST Contato che permette l’accesso alla linea attraverso cui il IFD può segnalare al circuito integrato del microprocessore della smartcard
di iniziare la relativa sequenza di reset.
C3 CLK Contato di linea che fornisce un segnale di clock al circuito integrato del microprocessore.
Questa linea controlla la velocità di funzionamento e fornisce una struttura comune per la comunicazione di dati fra il IFD ed il ICC.
C4 RFU Riservato per futuri usi.
C5 GND Contato nel chip che fornisce il negativo comune fra il IFD ed il ICC.
C6 Vpp Contato d’alimentazione usato per programmare EEPROM della prima generazione ICCs.
C7 I/O Contato di input/output che fornisce una linea di comunicazione in semiduplex fra il lettore e la smartcard.
C8 RFU Riservato per futuri usi.



Funzionamento dell’IRD
________________________________________



LNB LowNoiseBlock
Sintonizzatore Sintonizza la frequenza del canale che si vuole vedere.
Demodulatore QPSK transforma il segnale armonico modulato in sequenza binaria.
FEC corregge gli eventuali errori nei pacchetti DVB/MPEG2. Utilizza i bit di ridondanza per fare le eventuali correzioni.
Demultiplixer in base all'header di ogni pacchetto determina scartare il pacchetto, inviarlo alla CAM,inviarlo al DecoderMPEG oppure (in caso di pacchetti di dati) alla CPU.
CAM Modulo d'accesso condizionato. E' in grado di eseguire il Descrambling.Per effettuare il Descrambling (nel caso di segnale crittato) utilizza una Smartcard Nel caso di acquisto di eventi PPV la CAM comunica al Provider via Modem.
DecoderMPEG2 riporta in forma non compressa il flusso audio/video
DAC Converte il flusso audio / video in analogico per collegare al video.
EEProm Memoria riprogramabile elettronicamente.


























Lo standard ISO 7816-3
________________________________________

Un’operazione di RESET consiste in una risposta della card che, secondo lo standard ISO 7816-3, inizia con il carattere TS seguito da al più 32 caratteri nel seguente ordine:

Reset
|
| _________________________________________ _______ _________
| | | | | | | | | | | | | | | | |
'-->| TS| T0|TA1|TB1|TC1|TD1|TA2|TB2|TC2|TD2| ......... | T1| ... | TK|TCK|
|___|___|___|___|___|___|___|___|___|___|_ _|___|_ _|__ |___|


TS Initial Character
TO Format Character (obbligatorio). Si compone di due parti:

I primi quattro bits (quelli più significativi b8, b7, b6, b5) denominati Y1 indicano con il valore 1, la presenza dei rispettivi successivi caratteri TA1, TB1, TC1, TD1.

Gli ultimi quattro bits (quelli meno significativi b4…b1) denominati K indicano il numero (0...15) di Historical Characters presenti

Y1 K
b8 b7 b6 b5 b4 b3 b2 b1


Y1 Indicatore della presenza dei caratteri di interfaccia

b5=1 indica la presenza di TA1
b6=1 indica la presenza di TB1
b7=1 indica la presenza di TC1
b8=1 indica la presenza di TD1

K Numero di Historical Characters (max. 15)

TAi Interface Character
Codes F1 (Clock Rate Conversion Factor) e D1 (Bit Rate Adjustment Factor)

TBi Interface Character
Codes I1 (Maximum Programming Current) e P11 (Programming Voltage)

TCi Interface Character
Codes N (Extra Guard Time)

TDi Interface Character
Si compone di due parti:

I bits b5, b6, b7, b8 di TDi contenenti Yi per i > 1 (Y1 è contenuto in TO come visto prima) definiscono o meno la presenza di ulteriori caratteri di interfaccia TAi…TDi trasferiti in ordine dopo il carattere che contiene Yi.
Quando necessario, il decoder dovrà attribuire un valore di default per i caratteri di interfaccia non trasmessi.
Quando TDi non è trasmesso, il valore di default per Yi+1 è zero, indicando con ciò che nessun ulteriore carattere di interfaccia TAi+j, TBi+j, TCi+j, TDi+j sarà trasmesso.
Gli ultimi quattro bits del carattere TDi specificano il tipo di protocollo T, fornendo le regole utilizzate nel processo di trasmissione. Quando TDi non è trasmesso, si assume T=0.

T=0 asynchronous half duplex character transmission protocol.
T=1 asynchronous half duplex block transmission protocol.
T=2 riservato per operazioni future full duplex.
T=3 riservato per operazioni future full duplex.
T=4 riservato per un asynchronous half duplex character transmission protocol avanzato.
T=5 riservato per usi futuri.
T=13 riservato per usi futuri.
T=14 riservato per protocolli ISO standardizzati.
T=15 riservato per estensioni future.

Quando T=0, TCK non deve essere inviato. In tutti gli altri casi TCK deve essere inviato.


Yi+1 T
b8 b7 b6 b5 b4 b3 b2 b1


Y1 indicatore della presenza dei caratteri di interfaccia
b5=1 indica la presenza di TAi+1
b6=1 indica la presenza di TBi+1
b7=1 indica la presenza di TCi+1
b8=1 indica la presenza di TDi+1

T Tipo di protocollo


T1 ... TK Historical Character (max. 15 ed opzionali)

TCK Check Character (condizionato)



I caratteri TAi, TBi, TCi, TDi (opzionali) specificano i parametri fisici del circuito integrato nella card e le caratteristiche logiche del successivo protocollo di scambio.
I caratteri T1…TK forniscono informazioni generali quali, ad esempio, il produttore della card, il chip e la ROM utilizzati, lo stato di vita della card. La specifica di tali caratteri non è contemplata nello standard ISO/IEC7816.







L’Answer To Reset delle nuove carte
________________________________________

L’ATR delle nuove card NDS è:


TS TO TA1 TB1 TC1 TD1 TA2 HISTORICAL CHARACTERS (T1 ... Tk)
3F FF 13 25 03 10 80 33 B0 0E 69 FF 4A 50 70 00 00 49 54 02 00 00


Dallo standard ISO poco sopra esaminato, abbiamo:


TS 0x3F INVERSE convention (differentemente dal sistema Mediaguard dove si aveva una convenzione DIRETTA, essendo TS=FF)

TO 0xFF L’HighNibble (1111) indica la presenza dei successivi caratteri TA1, TB1, TC1 e TD1;
Il LowNibble (1111) indica che ci sono 15 Historical Charatecters

TA1 0x13 F1 (Clock Rate Conversion Factor) pari a 1
D1 (Bit Rate Adjustment Factor) pari 3

TA2 0x80

TB1 0x25 I1 (Maximum Programming Current) pari a 50mA
P11 (Programming Voltage) pari a 5.0 volts

TC1 0x03 N (Extra Guard Time) pari a 2

TD1 0x10 L’HighNibble (0001) indica la presenza di un ulteriore carattere (TA2)


I 15 bytes successivi a TA2 ( T1 ... T15 ) sono gli Historical Characters.


Programming Voltage 5.0 volts
Programming Current 50ma
Maximum Clock Frequency 5.0MHz

Assuming a 3.5790MHz clock

Work ETU 0.0000259849 seconds
Guard Time 0.0003897737 seconds
Baud Rate After Reset 38484


Il Baud Rate iniziale durante la fase di reset e di generazione ATR è 9600 b/s, dopo la richiesta ATR il Baud Rate è 38400 b/s.

Per informazioni più dettagliate sullo standard ISO7816-3 e sull’ATR in gererale delle carte NDX, vi rimando al fantastico documento di Micromax.


La struttura delle istruzioni NDX
________________________________________

Il sistema NDS riconosce tre livelli d’operazioni. E' importante distinguerli:

• Comando: una funzione che interviene per mezzo di determinati valori assegnati all’INS-Byte;

• Nano: una funzione che interviene per mezzo dei valori inseriti nel DataPacket (Pacchetto Dati). Il DataPacket é la parte che segue l’invio dell’HeaderPacket (Pacchetto Header) che contiene l’INS-Byte, ossia il Comando da eseguire;

• uNano: alcuni Nano prevedono delle sottoperazioni dette appunto uNano che sono identificate da particolari valori inseriti nel NanoPacket (Pacchetto-Nano).


Un Comando NDS ha quindi la seguente struttura:

Header Data-Packet Nano Signature
CLA INS P1 P2 Len [Nano..nano-len…nano-data]..[Nano1… 67 08 SIGN


Tutti i comandi NDS si possono analizzare tenendo conto dei due pacchetti cui sono composti:

Header
CLA Classe del comando da eseguire
INS Tipo di istruzione da eseguire
P1 Parametro 1
P2 Parametro 2
LEN Lunghezza del comando (in esadecimale)


DataPacket segue il pacchetto Header e contiene l’INS Byte (Echo Byte), ossia il byte che indica il comando da eseguire. Il DataPacket compone il comando, varia per ogni comando e contiene Nani ed Indicatori seguiti dai relativi dati.
Il DataPacket può essere inviato dall’IRD (Cam) alla card [IRD → CARD], ovvero dalla card all’IRD [CARD → IRD].

Seguono infine

67 08 Precede la firma elettronica (Signature). Come vedremo successivamente, 0x67 indica la presenza di una SIGNATURE di LEN 0x08 (quindi SIGNATURE di 8 bytes), indicabile anche con 67_08;

SIGN Signature (composta da 8 bytes, non necessaria per tutte le istruzioni).







Nani ed Indicatori
________________________________________

Le istruzioni NDS contengono Nani ed Indicatori.

I NANO(comandi) sono delle funzioni che vengono eseguite attraverso i dati che sono ivi contenuti. Ogni Nano ha una sua lunghezza. Alcuni Nano sono a lunghezza fissa, altri a lunghezza variabile. Possiamo quindi avere i seguenti casi:

(Cx) d1 d2 ..dn Nano a lunghezza fissa. I dati seguono immediatamente il Nano.

(Cx) LL d1 d2 ..dn Nano a lunghezza variabile. La lunghezza segue immediatamente l’identificativo del Nano (Nano Indicator); i dati seguono immediatamente dopo. Da notare che se LL=FF allora la Len del Nano è dato dal byte seguente quello con valore FF.

I Nanocomandi sono contenuti negli ECM e negli EMM, oltre che nell’INS 36.
Alcuni Nano possono contenere delle sotto-operazioni da eseguire: queste sotto-operazioni, chiamate u-NANO, sono di solito a LEN fissa.

Distinti dai Nanocomandi sono gli INDICATORI (o Type Info). Gli Indicatori, a differenza dei Nano che eseguono certe funzioni, servono soltanto a indicare i tipi di dati presenti nella card.
Gli Indicatori sono presenti in molte risposte della card.


INDICATORI dell'INS 74
________________________________________

03 [02] 01 F6 Sempre lo stesso risultato

05 [20] 4954410000000000
0000000000000000
0000008000000000
0001000000000000 Il 28°byte è 00 su card virgin, 01 su card attive
INS 74 05

15 [10] 0000000000000000
0000000000000000 PPV record

16 [48] 800702424FFFFFFF Phone Number PPv download
800702424FFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF INS 74 09

17 [04] 5B0D 76F1 Data&Time richiesta INS.

18 [02] 00 00 ??

19 [04] FF FF FF FF Indica il contenuto del 12°,13°,14°,15° byte del Nano E2

1A [04] 00 00 00 00 Indica il contenuto del 16°,17°,18°,19° byte del Nano E2

1B [04] FF FF FF FF Indica il contenuto del 5°(PCB),6°,7°,8° byte del Nano E2

1C [10] 0000000000000000
0000000000000000

1D [08] 4954414C49412020 PostCode indicator

23 [04] 80 00 PP PP Indica il contenuto del 1°,2°,3°(PIN),4°(PIN) byte del Nano E2

24 [03] 00 00 64 Indica il contenuto del 9°,10°(LIMITE di SPESA),11°(LIMITE di SPESA)
byte del Nano E2

24 [05] 03 20 5B 0A 20 Indica che c'è stata la visione di tutti i canali fino al 10/08

25 [01] xx ??

26 [02] 3F 00 In fase boot uguale x tutti

28 [01] xx ??

43 [02] xx xx Contatore giornaliero iniziante dall'Att. E' lo stesso contatore presente
nell’indicatore 5E_05 dell'INS 36

44 [01] xx ??

46 [01] xx ??

50 [01] xx ?? sempre uguali

51 [07] 00000000000000 ??

52 [08] 0000000000000000 ??



INDICATORE dell'INS 70
________________________________________

39 [23] 00000000404100000000000000000000
00002000000000000000000000000040
5C1900



INDICATORE dell'INS 72
________________________________________

23 [21] 00000000000000000000000000000000
00000000000000000000000000000000
20 PPV record





INDICATORE dell'INS 76
________________________________________

24 [08] 0226 5D0F 00000000 Tier



INDICATORI dell'INS 6C
________________________________________

6A [06] 001000102300

6B [08] 0000000800000000

6E [10] 00x16 bytes

6F [60] 00x96 bytes



INDICATORE dell'INS 4E
________________________________________

26 [03] 84 01 04



INDICATORE dell'INS 1E
________________________________________

27 [07] 01 00 00 02 00 00 00



INDICATORI dell'INS 36
________________________________________

E9 [04] Indica il numero dei tiers attivi e loro scadenza

F3 Indica l'IRD Number

5E [05] Activation Counter, i primi 2 bytes indicano da quanti giorni è attiva la card

DF [04] Mese e giorno in cui il decoder cercherà di collegarsi al server SKY (INS 7Cool

E2 [13] PIN, PCB, SpendingLimit Indicator
E2_13
80 00
00 00 PIN
FF PCB
FF FF FF 00
00 64 Limite di spesa
FF FF FF FF ?? modificabili con l'iINS 2E 03
00 00 00 00 ?? modificabili con l'INS 2E 05, legati alla PPV

EF [02] ?? (nelle card virgin 00 01, in quelle attive 00 00)

F8 [24] Old PPV Event Record
F8_24
02 Slot Record
CC54 Ev.ID
5E09 Data di acquisto+1giorno
BF7D ??
012C Costo evento
01 Status visione (00:ev. non visionato; 01:ev. visionato; 02:acquisto
non confermato e dunque non visionato)
040180 ??
5E0853EB Data e ora acquisto (l’ora è indietro di 1ora)
00000000
5E0854AA Data e ora di fine preview (l’ora è indietro di 1ora)
000000000000
5E09 Data acquisto+1
0065 Tipo di acquisto credito a scalare
80 Status: visionato (se 20 allora non visionato)

L'indicatore F8 è presente tante volte quanti sono gli eventi acquistati registrati sulla card.


FA [08] Nella vecchia codifica indicava dei bytes variabili usati per la generazione della signature. Oggi indica 8 bytes che variano molto raramente e che forse possono essere legate alla signa.

FD [11] Provider Last PPV record indicator
FD_11
01 Prov.number
00 65 Tipo di acquisto credito a scalare via telefono
00 01 Number PPV record
00 01 Costo evento
06 41 Credito totale spendibile
03 21 Metà del credito totale(dipende da questo)
000000000000 ??























Nano a LEN fissa
________________________________________

Nano 00
Null Nano
Non esegue alcuna funzione.


Nano 01 [LEN 04]
Set Data & Time
I 4 bytes della data e dell'ora sembrano concorrere all'elaborazione della signature degli ECM e degli EMM. Così la signature diventa unica e sempre diversa, perchè relazionata a valori temporali. La presenza di vincoli temporali e la loro rilevanza in fase di generazione signature costituisce un punto di forza della codifica NDS.



Nano 02 [LEN 01]
Sets Rating Byte, marks message as ECM (only ECM)
Il contenuto di questo Nano descrive il tipo di contenuto della programmazione. Analizzando il bitmap possiamo dire:

7654 3210
0000 0001 01 canale criptato standard
0000 0010 02 canale PPV, evento già iniziato non più aquistabile
0000 0101 05 canale PPV, evento iniziato ma ancora aquistabile, con preview terminata.
1000 0001 81 canale PPV, evento non ancora iniziato e aquistabile.
1000 0010 82 canale PPV, evento iniziato, aquistabile con preview non ancora terminata.


Nano 03 [LEN 03]
Checks channel entitlement
I primi 2 bytes rappresentano il Channel ID associato al canale su cui siamo sintonizzati nel momento in cui l’ECM/EMM è stato generato dall’IRD.
Ad uno stesso canale, possono essere associati più Channel ID, tutti presenti nell’ECM/EMM.
La card effettua due controlli: dapprima verifica se il Channel ID associato al Nano 03 è contenuto tra quelli presenti nella smartcard; poi verifica se il valore del 3° byte del nano è minore del valore della data di scadenza del Tier. In caso affermativo setta dei flags interni che permetteranno la generazione della DCW (Decrypted ControlWord) come risposta al comando D1 54. Viceversa la DCW di risposta sarà tutta a 00.


Nano 04
Significato NON noto.


Nano 06
Significato NON noto.


Nano 07
Significato NON noto.


Nano 09 [LEN 03]
Initialise ASIC with specified ***, flushes the command buffer (no signature stay)
Dai primi di Ottobre 2004 è stato integralmente sostituito dal Nano 90, che sostanzialmente è analogo.


Nano 10 [LEN 02]
Some form of counter
I due bytes dell’argomento del nano mostrano una sequenza che si incrementa ad ogni successivo EMM contenente il Nano 10. Come si evince dall’NDSFaq 1.0 di Micromax, per NDS 1 ciascun Provider (ad esesempio Stream e Tele+) aveva il proprio numero di sequenza. Esempio:

29 FE 29 FF 2A 00
2A 01 2A 02 2A 03


Nano 14
Significato NON noto


Nano 18
Significato NON noto


Nano 19 [LEN 01]
Set region code
Richiede i Filtri OPEN per essere eseguito. L’argomento corrisponde al Region Code.


Nano 1E [LEN 08]
Set Postcode Value
Questo Nano setta il valore del PostCode.
Gli 8 bytes contengono solo numeri, lettere maiuscole o blanks e rappresentano il Codice Postale (PostCode).

Esempio:

Valore Descrizione
41 42 31 30 20 20 20 20 "AB10 "
43 48 34 20 20 37 45 4° "CH4 7EJ"
5A 45 32 20 20 20 20 20 "ZE2 "

Il Nano 1E è sempre usato in combinazione con il Nano 31. Il Nano 1E e il Nano 38 non sono mai presenti insieme nello stesso data-block.
Richiede i Filtri OPEN e minimo la Group *** per essere eseguito.


Nano 1F
Significato NON noto


Nano 24
Close Filters


Nano 25
Flip filters, from open to closed or vice versa
Se i Filtri sono aperti li chude. Viceversa se sono chiusi li apre.


Nano 2D [LEN 04]
Set Activation Date&time
Richiede i Filtri OPEN e minimo la Public *** per essere eseguito.


Nano 2E
Significato NON noto

Nano 30
Open filters


Nano 31 [LEN 04]
Opens filters if the Unique Address (UA) matches exactly
I quattro bytes del comando rappresentano l'Unique Address della card.
Solo se il Numero Seriale è identico a quello della card i successivi Nano verranno eseguiti.
Il Nano 31 (UniqueAddress) e il Nano 38 (PostCode) non sono mai presenti insieme nello stesso data-block.


Nano 32 [LEN 03]
Open Filters if Shared Address Match
I tre bytes del comando rappresentano il gruppo di cards (card group o Shared Address) a cui e’ diretto l’EMM.
Solo se questi bytes sono identici ai primi tre bytes del UniqueAddress i successivi Nano sono eseguiti.
Il Nano 32 (Card Group Select) e il Nano 33 (CUSTWP Bitmap) non sono mai presenti insieme nello stesso data-block.


Nano 33 [LEN 23]
Open Filters if CUSTWP Bitmap Set
I primi tre bytes rappresentano il Card Group (Shared Address o SA).
I rimanenti 0x20 bytes (32 decimale) rappresentano l’AddressMatrix (simile al Nano F0 del Seca).
Questo AddressMatrix contiene esattamente 256 bits: ciascun bit corrisponde ad una delle 256 cards del gruppo, cioè corrisponde al valore del quarto byte del Unique Addresses, detto CUSTWP (Customer Word Pointer che, appunto, può assumere FF=256 valori).
L’EMM è indirizzato solo alle cards corrispondenti ai bits “settati” (ossia che assumono valore 1).
Il bit corrispondente ad un dato CUSTWP è individuato nel seguente modo:

Esempio con CUSTWP = AE

1. Dividendo il valore del CUSTWP per 8 si ricava quale dei 32 bytes, numerati a partire da 00, contiene il bit corrispondente al CUSTWP.

CUSTWP/8 = AE/8 = 15h

2. Il resto della divisione tra il valore del CUSTWP e 8 fornisce la posizione del bit all’interno del byte.
I bits vanno numerati da 0 a 7 da sinistra verso destra.

Nel nostro esempio, il bit associato al CUSTWP AE è il bit 6:

7 6 5 4 3 2 1 0

Alcuni esempi rendono il tutto più chiaro:

33001234800000 la card 00 12 34 07 é indirizzata
(Bitstring: 100000000000000000000000...).

330012340A4000l le cards 00 12 34 03, 00 12 34 01 e 00 12 34 0E sono indirizzate
(Bitstring: 000010100100000000000000...)

Questo Nano di solito è usato in combinazione con il Nano 41 per aggiornare la Data di Scadenza di un Channel ID. In questo caso il comando dovrebbe essere criptato con chiave di gruppo. Da quando è stato generalizzato il Nano 90, non si sono più visti EMM criptati con la chiave di gruppo.


Nano 3D [LEN 02]
Set PPV spending limit e fuse byte
Richiede i Filtri OPEN e minimo la Group *** per essere eseguito.


Nano 3E
Significato NON noto


Nano 41 [LEN 05]
Add or Update (Expiration Date) Channel Entitlement
Questo nano crea, se non già presente, un nuovo Channel ID sulla card e relativa Data di Scadenza.
Se il Channel ID è già presente sulla card, il Nano aggiorna la data di scadenza e alcuni valori e flags.
Dei 5 bytes associati al nano, i primi due rappresentano il Channel Entitlement (Channel ID).
I successivi due bytes costituiscono l’Expiration Date del Channel ID: il primo di questi due bytes rappresenta l’anno e il mese, il secondo il giorno.


Nano 42 [LEN 02]
Delete Channel ID
Questo Nano cancella definitivamente il Channel ID indicato dai due successivi bytes, dalla lista di quelli presenti sulla card. Questo nano può essere presente più volte nello stesso data-block.
Richiede i Filtri OPEN e minimo la Public *** per essere eseguito.


Nano 43
Significato NON noto


Nano 44
Significato NON noto


Nano 48 [LEN 02]
Enable PPv Preview
I due bytes che seguono (xx xx), indicano che l'evento è già iniziato ed è attiva la preview. La preview rimane attiva fino a 6-7 minuti dopo l'inizio del film. Dipende dunque dall'orario di inizio del film, non dal momento in cui noi lo visioniamo (come nel Seca).


Nano 49
Significato NON noto
Nano 4A
Significato NON noto


Nano 4B
Significato NON noto

Nano 4D [LEN 0B]
Purchase PPV info
Questo Nano fornisce informazioni sull'evento PPV in corso. E' contenuto negli ECM degli eventi PPV e nelle INS 46.


Nano 67 [LEN 08]
Signature
Vedi paragrafo sulla Signature.


Nano 6D [LEN 09]
Server Number
Il Nano 6D viene inviato tramite EMM, contiene il numero di telefono del server dove il decoder si collega quando la scheda ha terminato il credito PPV. Quando il decoder si collega, scarica gli eventi scritti e ricarica la scheda. Vedi INS 78.


Nano 7F [LEN 0A]
*** Adjustment
I 10 bytes di argomento del Nano 7F dovrebbero rappresentare i *** Adjustment Bytes usati per aggiustare la risposta della card all'ECM. Vedi paragrafo sulla Signature.


Nano 90 [LEN 03]
Inizialize ASIC
Analogo al Nano 09, usato per i recenti comandi criptati, tale nano ci dice se e come l'ASIC è inizializzato.

90 YY XX ZZ

XX Indica il numero di bytes criptati che seguiranno

YY Rappresenta un bitmap, in cui l’HighNibble (bits 7, 6, 5 e 4) indica il COMANDO mentre il LowNibble (bits 3, 2, 1 e 0) indica la configuración con la quale il COMANDO di cui sopra è firmato. Dunque

7654
0000 0 Non inizializza l'ASIC
0100 4 Individua un EMM
0110 6 Individua il particolare EMM LEN 83
1100 C Individua un ECM o una INS46

3210
0000 0 Chiave pubblica primaria
0001 1 Chiave pubblica secondaria
0010 2 Chiave di gruppo primaria
0011 3 Chiave di gruppo secondaria
0100 4 Chiave privata primaria
0101 5 Chiave privata secondaria


ZZ Indica la versione della CARD. Per la italiane e le inglesi abbiamo 02, per le HU americane abbiamo 03, per le P4 e P5/D1 sempre americane abbiamo 05.



Nano DE [LEN 28]
Vedi INS36
Il Nano DE presenta 24 bytes che possono variare in relazione a specifiche INS 42 e 16 bytes che variano a ogni reset. Questi 16 bytes variabili, con molta probabilità sono legati alla generazione della signature.



Nano a LEN variabile
________________________________________

Nano 38
Check Data and Open Filters If Match
Questo Nano a lunghezza variabile ha il compito di aprire i filtri se il dato associato corrisponde a quello presente sulla card. Il tipo di dato su cui è effettuato il confronto è indicato dal 1° byte dopo la LEN, che può quindi essere considerato un uNano.

uNano
01 Channel Entitlemen (Channel ID)
02 PPV Event ID
03 Activation date (Mese e Giorno)
06 PostCode (FF's nel PostCode sono trattati come wildcards)
08 ????

Le LEN ammesse sono 03, 05, 07, 09.
Per esempio, se il Nano si presenta in questa forma:

38 09 06 aa bb cc dd ee ff gg hh

viene verificato se aa bb cc dd ee ff gg hh è uguale al valore del PostCode presente sulla SC. In caso positivo i filtri vengono aperti.
Il Nano 38 e il Nano 31 (Unique Address) non sono mai presenti insieme nello stesso data-block.


Nano 75 [LEN 0F]
Set Local Region Code


Nano 75 [LEN 13]
Set Country Code & Region Code
Normalmente utilizzato durante l’attivazione, questo Nano setta il Country Code e il Region Code:
Valore Descrizione
0047425201 0000000000000000000000000000 474252 = GBR
0047425202 0000000000000000000000000000 474252 = GBR
0047425208 0000000000000000000000000000 474252 = GBR
0049544100 0000000000000000000000000000 495441 = ITA

Il byte sottolineato rappresenta l’identità della regione (RegionCode) all’interno dell’area di appartenenza.











































Le nuove classi
________________________________________

Con l’avvento della nuova codifica sono cambiate le classi delle istruzioni. Nella vecchia codifica l’unica classe con la quale venivano inviati i comandi era la 48. Adesso le classi supportate dalle nuove card sono ben 8:

D0 D1 D2 D3
D4 D5 D6 D7




Le ultime 4 sono antagoniste delle prime 4, ossia si comportano allo stesso modo.
Analizziamo brevemente queste classi:


CLASSE D0 Usata in fase di boot prima della ricezione dell’INS BE, agisce “in chiaro” senza alcun crypt;

CLASSE D1 è la classe “standard”, usata dopo l’invio dell’INS BE in fase di boot, agisce “in chiaro” senza alcun processo di crypt;

CLASSE D2 è una classe particolare, perché agisce con un particolare processo di crypt. Infatti “appende” alla fine dell’INS, 16 bytes di dati criptati (una specie di signature aggiuntiva). Questi bytes vengono sempre aggiunti: se la LEN è sufficiente a contenerli (LEN>11hex) allora “coprono” gli ultimi 16 bytes di dati in chiaro dell’INS; se la LEN minima non è sufficiente (LEN<11hex) la risposta dell’INS sarà 00xLEN + 16 bytes. C’è da considerare comunque che se l’INS viene chiesta dall’IRD, è quest’ultimo che aggiunge 10hex alla LEN prevista per il comando.

CLASSE D3 agisce criptando tutto il DataPacket più la “signature” di 16 bytes. Questa classe è usata per l’INS 2E_04, per l’INS 54 e per la INS BE. Il processo di cifratura per le classi D2 e D3 (D6, D7) non usa l’ASIC (Application Specific Integrated Circuit) usato invece per cifrare i dati tramite il Nano 90. Anche la classe D3 necessita di una LEN minima maggiore di 0x11, proprio perché anche per questa classe è prevista questa specie di “signature” finale.



Le chiavi
________________________________________

Nel Sistema NDS esistono 3 tipi di chiavi:

Public *** è la stessa su tutte le card. La Signature calcolata con questa *** è quindi valida per qualsiasi card.
Group *** è la stessa per un gruppo di 256 cards. La Signature calcolata con questa *** è quindi valida per tutto il gruppo.
Private *** è specifica per ogni card. La Signature calcolata con questa *** è quindi valida solo per una card. Principalmente usata durante l’ attivazione.


Le chiavi:

*** 00 é la primary public ***
*** 01 é la secondary public ***
*** 02 é la primary group ***
*** 03 é la secondary group ***
*** 04 é la primary private ***
*** 05 é la secondary private ***

Oltre a queste chiavi, è molto probabile che le nuove card contengano altri 2 tipi di chiavi:

*** 06 é la Card Swap Receive ***
*** 07 é la Card Swap Send ***

Queste chiavi intervengono in un’eventuale processo di swap della card. In breve la Card Swap Receive *** serve per autenticare il pacchetto dati che la nuova card riceve dall’IRD (è scritta dal produttore della nuova card) ; la Card swap Send *** serve per autenticare il pacchetto dati che l’IRD riceve dalla vecchia card (è scritta attraverso un apposito EMM).



Signature Calculation NDS 1
Signature Calculation & Signature Adjustement Bytes
________________________________________

Durante l’elaborazione del Nano 09, l‘ASIC (Application Specific Integrated Circut) è inizializzato usando la configuración indicata in questo Nano. Successivamente ogni byte che segue il Nano 09 fino al Nano 67(0Cool è “stritolato” da un algoritmo segreto di calcolo della Signature. Questa Signature è successivamente confrontata con 8 bytes risultanti dallo XOR dei primi 8 bytes associati al Nano 7E(14), i Signature Adjustement Bytes, e gli 8 bytes associati al Nano 67(0Cool. E’ verificato quindi che:

Signature Calcolata dalla Card. = Signature 67(0Cool XOR Signature Adjustement Bytes 7E(14)

Non ci sono differenze nel tempo di calcolo (tempo di risposta della card.) tra il caso d’invio di una Signature completamente errata ed una corretta.
Tutti i nano compresi tra il Nano 09 e il Nano 67(0Cool sono ‘Signature Protected’. Essi non saranno
eseguiti se la Signature non è preventivamente validata.

Control Word Encryption Process
________________________________________

Il processo di calcolo della Encrypted Control Word si attiva alla ricezione di un ECM (Entitlement Control Message) nel quale sia presente il Nano 02 (Rating). In realtà il principale processo di calcolo parte alla ricezione dell’INS54 che deve sempre seguire un ECM.
Se la Signature era corretta ed il Nano 02 era incluso, la card, attraverso un algoritmo segreto di calcolo che fa uso della configuración specificata dal Nano 09, genera, utilizzando TUTTI i bytes a partire da questo Nano fino alla fine della Signature, una Encrypted Control Word (***). Non è noto se l’ASIC è reinizializzato in questo processo, dopo il calcolo della Signature.
Questa *** di 10 bytes è quindi ‘aggiustata’ utilizzando i 10 *** Adjustment Bytes presenti nel Nano 7E(14). Questa *** di 10 bytes è restituita alla CAM dall’INS54.
L’algoritmo di ‘aggiustamento’ é semplicemente uno XOR :

[10 ***] XOR [*** Adjustement Bytes] = [10 *** returned by INS54, if 7E nano present]

In entrambi i casi, gli ultimi 2 dei *** Adjustement Bytes sembrano essere sempre 00 00, e quindi non sembrano intervenire nel processo di aggiustamento.

Notare che se tra la ricezione di un ECM e la INS54 è inviata una INS5C, si ottiene una ECW completamente errata.
Molto probabilmente la CAM, da questa 10 bytes ECW, genera una 10 bytes Decrypted Control Word - DCWs - (odd or even) che è trasferita al chip CSA per la decodifica del flusso MPEG.





























Status Bytes
________________________________________

Lo status byte indica lo stato della card alla fine del comando: lo SB è composto da due bytes, detti SW1 e SW2.
Analizziamo prima la SW1, dove solamente 3 sono i bits significativi (0, 4, 7):

76543210
1001 0000 90 INS eseguita, flags resettati
1001 0001 91 INS eseguita, flags non resettati.

I bit 7 e 4 sono sempre settati e rappresentano il valore normale della risposta indicante la corretta esecuzione del comando.

Il bit 0 non settato indica che tutti i flags sono stati resettati dopo l'esecuzione del comando.
Il bit 0 settato indica che alcuni flags non sono stati resettati. Ciò non significa che l'INS non sia stata eseguita.

Nella SW2, invece, i bits significativi non sono solamente più 3 (come avveniva in NDS 1), bensì sono diventati 6:

7 6 5 4 3 2 1 0

Bit 0=1 Indica che durante l’ esecuzione del comando, una modifica è stata apportata al contenuto della EEPROM.
Bit 0=0 Indica che durante l’ esecuzione del comando nessuna modifica è stata apportata al contenuto della EEPROM.

Bit 5=1 Indica che la card. ha ricevuto il Comando 48 4C (Send IRD Serial Number) ed ha completato il Marriage.
Bit 5=0 Indica che la card. ha non ha ricevuto il Comando 48 4C (Send IRD Serial Number) , oppure che, pur a*****lo ricevuto, non ha completato il Marriage perché l’IRD Serial Number era diverso da quello già registrato.

Bit 7=1 Indica che lo stato dei Filtri dopo l’esecuzione del comando è OPEN.
Bit 7=0 Indica che lo stato dei Filtri dopo l’esecuzione del comando è CLOSED.

In definitiva, i seguenti valori sono possibili:

00 Filters closed when packet finished IRD Number match flag not set No EEPROM Update
01 Filters closed when packet finished IRD Number match flag not set EEPROM Update
20 Filters closed when packet finished IRD Number match flag set No EEPROM Update
21 Filters closed when packet finished IRD Number match flag set EEPROM Update
80 Filters open when packet finished IRD Number match flag not set No EEPROM Update
81 Filters open when packet finished IRD Number match flag not set EEPROM Update
A0 Filters open when packet finished IRD Number match flag set No EEPROM Update
A1 Filters open when packet finished IRD Number match flag set EEPROM Update


Con l'avvento della nuova codifica, il valore di SW2 ha subito delle modifiche, in quanto sono stati abilitati altri tre bits del bitmap: i bits 2, 4 e 6.

Il bit 2, se settato, determina un LowNibble di SW2 pari a 4. Lo SW2 04 si osserva quando la card riceve un IRD number diverso da quello presente nella locazione #CurrentIRD#. Questo status si osserva anche nel caso in cui si richieda una INS BC non preceduta da una INS B4. Possiamo dire che questo status indica un tipo di errore che però non determina il blocco della card. Per approfondire il suo significato, vedi il Marriage.

Il bit 4, se settato, determina un HighNibble di SW2 pari a 1. Lo SW2 10 si osserva in caso di errore sulla LEN minima per le INS con classe D2 e D3. Di norma il decoder adotta una LEN adeguandola automaticamente al tipo di classe. Le classi D2 e D3 infatti necessitano di una LEN minima pari a 0x11, se questa non è fornita, la card risponde 00xLEN + 16 bytes di “signa” e rispondono 9040. Ma se prima inviamo l’INS BE, allora la risposta ad una INS con classe D2/D3 con LEN<11 sarà 9010.
Lo SB 9010 determina il blocco della card che dovrà essere necessariamente resettata.
Vedi Paragrafo Classi.

Il bit 6, se settato, determina un HighNibble di SW2 pari a 4. Lo SW2 40 si osserva in caso di errore sulla classe delle INS. Ad esempio provando ad inviare una INS con una classe diversa da D0 senza inviare prima l'INS BE, otterremo uno SB 9040.
Questo SB determina un blocco della card che dovrà necessariamente subire un reset.
Vedi INS BE.



La fase di BOOT delle nuove CARD
________________________________________

[16.03.23]: Richiede la LEN per l'INS successiva
D0 74 01 80 01 (74) 7C [90 00]

[16.03.23]: Elenca le INS supportate in EEProm (tra parentesi le varie INS)
D0 74 01 00 7C (74) 01 7A 1E 01 [D0 0E FF 02] [D0 1E 09 03] [D0 2E FF 00]
[D0 32 01 01] [D0 36 FF 02] [D0 38 02 03] [D0 40 FF 00]
[D0 42 FF 00] [D0 44 35 01] [D0 46 FF 00] [D0 4A FF 00]
[D0 4C 09 01] [D0 4E 05 03] [D0 50 FF 02] [D0 54 2C 03]
[D0 56 FF 02] [D0 58 4A 03] [D0 5A FF 02] [D0 5C 04 03]
[D0 5E FF 02] [D0 6A FF 00] [D0 6C FF 02] [D0 70 25 03]
[D0 72 23 03] [D0 74 FF 02] [D0 76 0A 03] [D0 78 18 03]
[D0 B4 40 01] [D0 BC 50 03] [D0 BE 10 03] [90 00]

Queste elencate sono i comandi che il decoder può inviare alla carta e NON le INS che la carta accetta realmente. I primi 4 bytes, hanno uno specifico significato:

01 Type Info
7A Byte restanti della INS
1E Indica (in HEX) il numero di INS supportate che verrano elencate in seguito (per l’Italia 1E=30)
01 Valore fisso

[16.03.23]: Richiede la LEN per l'INS successiva
D0 74 16 80 01 (74) 04 [90 00]

[16.03.23]: Risponde sempre così per tutte le card
D0 74 16 00 04 (74) 26 02 3F 00 [90 00]

[16.03.23]: Marriage
D0 4C 00 00 09 (4C) in in in in 03 00 00 05 04 [90 20]

[16.03.23]: Send Card Info
D0 58 00 00 4A (5Cool 15 48 25 UA UA UA UA 06 95 CE 6F 42 00 00 00 00
00 00 00 00 1D 8F C7 00 09 19 UA UA UA UA FF FF
FF FF SA SA SA 00 FF FF FF 00 00 00 00 00 00 00
00 00 08 00 00 00 01 49 54 41 00 00 49 54 41 4C
49 41 20 20 5E 1A B2 22 00 00 [90 20]

[16.03.23]: Abilita le altri classi
D3 BE 00 00 20 (BE) 89 65 1F 18 4C A7 4D CE 19 71 B0 D0 87 D0 16 E7
3B 53 E7 DA 05 06 DD E9 2A A6 71 C1 A9 55 CC EF [90 20]
[16.03.23]: Send Card Info
D1 58 00 00 4A (5Cool 15 48 25 UA UA UA UA 06 95 CE 6F 42 00 00 00 00
00 00 00 00 1D 8F C7 00 09 19 UA UA UA UA FF FF
FF FF SA SA SA 00 FF FF FF 00 00 00 00 00 00 00
00 00 08 00 00 00 01 49 54 41 00 00 49 54 41 4C
49 41 20 20 5E 1A B2 22 00 00 [90 20]

[16.03.24]: Marriage
D1 4C 00 00 09 (4C) in in in in 03 00 00 05 04 [90 20]

[16.03.24]: Richiede la LEN per l'INS successiva
D1 74 11 80 01 (74) 06 [90 20]

[16.03.24]: Richiede Codice PIN (vedi INS 74_11, in fase di boot con classe D3)
D3 74 11 00 16 (74) DF 76 68 18 4D AB 81 B1 0D A8 11 42 FE 12 27 64
1D 3C 57 D7 38 77 [90 20]

[16.03.24]: Richiede il valore max di P2 per l'INS 74_05
D1 74 05 7F 01 (74) 04 [90 20]

[16.03.24]: Richiede la LEN per la richiesta PIN
D1 74 11 80 01 (74) 06 [90 20]

[16.03.24]: Richiede Codice Pin (vedi INS 74_11, in fase di boot con classe D3)
D3 74 11 00 16 (74) 0A 93 23 C3 B9 5D 6B 30 2B 64 E8 8F EB 6A 56 2D
CE 41 66 43 3C A3 [90 20]

[16.03.24]: Richiede la LEN per l'INS successiva
D1 74 0E 80 01 (74) 06 [90 20]

[16.03.24]: Richiede il PCB
D1 74 0E 00 06 (74) 1B 04 FF FF FF FF [90 20]

[16.03.24]: Richiede la LEN per l'INS 74_05 (send country code & other info)
D1 74 05 80 01 (74) 22 [90 20]

[16.03.24]: Richiede la LEN per l'INS successiva
D1 74 12 80 01 (74) 05 [90 20]

[16.03.24]: Richiede il limite di spesa
D1 74 12 00 05 (74) 24 03 00 00 64 [90 20]

[16.03.24]: Richiede il valore max di P2 per l'INS 74_05
D1 74 05 7F 01 (74) 04 [90 20]

[16.03.24]: Richiede la LEN per l'INS successiva
D1 74 0C 80 01 (74) 06 [90 20]

[16.03.24]: Richiede 4 Bytes dal significato ignoto (12°,13°,14°,15° byte del Nano E2 dell'INS36)
D1 74 0C 00 06 (74) 19 04 FF FF FF FF [90 20]

[16.03.24]: Richiede la len per l'INS 74_05
D1 74 05 80 01 (74) 22 [90 20]

[16.03.24]: Richiede la LEN per l'INS successiva
D1 74 0D 80 01 (74) 06 [90 20]

[16.03.24]: Richiede 4 bytes PPv total Cost (16°,17°,18°,19° byte del Nano E2 dell'INS36)
D1 74 0D 00 06 (74) 1A 04 00 00 00 00 [90 20]

[16.03.24]: Richiede il postcode e altre info
D1 74 05 00 22 (74) 05 20 49 54 41 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 80 00 00 00 00 00 01 00 00 00 00
00 00 [90 20]

[16.03.24]: Richiede il valore max di P2 per l'INS 72
D1 72 00 7F 02 (72) 00 32 [90 20]


[16.03.24]: Richiede la len dell'INS 72
D1 72 00 80 01 (72) 23 [90 20]

[16.03.24]: Richiede il valore max di p2 per l'INS 74_04
D1 74 04 7F 01 (74) 20 [90 20]

[16.03.24]: Richiede la len dell'INS 74_04
D1 74 04 80 01 (74) 12 [90 20]

[16.03.24]: Richiede il valore max di P2 per l'INS 76
D1 76 00 7F 02 (76) 00 FA [90 20]

[16.03.24]: Richiede la LEN dell'INS 76
D1 76 00 80 01 (76) 0A [90 20]

Da questo momento in poi si ha la visione, con i normali ECM/EMM/54. Tutti questi comandi vengono inviati nell’arco di un secondo.



Le nuove attivazioni
________________________________________

Allego un log che riporta un esempio di attivazione: questo log si riferisce ad una attivazione ricevuta da una card già attiva e funzionante. Purtroppo non ho potuto loggare la prima attivazione, ma credo che grosso modo dovrebbe essere molto simile.

Ho omesso di inserire in questo log INS 40, 54, 4A, 5A e 42 di LEN 16, che arrivano regolarmente in quanto la card è perfettamente funzionante.

La prima INS 42 che arriva è quella con LEN 50, che apre i filtri e scrive qualcosa.
La LEN di questo primo EMM può variare in relazione ai dati contenuti dall’INS. Questa INS infatti ha sostituito le varie 42 firmate con chiave privata che venivano inviate con le precedenti card.

D1 42 00 00 50 (42) 90 4E 44 02 9E 74 FA BA 83 CE FA BA 83 C5 B3 4D
2A FA BA 83 57 95 FA AB 83 E4 B4 FA BA 83 24 77
3F 98 83 C4 54 17 67 12 FA BA 83 60 C3 33 C3 37
24 49 DC B8 E5 FB 26 AA 5F 29 60 20 1C 53 AE DF
AC 97 45 C8 25 BB CA DE 45 81 E1 2E F7 57 34 91
[90 A1]

D1 42 00 00 37 (42) 90 35 40 02 FC FA 9A 38 3B 13 80 00 93 E7 1A E9
81 70 76 19 0F FC 32 79 35 69 C0 45 18 B9 6C E0
27 74 27 D2 B8 93 3D 50 76 1B B6 E5 9D 83 F7 4C
16 78 C4 D3 CD 43 2C [90 A0]

LEN 37, non scrive nulla ma lascia filtri aperti; criptata con chiave pubblica

D1 42 00 00 37 (42) 90 35 40 02 FC 04 3D 9B 57 D0 B3 63 E4 8E 5E 40
DE 64 81 8F 9F 23 75 06 3B F0 05 BF 55 35 A6 F7
A5 B8 F2 F2 18 6D 64 29 8B 90 BD 7C FE A3 37 F5
D2 FD 17 FD 4B A2 C4 [90 A0]

LEN 37, non scrive nulla, lascia i filtri open, criptata con chiave pubblica ma in modo diverso rispetto alla precedente.

D1 42 00 00 25 (42) 90 23 40 02 C8 E6 07 B8 FB D3 9C 0D 42 7F 19 BA
7B 2A 91 28 9F CB AF 77 E5 F1 10 64 54 64 BE 77
8A 19 2B 58 AF [90 A0]

LEN 25, non scrive nulla, lascia i filtri open, criptata con pubblic ***

D1 42 00 00 83 (42) 90 81 60 02 3F 67 0B 71 26 C0 E4 7E AA CB 73 E3
F7 98 9A 17 C8 AB AE 32 D1 32 48 26 51 35 8E C7
BB 43 D3 43 3B 8A 49 BA 6E D4 1E D3 9F F9 32 AA
9B 9B 81 C5 4E 0D 88 36 3D 20 B0 A3 CE AA A9 EF
E9 79 2D 16 2D C8 A0 5E 7A 54 5B 9C F0 85 C6 DD
0D 0E CE 6D 78 B6 4C EE 0A D1 B5 E8 A2 EB D0 A9
03 49 A4 CE B5 3B DB 81 E8 84 42 87 CC D2 77 EE
D3 C0 83 E5 C3 B9 63 14 B6 05 F4 B9 91 78 97 EF
65 A6 78 [90 A0]

LEN 83, non scrive nulla, criptata con pubbl. ***, con hash 60, arriva sempre uguale per tutti.

D1 42 00 00 27 (42) 90 25 40 02 40 DD 5C 27 54 75 E9 A3 06 46 B9 89
91 68 1F 4C 67 5B 95 68 C4 2C 29 46 8D 6F ED 8F
D5 8A 33 64 5F 3B 3D [90 A0]

LEN 27, non scrive nulla, hash 40, filtri aperti

D1 42 00 00 21 (42) 90 1F 44 02 25 FA BA 83 27 54 4B 67 73 15 3E 83
6F 51 80 7F 46 4F 45 F7 10 0C 5B 33 4C 24 6B 02
02 [90 A1]

LEN 21, scrive qualcosa, hash 44 e filtri open

D1 42 00 00 20 (42) 90 1E 44 02 D5 40 7D 8F 09 1E E8 4C 96 2C 95 84
6B EE AF A4 16 B8 2B F3 7F 6E 47 81 50 F1 0E 3E
[91 A1]

LEN 20, scrive qualcosa, hash 44 e filtri open


A questo punto inizia una fase di boot

D1 58 00 00 4A (5Cool 15 48 25 UA UA UA UA 06 D7 75 12 10 00 00 00 00
00 00 00 00 xx xx xx 00 09 19 UA UA UA UA FF FF
FF FF SA SA SA 00 FF FF FF 00 00 00 00 00 00 00
00 00 08 00 00 00 01 49 54 41 00 00 49 54 41 4C
49 41 20 20 5F 1A B2 22 00 00 [91 A0]

D1 4C 00 00 09 (4C) in in in in 03 00 00 05 04 [90 A0]


Richiesta PIN

D1 74 11 80 01 (74) 06 [90 20]

D3 74 11 00 16 (74) E4 BD 51 7D C0 F7 15 E7 6E DA 97 3C B9 6E 55 53
88 EA EC E1 B7 88 [90 20]


Sequenza INS 74, 72 e 76 di boot

D1 74 05 7F 01 (74) 04 [90 20]
D1 74 0E 80 01 (74) 06 [90 20]
D1 74 0E 00 06 (74) 1B 04 FF FF FF FF [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 12 80 01 (74) 05 [90 20]
D1 74 12 00 05 (74) 24 03 00 00 64 [90 20]
D1 74 05 7F 01 (74) 04 [90 20]
D1 74 0C 80 01 (74) 06 [90 20]
D1 74 0C 00 06 (74) 19 04 FF FF FF FF [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 0D 80 01 (74) 06 [90 20]
D1 74 0D 00 06 (74) 1A 04 00 00 03 E8 [90 20]
D1 74 05 00 22 (74) 05 20 49 54 41 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 80 00 00 00 00 00 01 00 00 00 00
00 00 [90 20]

D1 72 00 7F 02 (72) 00 32 [90 20]
D1 72 00 80 01 (72) 23 [90 20]

D1 74 04 7F 01 (74) 20 [90 20]
D1 74 04 80 01 (74) 12 [90 20]

D1 76 00 7F 02 (76) 00 FA [90 20]
D1 76 00 80 01 (76) 0A [90 20]

Da qui iniziano i normali ECM e INS 54

Tutte queste INS arrivano nell'arco di qualche secondo.

Purtroppo non posso dire cosa contengono le INS 42, in quanto sono criptate con il Nano 90, ma di sicuro le più importanti sono quelle con LEN 50, 21 e 20 le quali scrivono qualcosa in EEProm (ricordo che la LEN varia in relazione ai pacchetti sottoscritti: più pacchetti, maggiore LEN).
Le altre settano filtri o abilitano la card a ricevere altri comandi (lo si desume dallo StatusWord).




Transazioni PPV
Commento di un LOG di acquisto tramite telecomando
________________________________________

Prima dell'inizio dell'evento, arrivano ECM del tipo:

D1 40 00 80 22 (40) 00 7F 0A 51 CC 4A EC 35 5D E6 2C 00 00 90 13 C0
02 B3 28 C5 58 0B 74 46 9E B4 4B 4D 8C 40 68 FB
12 62 [90 20]


All'ora di inizio dell'evento, in questo caso un film, si attiva la preview, ed arrivano degli ECM del tipo:

D1 40 00 80 42 (40) 00 7F 0A 89 2E B1 E6 01 9A 4C C9 00 00 90 33 C0
02 63 8B 6F 87 D0 05 E1 C7 52 CC 2B EA E0 1D 72
73 14 06 45 80 B4 9B 9E 48 F2 C1 0F FC 57 8D 6C
DF AE D5 AA 40 D7 B2 D9 A6 99 2A BD 57 C0 B5 FE
E6 71 [90 20]


Premendo il tasto OK del telecomando, la card richiede le informazioni sull'evento da acquistare:

D1 46 00 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]


Anzitutto arriva l'INS 46 LEN 33, che contiene varie informazioni dell'evento selezionato, tra le quali il Nano 4D ed i Tiers.

D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]


seguono le INS 0E 00x1, che sembrano sempre uguali per tutti gli eventi

D1 74 05 7F 01 (74) 04 [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 05 7F 01 (74) 04 [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 05 00 22 (74) 05 20 49 54 41 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 80 00 00 00 00 00 01 00 00 00 00
00 00 [90 20]

Segue la sequenza per determinare l'INS 74 05, che fornisce il Country Code e altre info.

D1 46 00 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]
D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]
D1 0E 00 82 01 (0E) 0A [90 20]
D1 0E 00 02 0A (0E) 00 05 02 1C 05 00 03 00 00 00 [90 20]


Determinazione dell'INS 0E 00 02, che fornisce un Tier dell'evento

D1 46 00 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]
D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]
D1 0E 01 82 01 (0E) 0A [90 20]
D1 0E 01 02 0A (0E) 00 05 02 1C 05 03 F9 00 00 00 [90 20]


Determinazione dell'INS 0E 01 02, che fornisce un altro Tier dell'evento

D1 46 00 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]
D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]
D1 0E 02 82 01 (0E) 0A [90 20]
D1 0E 02 02 0A (0E) 00 05 02 1C 05 01 00 00 00 00 [90 20]


Determinazione dell'INS 0E 02 02, che fornisce un altro Tier dell'evento

D1 46 00 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]

D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]
D1 0E 03 82 01 (0E) 0A [90 20]
D1 0E 03 02 0A (0E) 00 05 02 1C 05 01 00 00 00 00 [90 20]


Determinazione dell'INS 0E 03 02, che fornisce un altro Tier dell'evento

D1 46 00 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]
D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]
D1 0E 04 82 01 (0E) 1E [90 20]
D1 0E 04 02 1E (0E) 00 00 02 08 07 CC 54 00 65 5E 09 80 09 04 80 02
00 00 0A 06 00 00 00 01 2C 02 29 02 00 80 [90 20]


Determinazione dell'INS 0E 04 02, che fornisce varie informazioni sull'evento

D1 74 05 7F 01 (74) 04 [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 05 7F 01 (74) 04 [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 05 00 22 (74) 05 20 49 54 41 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 80 00 00 00 00 00 01 00 00 00 00
00 00 [90 20]
D1 74 05 7F 01 (74) 04 [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 05 7F 01 (74) 04 [90 20]
D1 74 05 80 01 (74) 22 [90 20]
D1 74 05 00 22 (74) 05 20 49 54 41 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 80 00 00 00 00 00 01 00 00 00 00
00 00 [90 20]


Doppia sequenza dell'INS 74

D1 46 20 01 33 (46) 08 90 30 C0 02 86 72 6C CB CE 06 86 28 67 F8 9D
42 10 03 8A 28 05 79 CA 54 CA 88 71 F8 3E 95 99
51 1C 6C 86 08 AE 8D 0A FB FA 9A 2D 2F AF 9D 15
16 48 B0 [90 20]


Cambia il valore del P1 dell'INS: adesso il bit 6 è settato, quindi la card bypassa il controllo sul limite di spesa. Credo che questa ins viene inviata quando si scrive il PIN per confermare l'acquisto.

D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]

D1 46 20 02 3A (46) 00 00 FF 08 04 00 00 00 90 30 C0 02 86 72 6C CB
CE 06 86 28 67 F8 9D 42 10 03 8A 28 05 79 CA 54
CA 88 71 F8 3E 95 99 51 1C 6C 86 08 AE 8D 0A FB
FA 9A 2D 2F AF 9D 15 16 48 B0 [91 21]


Questa INS 46 è molto significativa: anzitutto si nota il valore di P2 che indica l'acquisto, la LEN passa da 33 a 3A, in quanto vengono aggiunti, prima del Nano 90, 8 bytes, che sembrano essere sempre uguali per tutti gli acquisti, almeno per i film. Dallo SB si nota che alcuni flags non sono stati resettati e soprattutto è avvenuta una scrittura in EEProm, infatti è stato scritto il record dell'evento PPV.

D1 1E 20 02 09 (1E) 27 07 00 02 70 02 00 00 00 [91 20]


Dopo la INS 46 di acquisto segue l'INS 1E, che presenta gli stessi P1 e P2 della INS 46 che precede. Questa ins fornisce informazioni sulla transazione PPV in corso.

D1 72 02 00 23 (72) 23 21 CC 54 5E 09 BF 7D 01 2C 00 04 01 80 5E 08
53 EB 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5E 09 20 [91 20]


Segue l'INS 72, che indica il record (si nota dal P1) sul quale sono stati scritti i dati dell'evento acquistato.

D1 74 04 81 01 (74) 12 [91 20]
D1 74 04 01 12 (74) 15 10 00 65 00 05 01 2D 13 89 09 C5 00 00 00 00
00 00 [91 20]


L'INS 74 04 indica anch'essa le informazioni sulla transazione PPV.

D1 5E 00 04 01 (5E) 02 [90 20]


A questo punto appare l'INS 5E, che in questo caso sembra indicare il record in cui è messo l'evento. Ma non è certo, potrebbe infatti essere uno status di visione (????) Comunque lo SW torna ad essere 9020, quindi vengono resettati i flags aperti dall'ultima INS 46 ricevuta.

D1 72 02 00 23 (72) 23 21 CC 54 5E 09 BF 7D 01 2C 00 04 01 80 5E 08
53 EB 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5E 09 20 [90 20]
D1 74 04 81 01 (74) 12 [90 20]
D1 74 04 01 12 (74) 15 10 00 65 00 05 01 2D 13 89 09 C5 00 00 00 00
00 00 [90 20]
Seguono le INS 72 e 74 04.

A questo punto arrivano gli ECM di visione, seguiti dalle INS 54.

D1 40 20 80 42 (40) 00 7F 0A 4F BF 8B D6 8B F2 FE 00 00 00 90 33 C0
02 8D 95 F2 65 06 EA F2 F7 79 AE BB B0 05 24 59
74 23 5F CD 03 AF B9 A2 C7 72 A9 99 0F BD 07 61
8E 70 08 48 F3 84 D1 DF C0 A0 18 12 D8 D4 31 60
6E 4C [90 20]
D3 54 00 00 3C (54) 92 45 EA 92 84 BB F8 A8 41 26 7E 6A B0 E5 16 F7
E4 DD 89 3D 21 06 8F EE A2 92 D7 A4 72 63 4D C0
AA 2A E3 A9 EE FF F1 28 AE FA 68 22 C9 36 7F EE
E4 55 E7 A5 A6 9F 8D A8 85 97 54 AD [90 20]


La LEN è 42, infatti la preview è ancora attiva. Si può notare il valore di P1 che è cambiato, infatti è stato settato il bit 6.
Questo valore dura per tutta la durata del film, ma se si toglie la card e la si rimette, il valore di P1 torna ad essere 00.
Dopo 7 minuti dall'inizio del film finisce la preview.
Quindi cambiano gli ECM, che arrivano con una LEN minore di 3F.

E' importante il primo ECM che la card riceve dopo la fine della preview:

D1 40 20 80 3F (40) 00 7F 0A EC 26 D2 EA 5B 8B 5D 4A 00 00 90 30 C0
02 AF 28 3D 00 33 86 A9 0F 49 8E 8F 79 1F 61 C9
73 E5 71 DA 3D 54 18 6B 59 1C 37 EA 11 EC 98 69
82 58 3D 68 11 3E 6C 6B F2 8F C2 70 9D E2 2C [91 20]
D1 54 00 00 3C (54) C4 6A 76 FE 06 1D 76 C5 1C 53 B2 B7 34 5E 22 7E
D7 5A 5B 2C 75 9F C6 62 59 63 69 4E C4 17 5C 1F
40 F0 DF CC 00 4E A4 5D BF 66 8B F9 0A 7A D7 2B
3B E7 9A B2 D1 B8 6D A9 82 64 EA 14 [91 20]


Si nota infatti che lo status dell'ECM e della successiva INS 54, sono 9120, quindi alcuni flags non vengono resettati.
Proprio perchè i flags non sono stati resettati, viene inviata un'INS 5E che risponde indicando tutti gli EvID registrati in Eeprom.

D1 5E 00 0E C8 (5E) C4 9D 02 04 C4 9D 02 04 CC 54 01 04 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 .. [90 20]

Si noti come lo SW torni ad essere 9020.


Da qui in poi arrivano ECM del tipo:

D1 40 20 80 3F (40) 00 7F 0A 94 5A AD B8 FC 38 FE 68 00 00 90 30 C0
02 E1 E5 A9 77 85 1B D4 90 25 0C 67 65 BA 9B 2E
75 73 5F C1 AB EA 0A E6 DA D5 2A 5D BC F3 46 7C
51 16 8F 94 5B 6B 20 70 5F 8D 90 8B E3 9C 97[90 20]
D3 54 00 00 3C (54) 10 F5 FD FA 54 5B 69 B1 B4 22 39 FF 81 9F 88 CD
DD BA 4F 50 98 36 86 84 41 94 5A 72 5B 47 08 18
07 A4 E4 EF FB 33 3A 03 82 D1 DB 2D AB E5 07 F7
05 3B 8E EE 36 4C E9 C6 D7 27 90 EC [90 20]


Queste INS sono intervallate ogni 10 secondi circa da INS 4A e 5A, oltre che dalle INS 42 di LEN 16 che settano l'orario.




Quando il film finisce, gli ECM tornano ad avere LEN 22:

D1 40 00 80 3F (40) 00 7F 0A EA 89 B2 39 DC 44 23 C6 00 00 90 30 C0
02 DE E8 9D 4C 4C 28 F6 0B 6D D3 71 B9 93 19 0E
B8 A7 34 6A 57 83 5B C4 8C 37 84 D4 3E EB 56 E9
77 CC 6A 19 07 7F AD B9 B1 5C 1A 8A 52 3B BD [90 20]
D1 40 00 80 22 (40) 00 7F 0A 51 CC 4A EC 35 5D E6 2C 00 00 90 13 C0
02 B3 28 C5 58 0B 74 46 9E B4 4B 4D 8C 40 68 FB
12 62 [90 20]


Va ricordato inoltre che una volta terminato l'evento, non è possibile visionarlo un'altra volta.
E questo è tutto, almeno per ora....










































Istruzioni di una Card NDS
________________________________________

Comando 0x02 – Send Card Type and ROM Version

Comando
D0 02 00 00 08

P1 Non significativo
P2 Non significativo
LEN Valore 08 - LEN maggiori restituisce 8 bytes di dati e 00xLEN di padding

Questo comando fornisce il Tipo di Card e la versione della ROM.

D0 02 00 00 58 (02) 49 54 54 56 02 00 4C 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [90 00]

49 54 54 56 Card Type ITTV
02 00 4C 45 ROM Version V.2 LE
90 00 SB



Comando 0x04 – Receive Byte (H-Card 8022)

Comando
D0 04 00 00 01

P1 Non significativo
P2 Non significativo
LEN Non significativo - Valori diversi da 01h danno sempre lo stesso risultato

Questo comando setta presumibilmente una locazione di memoria in EEProm con il valore fornito nel comando, in maniera simile a quanto avviene per le H-Card. E come su queste card, il byte può essere riletto con il Comando D0 06.
Anche se scrive in EEProm, lo status byte rimane 9000 e non 9001.
L’utilità del comando non è nota. In ogni caso non altera, apparentemente, lo stato della card.

D0 04 00 00 01 (04) XX 90 00

XX Sconosciuto
90 00 SB



Comando 0x06 – Send Byte (H-Card 8022)

Comando
D0 06 00 00 01

P1 Non significativo
P2 Non significativo
LEN Non significativo - Valori diversi da 01h danno sempre lo stesso risultato

Questo comando, presumibilmente, legge un byte da una locazione di memoria in EEProm. Questo byte può essere settato dal Comando D0 04.
Per valori di P1 da 01 a 07 la risposta è 00, per qualunque altro valore dà XX, ossia il byte scritto con l’INS 04.

D0 06 00 00 01 (06) XX 90 00

XX Sconosciuto
90 00 SB



Comando 0x0E – Send PPV event info

Comando
D0 0E P1 P2 LEN

L'INS 0E è legata alla PPV e all'INS 46, infatti appare solo dopo aver ricevuto una INS 46. Tra l'altro varia in relazione al contenuto dell’INS 46 che la precede e la determina.
Se non è preceduta dalla INS 46, restituisce tutti 00 per valori di P2 pari, per valori di P2 dispari restituisce 09 se P2<80, restituisce 01 se P2>79.

Sono significativi sia il P1 che il P2.

I valori di P1 fin qui osservati vanno da 00 a 04:

7654 3210
0000 0000 00 Sconosciuto (risposte sempre uguali)
0000 0001 01 \
0000 0010 02 |------------ Vengono indicati i Tiers dell’evento
0000 0011 03 /
0000 0100 04 Vengono indicati i dati di acquisto

I valori di P2 fin qui osservati presentano valori del LowNibble pari a 1 e 2 e valori dell’HighNibble pari a 0 e 8:

7654 3210
0000 0001 01
1000 0001 81
0000 0010 02
1000 0010 82

HighNibble = 8 indica la LEN del comando successivo (che naturalmente deve presentare lo stesso LowNibble e lo stesso P1).
HighNibble = 0 indica il contenuto della risposta del comando.
LowNibble = 1 si osserva soltanto accoppiato a P1=00
LowNibble = 2 si osserva con tutti i valori di P1.

Esempio:

D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]


Si osserva che vengono inviate in serie queste INS 0E per ricevere informazioni sull'evento PPV:

D1 0E 00 81 01 (0E) 06 [90 20]
D1 0E 00 01 06 (0E) 00 05 05 05 05 00 [90 20]
D1 0E 00 82 01 (0E) 0A [90 20]
D1 0E 00 02 0A (0E) 00 05 05 1C 05 02 45 00 00 00 [90 20]

D1 0E 01 82 01 (0E) 0A [90 20]
D1 0E 01 02 0A (0E) 00 05 05 1C 05 00 03 00 00 00 [90 20]

D1 0E 02 82 01 (0E) 0A [90 20]
D1 0E 02 02 0A (0E) 00 05 05 1C 05 04 4F 00 00 00 [90 20]

D1 0E 03 82 01 (0E) 0A [90 20]
D1 0E 03 02 0A (0E) 00 05 05 1C 05 01 00 00 00 00 [90 20]

D1 0E 04 82 01 (0E) 1E [90 20]
D1 0E 04 02 1E (0E) 00 00 05 08 07 C4 9D 00 65 5E 05 80 09 04 80 02
00 00 0A 06 00 00 00 01 F4 02 29 02 00 80 [90 20]


Volendo fare un parsing:

D1 0E 02 02 0A (0E)

00 ??
05 05 ??
1C 05 ??
04 4F 00 Tier
00 00 ??
90 20 SB


D1 0E 04 02 1E (0E)

00 00 05 08 07 ??
C4 9D PPV EventID
00 65 Tipo acquisto
5E 05 Mese e giorno dell’acquisto+1
80 09 04 80 02 00 00 0A 06 00 00 00 ??
01 F4 Costo evento
02 29 02 00 ??
80 ??
[90 20] SB


Queste INS vengono intervallate da INS 46 (che in questa fase dell'info sull'acquisto sono sempre uguali), e da INS 74 05.



Comando 0x12 – Send Technical Info

Comando
D0 12 00 00 08

P1 Non significativo
P2 Non significativo
LEN Valore 08 - LEN maggiori restituiscono 8 bytes di dati ed i rimanenti 00xLEN di padding


D0 12 00 00 08 (12) 04 12 1B 31 06 14 24 02 90 00

04 CMS Version
10 0F 59 Batch number
02 Wafer number
0C 0A Die position
02 Microcode ROM version
90 00 SB
Comando 0x1E – Send PPV Purchasing Info

Comando
D0 1E P1 P2 LEN

Il parametro P1 sembra non essere significativo in una card attiva senza acquisti PPV.
Il parametro P2, invece, fa variare la risposta della card, che sarà:

27 07 01 00 00 02 00 20 00 90 00 per LowNibble=2, 3, 6, 7, A, B, E, F
27 07 01 00 00 02 00 00 00 90 00 per LowNibble=0, 1, 4, 5, 8, 9, C, D


Come si vede, a variare è il byte numero 8 (da 20 a 00).
Il valore dell'HighNibble di P2 è i

presario2500
30-07-2006, 13:35
hola alguien sabe la configuracion de cataluña,para el abq?los parametros,la qam y algun parametro mas que ahora no me acuerdo por que no tengo el deco aqui ,pues no me consigue coger los tdt ,como la tve1,la2 etc...SALUDOS

novato1223
30-07-2006, 16:15
no se si se permiten enlaces a otras paginas pero esta me parece muy muy interesante

http://www.studionds.altervista.org//modules.php?name=Forums&file=viewtopic&t=466

GALLEGO
30-07-2006, 16:37
hola alguien sabe la configuracion de cataluña,para el abq?los parametros,la qam y algun parametro mas que ahora no me acuerdo por que no tengo el deco aqui ,pues no me consigue coger los tdt ,como la tve1,la2 etc...SALUDOS
la configuracion de los abq se hace con el mando en herramientas pones codigo cuatro ceros y busqueda de canales el solo se actualiza y salen todos los canales (en una targeta sin manipular y dada de alta).
he leido por ahi que las manipuladas como son de sevilla para cataluña es mas complicado.

novato1223
30-07-2006, 17:35
ver si a alguien le va este scrip


' ================
' = Turbo Unloop =
' ================
' = v1.0 =
' ================
'
' by aol6945
'
' This script uses WildThing-style glitching to read and fix cards. It works on
' both regular H cards and Black-Sunday H cards.
' It does so more reliably than SU2v2 or The WildThing 6/7 software, and will
' work with any WildThing-compatible unlooper, using any Atmel code - WT, WT2, WTX, or SU2
'
' It requires WinExplorer 4.5 set to Unlooper mode quicksettings, and you must
' disable Transaction Logging, Display Fuse after Script, and Display USW after Script
'

' Global Variable Definitions
Option Explicit

' Constants used throughout script
Const ScriptName="TurboUnloop"
Const ScriptVer="1.0"

' Glitching values/constants
Dim DAC(8),Delay(8),GlitchDelay(8) ' Working values
Dim DACL(8),DelayL(8),GlitchDelayL(8) ' Lower range limit constants
Dim DACI(8),DelayI(8),GlitchDelayI(8) ' Initial Value Constants
Dim DACH(8),DelayH(8),GlitchDelayH(8) ' High range limit constants
Dim Tries(8) ' Running total of number of times a glitch has been tried
Dim TotalTries(8) ' Running total of number of times a glitch task has been tried
Dim TriesLimit(8) ' Upper limit for trying this glitch - exceeding it means new glitch values will be selected
Dim TriesLimitN(8) ' Normal limit for number of times to try a glitch
Dim TriesLimitI(8) ' Initial limit for trying initial glitches
Dim AltProcTriesLimit(8) ' Limit on Total tries before switching glitch procedures
Dim AltProc(8) ' The glitch set that is the alternate procedure
Dim GlitchProc(8) ' The procedure number within the task that should be run with these glitch parameters
Dim FailsLimit(8) ' Failure limit for trying previously successful glitches - exceeding it means saved glitch values will be deleted and new ones will be searched for
Dim GlitchLogic(8) ' 0=Try successive glitches by incrementing glitch values, 1=Try random glitch values
Dim Search(8) ' 0=Using saved glitch parameters, 1=Searching for new glitch parameters
Dim TaskSet(5) ' Holds which set of glitches is currently being used for a task

' Global Unlooper Packet Variables
Dim ATR(13)
Dim PacketResponse(4)
Dim GPPLen,GPRLen
Dim GPR(70)
Const MasterFailLimit=20000

' Constants for file manipulation
Const fsoError=-1
Const fsoOpenRead=0
Const fsoOpenWrite=1
Const fsoOpenReadWrite=2
Const fsoSEEK_SET=0
Const fsoSEEK_CUR=1
Const fsoSEEK_END=2



' ==================
' = Main Procedure =
' ==================

Sub Main()
' Main Program Loop and Menu
Dim MenuChoice
Dim MsgPrompt
Dim ErrorValue

' Suppress window output
Sc.Verbose=False

' Verify correct version of WinExplorer
Call SetupWinExplorer()

' Show Splash screen
Call Sc.PictureBox("Turbo-Unloop.jpg",5)

Do
MsgPrompt="=== "+ScriptName+" "+ScriptVer+" ==="+vbCr+vbCr
MenuChoice=Sc.ButtonBox(MsgPrompt,vbDefaultButton2 ,ScriptName+" "+ScriptVer+" - Main Menu","Read Card","Fix Card","Exit")

' Initialize Glitch values
Call SetGlitchValues()

Select Case MenuChoice
Case 1:
ErrorValue=ReadCard()
Case 2:
ErrorValue=FixCard()
End Select
Loop Until MenuChoice=3

' Show ending graphic
Call Sc.PictureBox("Turbo-Unloop-b.jpg",5)
End Sub

' =========================
' = High-Level Procedures =
' =========================

Function FixCard()
' This function drives the unlooper to fix a card.
Dim i,j
Dim Stage
Dim RetVal
Dim MsgPrompt
Dim Display
Dim MasterTries
Dim Finished
Dim EID,CAMID,USW,IRD,LastDynCode

FixCard=0
MasterTries=0
Finished=0

' Turn off LED
Sc.Write("A0")

' Wait for a card to be inserted
Call WaitCardInsert()

' Turn on LED Green
Sc.Write("A1")

' See if the card needs to be fixed
Call GenericMsg("Checking ATR ...")
Sc.Delay(500)
If CheckGoodCard() Then
RetVal=1
ElseIf CheckGoodCardBS() Then
RetVal=2
Else
RetVal=0
End If
If RetVal>0 Then
Sc.Write("A0")
Call RemoveMsg()
MsgPrompt="This card has a good ATR and can process packets."+vbCr+_
"It is probably not looped."+vbCr
If RetVal=2 Then
MsgPrompt=MsgPrompt+"(Although this is a Black Sunday card)."+vbCr
End If
MsgPrompt=MsgPrompt+vbCr+"Do you want to fix/unloop the card anyway?"
RetVal=Sc.MsgBox(MsgPrompt,vbQuestion+vbYesNo+vbDe faultButton2,ScriptName+" "+ScriptVer+" - Fix Good Card?")
If RetVal=vbNo Then
FixCard=0
Exit Function
End If
End If

' Turn on LED Green
Sc.Write("A1")

' Glitcher Driver (The Illudium PU-36 Explosive Glitch Modulator)
Stage=1
Display=0
Do While (Finished=0)
If CardInserted()=0 Then
Stage=8
End If
If MasterTries>MasterFailLimit Then
Stage=9
End If
MasterTries=MasterTries+1

Select Case Stage
Case 1: ' Glitch Task 1 - Attempt to get 1st byte of ATR
If Params(TaskSet(1)) Or Display<1 Then
Call GlitchMsg(1)
Display=1
End If
If GlitchTask1(TaskSet(1)) Then
Stage=2
Tries(TaskSet(1))=0
Search(TaskSet(1))=0
Else
If TotalTries(TaskSet(1))>=AltProcTriesLimit(TaskSet(1)) Then
' If we've tried AltProcTriesLimit glitches for one glitch parameter set and won't pop, try alternate glitch parameter set
TotalTries(TaskSet(1))=0
TaskSet(1)=AltProc(TaskSet(1))
' TaskSet(5)=TaskSet(1)
End If
End If
Case 2: ' Glitch Task 2 - Get Next 10 bytes of ATR
If Params(TaskSet(2)) Or Display<2 Then
Call GlitchMsg(2)
Display=2
End If
If GlitchTask2(TaskSet(2)) Then
Stage=3
Tries(TaskSet(2))=0
Search(TaskSet(2))=0
Else
Stage=1
End If
Case 3: ' Glitch Task 3 - Get last 2 bytes of ATR and get card to process a packet
If Params(TaskSet(3)) Or Display<3 Then
Call GlitchMsg(3)
Display=3
End If
If GlitchTask3(TaskSet(3)) Then
Stage=4
Tries(TaskSet(3))=0
Search(TaskSet(3))=0
Else
Stage=1
End If
Case 4: ' Glitch Task 4 - Fill Memory to overwrite stack
If Params(TaskSet(4)) Or Display<4 Then
Call GlitchMsg(4)
Display=4
End If
If GlitchTask4(TaskSet(4)) Then
Stage=5
Tries(TaskSet(4))=0
Search(TaskSet(4))=0
Else
Stage=1
End If
Case 5: ' Check for normal bootloader
If CheckBootloader() Then
If GetCardInfo(EID,CAMID,USW,IRD,LastDynCode) Then
Stage=7 ' Got info, go to write Fixbin
Else
Stage=1 ' Bootloader is on card but failed? Probable corrupted bootloader. Reglitch.
End If
Else
Stage=6 'Bootloader is supposed to be here, but isn't. Glitch into bootloader (Black Sunday card)
End If
Case 6: ' Attempt to glitch into bootloader for BS card
Search(TaskSet(5))=1 ' This makes sure we don't keep trying the same glitch to get into the bootloader every time
Tries(TaskSet(5))=TriesLimit(TaskSet(5))+1
If Params(TaskSet(5)) Or Display<5 Then
Call RWMsg("Glitching into Bootloader ...",1,225)
Display=5
End If
If GlitchTask5(TaskSet(5)) Then
' Successfully glitched into bootloader, attempt to get card info
If GetCardInfo(EID,CAMID,USW,IRD,LastDynCode) Then
Stage=7 ' Got info, go to write Fixbin
Else
Stage=1 ' Bootloader is on card but failed? Probable corrupted bootloader. Reglitch.
End If
ElseIf TotalTries(TaskSet(5))>TriesLimitI(TaskSet(1)) Then
Stage=1 ' Tried to glitch into bootloader many times, can't get in. Reglitch.
TotalTries(TaskSet(5))=0
End If ' Otherwise try to glitch into bootloader again
Case 7: ' Attempt to write Fixbin
If WriteFixBin63() And ExitBootloader() Then
Stage=10 ' Finished and successful
Else
Stage=9 ' Error
End If
Case 8: ' Card was Removed
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Card was Removed",vbInformation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
Finished=1
Case 9: ' Error loading/glitching card
' Turn on LED Red
Sc.Write("A2")
' Disconnect Card
SendGP("02")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Error: Unable to Glitch/Load Card",vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
' Turn off LED
Sc.Write("A0")
Finished=1
Case 10: ' Finished & successful
' Disconnect Card
SendGP("02")
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
Finished=1
FixCard=1
End Select
Loop

' If glitching and fixing was successful, inform user
If FixCard=1 Then
MsgPrompt="Finished Fixing Card, Repair Sequence: "+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),2)+"/"+_
HexString(GlitchDelay(TaskSet(1)),2)+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),2)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"+_
HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),2)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+vbCr+vbCr
MsgPrompt=MsgPrompt+"Before Repair:"+vbCr
MsgPrompt=MsgPrompt+"EID: "+EID+vbCr+_
"CAM ID: "+CStr(HexToDec(CAMID))+"_ ("+CAMID+")"+vbCr+_
"USW: "+CStr(HexToDec(USW))+" ("+USW+")"+vbCr+_
"IRD: "+IRD+vbCr
If HexToDec(USW)=63 Then
MsgPrompt=MsgPrompt+"Last Executed Dynamic Code: "
For i=0 to (Len(LastDynCode)\2)-1
MsgPrompt=MsgPrompt+Mid(LastDynCode,i*2+1,2)+" "
Next
End If
MsgPrompt=MsgPrompt+vbCr+vbCr
MsgPrompt=MsgPrompt+"After Repair:"+vbCr+"ATR: "
If CheckGoodCard() Then
RetVal=1
ElseIf CheckGoodCardBS() Then
RetVal=2
Else
RetVal=0
End If
If RetVal>0 Then
For i=0 to 12
MsgPrompt=MsgPrompt+HexString(ATR(i),2)+" "
Next
Else
MsgPrompt=MsgPrompt+"Error! Still bad ATR!"
End If
MsgPrompt=MsgPrompt+vbCr
If RetVal=2 Then
MsgPrompt=MsgPrompt+"(This is a Black Sunday card)."
End If
RetVal=Sc.MsgBox(MsgPrompt,vbInformation+vbOKOnly, ScriptName+" "+ScriptVer+" - Unloop Procedure")
End If
End Function

Function ReadCard()
' This function drives the unlooper to fix a card.
Dim i,j
Dim Stage
Dim RetVal
Dim MsgPrompt
Dim Display
Dim MasterTries
Dim Finished
Dim EID,CAMID,USW,IRD,LastDynCode

ReadCard=0
MasterTries=0
Finished=0

' Turn off LED
Sc.Write("A0")

' Wait for a card to be inserted
Call WaitCardInsert()

' Turn on LED Green
Sc.Write("A1")

' Glitcher Driver (The Illudium PU-36 Explosive Glitch Modulator)
Stage=1
Display=0
Do While (Finished=0)
If CardInserted()=0 Then
Stage=8
End If
If MasterTries>MasterFailLimit Then
Stage=9
End If
MasterTries=MasterTries+1

Select Case Stage
Case 1: ' Glitch Task 1 - Attempt to get 1st byte of ATR
If Params(TaskSet(1)) Or Display<1 Then
Call GlitchMsg(1)
Display=1
End If
If GlitchTask1(TaskSet(1)) Then
Stage=2
Tries(TaskSet(1))=0
Search(TaskSet(1))=0
Else
If TotalTries(TaskSet(1))>=AltProcTriesLimit(TaskSet(1)) Then
' If we've tried AltProcTriesLimit glitches for one glitch parameter set and won't pop, try alternate glitch parameter set
TotalTries(TaskSet(1))=0
TaskSet(1)=AltProc(TaskSet(1))
TaskSet(5)=TaskSet(1)
End If
End If
Case 2: ' Glitch Task 2 - Get Next 10 bytes of ATR
If Params(TaskSet(2)) Or Display<2 Then
Call GlitchMsg(2)
Display=2
End If
If GlitchTask2(TaskSet(2)) Then
Stage=3
Tries(TaskSet(2))=0
Search(TaskSet(2))=0
Else
Stage=1
End If
Case 3: ' Glitch Task 3 - Get last 2 bytes of ATR and get card to process a packet
If Params(TaskSet(3)) Or Display<3 Then
Call GlitchMsg(3)
Display=3
End If
If GlitchTask3(TaskSet(3)) Then
Stage=4
Tries(TaskSet(3))=0
Search(TaskSet(3))=0
Else
Stage=1
End If
Case 4: ' Glitch Task 4 - Fill Memory to overwrite stack
If Params(TaskSet(4)) Or Display<4 Then
Call GlitchMsg(4)
Display=4
End If
If GlitchTask4B(TaskSet(4)) Then
Stage=5
Tries(TaskSet(4))=0
Search(TaskSet(4))=0
Else
Stage=1
End If
Case 5: ' Attempt to read card
If ReadBin() Then
Stage=10 ' Successfully read EEPROM, go to finished.
Else
Stage=9 ' Couldn't read card, display error.
End If
Case 8: ' Card was Removed
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Card was Removed",vbInformation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
Finished=1
Case 9: ' Error loading/glitching card
' Turn on LED Red
Sc.Write("A2")
' Disconnect Card
SendGP("02")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Error: Unable to Glitch/Read Card",vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
' Turn off LED
Sc.Write("A0")
Finished=1
Case 10: ' Finished & successful
' Disconnect Card
SendGP("02")
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
Finished=1
ReadCard=1
End Select
Loop

' If glitching and fixing was successful, inform user
If ReadCard=1 Then
MsgPrompt="Finished Reading Card, Glitch Sequence: "+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),2)+"/"+_
HexString(GlitchDelay(TaskSet(1)),2)+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),2)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"+_
HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),2)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+vbCr+vbCr
RetVal=Sc.MsgBox(MsgPrompt,vbInformation+vbOKOnly, ScriptName+" "+ScriptVer+" - Unloop Procedure")
End If
End Function


' ========================
' = Mid-Level Procedures =
' ========================

Sub WaitCardInsert()
' This function waits for a card to be inserted
Call Sc.ProgressBox("Please Insert A Card",1,100,ScriptName+" "+ScriptVer+" - Unloop Procedure")
Do While (CardInserted()=0)
Loop
End Sub

Function Params(g)
' This function updates the glitch parameters of the selected glitch
' parameter set. The function returns 1 if the current working glitches
' were updated, 0 otherwise.

Dim Temp

Params=0
' Initialize to starting values if this is first entry
If DAC(g)=0 And Search(g)=1 Then
DAC(g)=DACI(g)
Delay(g)=DelayI(g)
GlitchDelay(g)=GlitchDelayI(g)
TriesLimit(g)=TriesLimitI(g)
Tries(g)=0
Params=1
Else
Tries(g)=Tries(g)+1
TotalTries(g)=TotalTries(g)+1
If Search(g)=0 Then
' If we have tried these settings repeatedly and reached the fail limit, try to find a different set.
If Tries(g)>FailsLimit(g) Then
Search(g)=1
Tries(g)=TriesLimit(g)+1
End If
End If
If Search(g)=1 Then
' If we have tried these settings repeatedly and reached the tries limit, try to find a different set.
If Tries(g)>TriesLimit(g) Then
If GlitchLogic(g)=0 Then ' Increment the parameters
Temp=ParmInc(DAC(g),DACL(g),DACH(g),ParmInc(Delay( g),DelayL(g),DelayH(g),ParmInc(GlitchDelay(g),Glit chDelayL(g),GlitchDelayH(g),1)))
Else
DAC(g)=RandomRange(DACL(g),DACH(g)) ' Select random voltage
Delay(g)=RandomRange(DelayL(g),DelayH(g)) ' Select random delay
GlitchDelay(g)=RandomRange(GlitchDelayL(g),GlitchD elayH(g)) ' Select random glitch delay
End If
TriesLimit(g)=TriesLimitN(g)
Tries(g)=0
Params=1
End If
End If
End If
End Function

Sub GlitchMsg(t)
' This function displays a progress box on the status of unlooping
' What is displayed depends on the task the sub is called with, t

Dim i
Dim Msg

Msg="Status: Glitching ..."+vbCr+"Sequence: "
If t>=1 Then
Msg=Msg+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),4)+"/"+HexString(GlitchDelay(TaskSet(1)),2)
End If
If t>=3 Then
Msg=Msg+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),4)+"/"+HexString(GlitchDelay(TaskSet(3)),2)
End If
If t>=4 Then
Msg=Msg+"/"+HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),4)+"/"+HexString(GlitchDelay(TaskSet(4)),2)
End If
Msg=Msg+vbCr+"ATR: "
If t>=1 Then
Msg=Msg+HexString(ATR(i),2)+" "
End If
If t>=2 Then
For i=1 to 10
Msg=Msg+HexString(ATR(i),2)+" "
Next
End If
If t>=3 Then
For i=11 to 12
Msg=Msg+HexString(ATR(i),2)+" "
Next
End If
Call Sc.ProgressBox(Msg,t,5,ScriptName+" "+ScriptVer+" - Unloop Procedure")
End Sub

Sub GenericMsg(Message)
' This function displays a progress box on the status of unlooping
' No glitches or ATR are displayed, only the passed Message

Dim i
Dim Msg

Msg="Status: "+Message+vbCr+"Sequence: "+vbCr+"ATR: "
Call Sc.ProgressBox(Msg,1,5,ScriptName+" "+ScriptVer+" - Unloop Procedure")
End Sub

Sub RWMsg(Message,Progress,MaxProgress)
' This function displays a progress box on the status of unlooping
' The full glitch sequence and ATR are displayed along with the passed Message
' The Progress and MaxProgress control the progress bar, Progress is auto-incremented

Dim i
Dim Msg

Msg="Status: "+Message+vbCr+"Sequence: "
Msg=Msg+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),4)+"/"+HexString(GlitchDelay(TaskSet(1)),2)+"/"
Msg=Msg+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),4)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"
Msg=Msg+HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),4)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+" ... Success!"+vbCr+"ATR: "
For i=0 to 12
Msg=Msg+HexString(ATR(i),2)+" "
Next
Call Sc.ProgressBox(Msg,Progress,MaxProgress,ScriptName +" "+ScriptVer+" - Unloop Procedure")
Progress=Progress+1
End Sub

Sub RemoveMsg()
' This function removes the progress box from the screen.
Call Sc.ProgressBox("",0,0,"")
End Sub

Function GetCardInfo(EID,CAMID,USW,IRD,LastDynCode)
GetCardInfo=0
If ReadViaBootloader("8008",&H08,EID)=0 Then Exit Function
If ReadViaBootloader("8374",&H04,CAMID)=0 Then Exit Function
If ReadViaBootloader("8406",&H02,USW)=0 Then Exit Function
If ReadViaBootloader("83C0",&H04,IRD)=0 Then Exit Function
If ReadViaBootloader("893C",&H11,LastDynCode)=0 Then Exit Function
GetCardInfo=1
End Function

Function WriteFixbin63()
' This function writes a clean USW 63 non-clone image to the EEPROM using the bootloader
' 8020-8067 is skipped because this area will be cleaned when the bootloader is erased
' Returns 1 on successful write, 0 on failure
Dim Progress

Progress=1
WriteFixBin63=0
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8067",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8077",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8087",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8097",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("80A7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("80B7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("80C7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("80D7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("80E7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("80F7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8107",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8117",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8127",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8137",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8147",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8157",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8167",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8177",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8187",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8197",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("81A7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("81B7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("81C7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("81D7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("81E7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("81F7",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8207",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8217",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8227",&H10,"00000000000000000002072302894E02")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8237",&H10,"89E8028FC60289E1028FD60205E9028A")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8247",&H10,"B4028BA5028F19021CB4028D96028CF2")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8257",&H10,"028AB0028C22021D28021EA3020D2502")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8267",&H10,"8E6C0210A6028D85028CBF021462028E")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8277",&H10,"92021B31028D03028FBC028972028D96")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8287",&H10,"028FB004220004010300000B02FF0305")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8297",&H10,"00000000040204120201FF07FF030104")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("82A7",&H10,"0300FF0800000000000000010D070801")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("82B7",&H10,"02040408FF00040303FF0000FF000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("82C7",&H10,"FFFF020002000502020405FF01000205")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("82D7",&H10,"04FFFF0414FFFFFF00FFFFFF0000FFFF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("82E7",&H10,"FFFFFFFFFF63297C4498C52FD5279394")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("82F7",&H05,"741C7B64FF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("836C",&H08,"4855545602004833")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8379",&H10,"0300009501288FFFFFFF001800328242")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8389",&H10,"7FFF0018005315602FFF001800631320")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8399",&H10,"1FFF0001020101010201010102010103")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("83A9",&H10,"04000001020101000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("83B9",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("83C9",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("83D9",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("83E9",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("83F9",&H10,"00000000000000000000000000003F00")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8409",&H10,"00000000000000000000000000010000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8419",&H10,"000000080009010000000BFFFFFFFF00")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8429",&H10,"000000FFFFFF00010203040000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8439",&H10,"00000000001304000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8449",&H10,"00000000000000000000000000000000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8459",&H0F,"00000000000000A876B8E8002205E3")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("84F8",&H10,"00021CC100000000000000007D37D051")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8508",&H10,"5A4CB8BA6C0B65A3B0144B1C4E445220")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8518",&H10,"5445414DD4CC171929DE8D59634E95CC")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8528",&H10,"023D0000DD289779438A71801227C692")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8538",&H10,"022D000058A3A43AF647066EC21893F9")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8548",&H10,"79CD95C00555958575653500434784F9")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8558",&H10,"FDCF949E864500002222222222222200")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8568",&H10,"01000000121C6CE4121C6C7576D379D3")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8578",&H10,"770074AAC0E07485C0E0B1AFCDB1AFFF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8588",&H10,"FC91F9EDB4AA004018900C98848008B4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8598",&H10,"C6028003B4BB0AC0057485C0E0798078")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("85A8",&H10,"8022128D9680CB12067E028D96802B80")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("85B8",&H10,"25804280410285600286350285CF0286")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("85C8",&H10,"C60285D20287450286870286C3E6F583")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("85D8",&H10,"08E6F5820822D2738002C273B1D55382")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("85E8",&H10,"F886057908E493307303120035128D96")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("85F8",&H10,"A3D9F2DDEE2215811581E4F544849160")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8608",&H10,"305F055003F605762279D3E709B40001")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8618",&H10,"22B4FF0DE70987059087B31287850980")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8628",&H10,"EAFF87830987820912057C80DE90855C")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8638",&H10,"E0FAA3E0FB4A6004C003C00222908406")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8648",&H10,"E0F874019304700108C3798197702EE8")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8658",&H10,"1997702902866022600E7982E7648580")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8668",&H10,"1C09E7C394415015028FF18479827A06")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8678",&H10,"E7D10609DAFA9084067980D1E1E422EC")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8688",&H10,"6011B41200500CF5F0E760139088EEE0")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8698",&H10,"4760030282847400D1A7028725D106D5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("86A8",&H10,"F00579100287F3AFF009BF110050E4C0")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("86B8",&H10,"01A1F1E9D001AFF002887B1CE720E50C")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("86C8",&H10,"541F702A7910C004F1F3D004EC75F000")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("86D8",&H10,"8027B818F7E07014097402D106E583D1")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("86E8",&H10,"06E582D106E7D10609E7D106E422F5F0")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("86F8",&H10,"C004D1AFD0E0C335F0B4120050956093")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8708",&H10,"FF8006D1067403D1067980E754C04FFD")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8718",&H10,"84748025F0F902874106DFFA22E49088")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8728",&H10,"EFC001791012008DD00153D0E77810E6")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8738",&H10,"518408B8200040F722ED541F6005B412")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8748",&H10,"0040012209C0E0FF788012887D7422F6")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8758",&H10,"D0070F90893CC00112057AD001ED54C0")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8768",&H10,"D62342D0744D028726E7D00008E27918")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8778",&H10,"47128D9608E2094722908792E77374FF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8788",&H10,"D106E7D10609E7D10622E58022E58122")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8798",&H10,"E58222E583224E44432D3936E59022E5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("87A8",&H10,"9922E5A022E5E022E5F0228D80228DA0")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("87B8",&H10,"228DA8228DB0228DB3228DB8228DBD22")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("87C8",&H10,"8DC6228DC7228DD0228DE0228DF02254")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("87D8",&H10,"92F587C0BBA82AD1461C693DEF730E78")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("87E8",&H10,"807910E6F70908DFFA8003A70109B920")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("87F8",&H10,"FA7F067B007879E41149740B11497407")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8808",&H10,"11499087D7E57B93540FFDE57EC31392")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8818",&H10,"E393D6540F2D540FAC796204E57C93D6")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8828",&H10,"540FFDE57DC31392E393540F6D257A54")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8838",&H10,"0FD64CFD74102BF9A7050BBB10B7DFB3")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8848",&H10,"222B540F2410F9E7540FF608E7D6540F")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8858",&H10,"F60822128284121CEEB44F0040030208")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8868",&H10,"91FFF54B7880BF000122121CEEF60880")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8878",&H10,"F57F107810E7F60809DFFA227F107810")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8888",&H10,"8146F608E8540F20D502540745F0F8DF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8898",&H0E,"EF227F107810814670F708DFF922")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("894E",&H10,"7581E7A23792769084F8E0F577D27012")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("895E",&H10,"06E41206787421F14B742045777151E5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("896E",&H10,"31B42603020D1DB45402800878BF7600")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("897E",&H10,"08B8CEFAB4381B853220200715C20830")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("898E",&H10,"1810B1001211B66004D20874137F3502")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("899E",&H10,"091AB44403853475B44C12B10012107C")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("89AE",&H10,"9084FC1218AEC235C2080209CEB47F00")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("89BE",&H10,"4003753300303718B45C0DB1007410B1")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("89CE",&H10,"00740C7F02020A72B45E05B10002096B")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("89DE",&H10,"020796E53130E40F8028307107C271E4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("89EE",&H10,"D22B715102068AF1ADF53D916179807F")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("89FE",&H10,"4090832C12057C7980E4F709B9C0FB02")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A0E",&H10,"8A55E53320E0179161300803020967C2")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A1E",&H10,"0851604004D2088011E53230E00C1212")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A2E",&H10,"4DC208E53320E03FD209798090832CE5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A3E",&H10,"32A2E0920AE4200805E7200A01E0B100")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A4E",&H10,"A309B9C0F0D256E526546CF526C25402")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A5E",&H10,"0D1D7980908468E047F709A3B988F890")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A6E",&H10,"84687980028B8D857F5B852F5C908514")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A7E",&H10,"519C7961E7B10009B969F980CA79AD77")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A8E",&H10,"4009B9C0FA90832451A3153180E4E532")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8A9E",&H10,"20E00CB1797855E493F6A308B85DF802")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8AAE",&H10,"0F687E06807279807DFFE53130E407B4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8ABE",&H10,"363CA74E7DFBD29074255D7151742145")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8ACE",&H10,"77715175B385784CE790851C30E60390")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8ADE",&H10,"852C7907714BD9FC7906714AD9FCE0F5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8AEE",&H10,"7874255D7151742645777151D271B196")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8AFE",&H10,"E4F54FF550E5317980B45E02801CB438")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B0E",&H10,"028017B43609E54E54C04424CE800987")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B1E",&H10,"4EB456067E077C808E4E7154E53120E3")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B2E",&H10,"097951E0F7A309B959F9C270E4F559F5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B3E",&H10,"5AF55DF52DF56DF56EC20A2208E25D71")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B4E",&H10,"51E0A30205F99082ECE54E540FB40800")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B5E",&H10,"500AD6032582F5825002058322E531B4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B6E",&H10,"42D9AF4BBF0001229088EE02057A2279")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B7E",&H10,"80E0F709A3B988F9C3E5829410F5827F")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B8E",&H10,"0802057C7A05D29074175DD22B715112")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8B9E",&H10,"068AB196DAF022E55070FEF150D29074")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8BAE",&H10,"357151E5787151742571517422457771")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8BBE",&H10,"51740571517851E67151D27178CE79BF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8BCE",&H10,"F1AD47F60908B8D3F7D254785179CEE4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8BDE",&H10,"B196B196E7C3966002C254E60809B856")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8BEE",&H10,"EF305416C0E0716BD0E0F145B196DFFC")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8BFE",&H10,"305406204703028F7022C232C25FD253")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C0E",&H10,"22E532B40BB679A6B702B179A377FC09")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C1E",&H10,"770180A87435B575E878807984E7F609")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C2E",&H10,"08B9B1F9E7F57579AD774009B9C0FA90")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C3E",&H10,"831C51A37961D254E5758002F1AD4760")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C4E",&H10,"02C25409B969F578AC79B0E6F71918B9")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C5E",&H10,"83F922C2087961E4F709B96AFB7F4078")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C6E",&H10,"BFF67961908468E047F7A309B969F879")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C7E",&H10,"61873B09E7B53B0280085006E719F709")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C8E",&H10,"A73B09B969EB7962908470E019270947")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8C9E",&H10,"232323F7A309B96AF27961F718DFC279")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8CAE",&H10,"8090832CE0C3976002D208A309B9C0F4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8CBE",&H10,"22E544B46003028611201A030215EBB4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8CCE",&H10,"18067880B6FF0122B40B087F0E908452")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8CDE",&H10,"021713B466E6788074C056F69084F87F")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8CEE",&H10,"0102057A9084687F04EF93B100DFFA02")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8CFE",&H10,"0A250205F7121BFA303B02D231B16678")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D0E",&H10,"C47951C746F7F60809B95BF720381090")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D1E",&H10,"832C795178C4E0F7F6A30809B95BF730")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D2E",&H10,"6602D1B5205005E4F559F55A7951E7B1")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D3E",&H10,"00F709B95BF878C47951E6F70809B959")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D4E",&H10,"F9E529B100E5275407B100E545B40501")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D5E",&H10,"E4D216B100020D1D7A05C270D22B7413")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D6E",&H10,"1205F912068AB196DAF2223016088557")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D7E",&H10,"7F85582FC21622E531B4360A74011205")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D8E",&H10,"F9E5201205F9E520F571B17930700122")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8D9E",&H10,"D2D3C083C082C0B3F572785930680108")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8DAE",&H10,"7B05E57223F5722608B85B02785146F6")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8DBE",&H10,"08B85B027851DBEA908503E531B44402")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8DCE",&H10,"8009854E2020070390853BE571817008")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8DDE",&H10,"75B3857800E25408255D93F573D15D24")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8DEE",&H10,"51F570F8E573F456F572E573D1602451")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8DFE",&H10,"F55EF8E655734572C0E0E52D2451F8D0")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E0E",&H10,"E066F6F572A870E6C313787246F56FF5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E1E",&H10,"F0D425F034F6543F7002056FE56F540F")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E2E",&H10,"93F573E56FD6540F93C33573F404A85E")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E3E",&H10,"26F6257213A87046F6055D535D0F7401")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E4E",&H10,"D160F52DD0B3D082D083E571C2D32203")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E5E",&H10,"03035407252DB40A004002940A223009")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E6E",&H10,"03028A8B740C1210A1E531B436047DFB")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E7E",&H10,"7192D20A7951E4B196B196E71210A109")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E8E",&H10,"B956F4221211B670FAD23590831C7980")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8E9E",&H10,"E047F7A309B988F87F0812057A9083BC")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8EAE",&H10,"7F04798802057C9084FC7836E0F608A3")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8EBE",&H10,"B83AF9E53D9011C330E4039011C37F04")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8ECE",&H10,"7E00EE0454072451F8EE54032436F9E7")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8EDE",&H10,"26F6EE0454032436F9E7FDEE2451F9E7")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8EEE",&H10,"C39D543F9346F6E76D0303543F932326")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8EFE",&H10,"F6E536337C037837E633F608DCFAE536")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F0E",&H10,"33F5360EEEB408BADFB622B40C0C7424")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F1E",&H10,"1205F9740C307602D237B4600302856C")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F2E",&H10,"B40909E52854801213487409B4480385")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F3E",&H10,"4C4FB4575A8061AF3163076022F55002")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F4E",&H10,"05F9305103854F4C53321FC2707DFF02")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F5E",&H10,"8B92E54E24FE540C028660D271E54412")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F6E",&H10,"1CF1E54C244140330215BFE7543FF702")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F7E",&H10,"8781AF34121CEAB163B4EF2002885B03")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F8E",&H10,"F1AD300002F709DC02800DDDF380E3B4")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8F9E",&H10,"66E7121C961213F275440022021C9602")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8FAE",&H10,"067E78BF7980E7F60809B8CEF922E4F5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8FBE",&H10,"29F527C257020DC7C000A831B856048C")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8FCE",&H10,"00F60CD0000205FF901203E531B44402")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8FDE",&H10,"800DB456028008E53D20E4039011C3E5")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8FEE",&H10,"3F932279811CECFA24FD028679FFFFFF")=0 Then Exit Function
Call RWMsg("Writing Fixbin .img ...",Progress,225)
If WriteViaBootloader("8FFE",&H02,"FFFF")=0 Then Exit Function
WriteFixBin63=1
End Function

Function ReadBin()
' This function reads the bin off the card via the stack unwind, and saves
' it to a file. The read stack must already be on the card. The function
' returns 1 on successful read, 0 on failure.
Dim Progress
Dim i,j,k
Dim EEPROM(4096)
Dim ToWrite

ReadBin=0
For i=&H80 to &H8F
For j=&H00 to &HC0 Step &H40
Call RWMsg("Reading EEPROM ...",Progress,64)
ToWrite="BF" ' Glitch Procedure, read 64 bytes, end procedure
SendGP(ToWrite)
If GPRLen<>&H40 Then Exit Function
For k=&H0 to &H3F
EEPROM((i-&H80)*&H100+j+k)=GPR(k)
Next
Next
Next

i=SaveEEPROMFile(EEPROM)
ReadBin=1
End Function


' =============================
' = Basic Unlooper Procedures =
' =============================

Function CardInserted()
' This function determines whether a card is inserted in the unlooper.
' 1 is returned if Yes, 0 if no.
Dim RetVal
RetVal=Sc.Flush()
Sc.Write("80")
Sc.Read(1)
If Sc.GetByte(0)=&HFF Then
CardInserted=1
Else
CardInserted=0
End If
End Function

Function CheckBootloader()
' This function checks the card to see whether the unlooper bootloader
' is already on the card. 1 is returned if yes, 0 if no. This function
' is for non-BS'd H cards.
Dim ToWrite

ToWrite="1F0120271080" ' Glitch procedure, set baud to Debug, reset card, delay 2710h clock cycles, receive 1 byte, end procedure
SendGP(ToWrite)

CheckBootloader=0
If (GPRLen=1 And GPR(0)=&H52) Then
CheckBootloader=1
End If
End Function

Function CheckGoodCard()
' This function checks to see if the card currently in the unlooper is not looped
' 1 is returned if the card is currently good, 0 if there is something wrong with it
Dim ToWrite
Dim GoodATR(13)
Dim i

GoodATR(0)=&H3F
GoodATR(1)=&H78
GoodATR(2)=&H12
GoodATR(3)=&H25
GoodATR(4)=&H01
GoodATR(5)=&H40
GoodATR(6)=&HB0
GoodATR(7)=&H03
GoodATR(8)=&H4A
GoodATR(9)=&H50
GoodATR(10)=&H20
GoodATR(11)=&H48
GoodATR(12)=&H55

ToWrite="10018C" ' Glitch procedure, set baud to ATR, reset card, receive 13 bytes, end procedure
SendGP(ToWrite)
i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

CheckGoodCard=0

' See if the ATR is good
If (GPRLen=13) Then
CheckGoodCard=1
For i=0 to 12
If ATR(i)<>GoodATR(i) Then
CheckGoodCard=0
End If
Next
End If

' If so, see if the card will process a packet
If CheckGoodCard=1 Then
ToWrite="15C448060000000E0283" ' Glitch procedure, transmit packet header, Set watchdog timer to 02, receive 4 bytes, end procedure
SendGP(ToWrite)
If (GPRLen<>4 Or GPR(2)<>&H90 Or GPR(3)<>&H00) Then
CheckGoodCard=0 ' See if we get a response from the packet
End If
End If
End Function

Function CheckGoodCardBS()
' This function checks to see if the card currently in the unlooper is not looped
' 1 is returned if the card is currently good, 0 if there is something wrong with it
Dim ToWrite
Dim GoodATR(13)
Dim i

GoodATR(0)=&H3F
GoodATR(1)=&H78
GoodATR(2)=&H12
GoodATR(3)=&H25
GoodATR(4)=&H01
GoodATR(5)=&H40
GoodATR(6)=&HB0
GoodATR(7)=&H03
GoodATR(8)=&H4A
GoodATR(9)=&H50
GoodATR(10)=&H20
GoodATR(11)=&H48
GoodATR(12)=&H55

ToWrite="10012003D50B8C" ' Glitch procedure, set baud to ATR, reset card, delay 03D5 clock cycles, glitch Vcc, receive 13 bytes, end procedure
SendGP(ToWrite)
i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

CheckGoodCardBS=0

' See if the ATR is good
If (GPRLen=13) Then
CheckGoodCardBS=1
For i=0 to 12
If ATR(i)<>GoodATR(i) Then
CheckGoodCardBS=0
End If
Next
End If

' If so, see if the card will process a packet
If CheckGoodCardBS=1 Then
ToWrite="15C448060000000E0283" ' Glitch procedure, set baud to P2 normal xmit/rcv, transmit packet header, set watchdog timer to 02, receive 4 bytes, end procedure
SendGP(ToWrite)
If (GPRLen<>4 Or GPR(2)<>&H90 Or GPR(3)<>&H00) Then
CheckGoodCardBS=0 ' See if we get a response from the packet
End If
End If
End Function

Sub SendGP(GP)
' This subroutine sends a glitch packet to the unlooper and receives the response
' The glitch packet should not have the length byte or the end procedure commands
Dim Length
Dim i

Call Replace(GP," ","")
GP=GP+"00" ' Add end procedure command
Length=Len(GP)\2
GP=HexString(Length,2)+GP ' Add the glitch procedure start/length byte
' Send the glitch packet
Sc.Write(GP)

' Receive the response packet "# bytes processed" byte and "bytes to send" byte
Sc.Read(2)
GPPLen=Sc.GetByte(0) ' Get the processed byte length from unlooper
GPRLen=Sc.GetByte(1) ' Get the number of bytes the unlooper has to send
Sc.Read(GPRLen)
i=0
Do While (GPRLen>i)
GPR(i)=Sc.GetByte(i)
i=i+1
Loop
i=Sc.Flush()
End Sub

Function ReadViaBootloader(Address,Length,Bytes)
' This function reads EEPROM via the bootloader.
' The bytes read are returned in in the Bytes variable if the read was successful
' The empty string is returned otherwise. The function returns 1 on a successful
' read, 0 on failure
Dim TempStr
Dim AddrH, AddrL, RcvLen
Dim i
Dim ToWrite

AddrH=Left(Address,2)
AddrL=Right(Address,2)
RcvLen=HexString(Length+&H80,2)
ToWrite="1F" ' Glitch procedure, set baud to Debug
ToWrite=ToWrite+InsertByteDelay(AddrH+AddrL+HexStr ing(Length,2))
ToWrite=ToWrite+RcvLen ' Receive Length+1 bytes
SendGP(ToWrite)
Bytes=""
ReadViaBootloader=0
If GPRLen>0 Then
If GPR(GPRLen-1)=&H52 Then
For i=0 to GPRLen-2
Bytes=Bytes+HexString(GPR(i),2)
Next
ReadViaBootloader=1
End If
End If
End Function

Function WriteViaBootloader(Address,DeclLength,Bytes)
' This function writes bytes to EEPROM using the bootloader
' It returns 1 on no error, 0 on unsuccessful write
Dim AddrH, AddrL, SendLen, Length
Dim ToWrite

WriteViaBootloader=0
AddrH=Left(Address,2)
AddrL=Right(Address,2)
Call Replace(Bytes," ","")
Length=Len(Bytes)\2
If Length<>DeclLength Then Exit Function ' Make sure actual number of bytes is same as declared
SendLen=HexString(Length+&H80,2)
ToWrite="1F" ' Glitch procedure, set baud rate to Debug
ToWrite=ToWrite+InsertByteDelay(AddrH+AddrL+SendLe n+Bytes)
ToWrite=ToWrite+"0E0A80" ' set watchdog timer to 0Ah, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 And GPR(0)=&HFF Then
WriteViaBootloader=1
End If
End Function

Function InsertByteDelay(Bytes)
' This function places 283 cycle clock delays in between each byte of Bytes and returns the
' resulting string. This is used when bytes need to be send to the bootloader
Dim Length,BuildString
Dim i

Call Replace(Bytes," ","")
Length=Len(Bytes)\2
BuildString="C0"+Left(Bytes,2) ' Glitch procedure, transmit 1 byte
For i=1 to Length-1
BuildString=BuildString+"200100C0"+Mid(Bytes,i*2+1,2) ' delay 283 clock cycles, transmit 1 byte
Next
InsertByteDelay=BuildString
End Function

Function ExitBootloader()
' This function exits the bootloader and erases it from the card
' It returns 1 when bootloader is successfully erased, 0 if error
Dim ToWrite

ToWrite=InsertByteDelay("0000D2") ' Glitch procedure, transmit 3 bytes with 283 clock cycle delay, end procedure
SendGP(ToWrite)
ToWrite=InsertByteDelay("00FF440D01031220")
SendGP(ToWrite)
ToWrite=InsertByteDelay("00000000000000000000000000000000")
SendGP(ToWrite)
ToWrite=InsertByteDelay("00000000000000000000000000000000")
SendGP(ToWrite)
ToWrite=InsertByteDelay("00000000000000000000000000000000")
SendGP(ToWrite)
ToWrite=InsertByteDelay("00000000000000000000000000000000")
SendGP(ToWrite)
ToWrite=InsertByteDelay("32000F04930468485011")
ToWrite=ToWrite+"0E0B8001" ' Glitch procedure, set watchdog timer to 0Bh, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 and GPR(0)=&H55 Then
ExitBootloader=1
Else
ExitBootloader=0
End If
End Function


' ===================================
' = Unlooper Base Glitch Procedures =
' ===================================

Function GlitchTask1(g)
' This function applies the first glitch to the card:
' Glitch Task 1 - Glitch past Black Sunday 8000h/33h check
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once.
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2) ' Set glitch voltage (DAC)
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="10012003D5" ' Glitch procedure, set baud to ATR, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 2:
ToWrite="10012003D5" ' Glitch procedure, set baud to ATR, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 3:
ToWrite="1001" ' Glitch procedure, set baud to ATR, reset card
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
End Select

SendGP(ToWrite)

i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

GlitchTask1=0
If (GPRLen>0 And ATR(0)=&H3F) Then
GlitchTask1=1
End If
End Function

Function GlitchTask2(g)
' This function applies the second glitch to the card:
' Glitch Task 2 - Get next 10 bytes of ATR
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once

Dim i

SendGP("89") ' Glitch procedure, receive 10 bytes, end procedure
For i=1 to 10
ATR(i)=GPR(i-1)
Next
GlitchTask2=1
End Function

Function GlitchTask3(g)
' This function applies the third glitch to the card:
' Glitch Task 3 - Glitch for last 2 bytes of ATR and packet response
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2)
Sc.Write(ToWrite) ' Set DAC voltage

Select Case GlitchProc(g)
Case 1:
ToWrite="040720"+HexString(Delay(g),4) ' Glitch procedure, pull I/O high, wait I/O low, delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"03202710" ' Pull I/O low, Delay 2710h clock cycles
ToWrite=ToWrite+"81" ' Read 2 bytes from unlooper, end procedure
End Select

SendGP(ToWrite)

i=0
Do While (GPRLen>i)
ATR(i+11)=GPR(i)
i=i+1
Loop

If Search(3)=1 Then
GlitchTask3=0
ToWrite="C4480600000083" ' Glitch procedure, transmit packet header, receive 4 bytes, end procedure
SendGP(ToWrite)
If (GPRLen=4 And GPR(2)=&H90 And GPR(3)=&H00) Then
GlitchTask3=1 ' See if we get a response from the packet
End If
Else
GlitchTask3=1
End If
End Function

Function GlitchTask4(g)
' This function applies the fourth glitch to the card:
' Glitch Task 4 - Glitch to try to fill memory with stack and bootloader for writing
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2) ' Set DAC Voltage
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="C348060000" ' Glitch procedure, transmit 4 byte header
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"C0D2" ' Transmit 1 byte
ToWrite=ToWrite+"20"+HexString(GlitchDelay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc, end procedure
End Select

SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"03000000000000000000000000000000000000000000000000 0000000000000000000000000000000000802802FD00000000 0000000000000000000000000000"
SendGP(ToWrite)

GlitchTask4=0
If (GPPLen=&H42) Then
' Try to write remainder of bootloader
ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"00000000000000000000000000000000000000000000000000 000074081205FF1203F2745212040F795F7A03116112116A10 E706FB12014F80E9FAFF79681161"
SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"E5836009796812057C35E080D8908020898122091201C8DAFA 2200000000003200F7056105610250119604904050116A11F7 0593043600360036003600360036"
SendGP(ToWrite)

ToWrite="CA" ' Glitch procedure, attempt to fill memory with 11 bytes
ToWrite=ToWrite+"0036003600360036003600"
SendGP(ToWrite)

ToWrite="C6" ' Glitch procedure, final wrap-around to unwind the stack
ToWrite=ToWrite+"1F802000FF0301"
SendGP(ToWrite)

' See if the stack got unwound
ToWrite="80" ' Glitch procedure, receive 1 byte, end procedure
SendGP(ToWrite)

If GPRLen=1 And GPR(0)=&H55 Then ' Bootloader stack got unwound
ToWrite="0E0B80" ' Glitch procedure, set watchdog timer to 11, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 and GPR(0)=&H77 Then
GlitchTask4=1 ' Bootloader is on the card!
End If
End If
End If
End Function

Function GlitchTask4B(g)
' This function applies the first glitch to the card:
' Glitch Task 4 - Glitch to try to fill memory with stack for reading
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2) ' Set DAC Voltage
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="C348060000" ' Glitch procedure, transmit 4 byte header
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"C0D2" ' Transmit 1 byte
ToWrite=ToWrite+"20"+HexString(GlitchDelay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc, end procedure
End Select

SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"03000000000000000000000000000000000000000000000000 00000000000000000000000000000000008000000000000000 0000000000000000000000000000"
SendGP(ToWrite)

GlitchTask4B=0
If (GPPLen=&H42) Then
' Try to write remainder of stack
ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000003200F7"
SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"059304F70561058A078A078A078A078A078A078A078A078A07 8A078A078A078A078A078A078A07000055066A11F7056105F7 0593043600360036003600360036"
SendGP(ToWrite)

ToWrite="CA" ' Glitch procedure, attempt to fill memory with 11 bytes
ToWrite=ToWrite+"0036003600360036003600"
SendGP(ToWrite)

ToWrite="C6" ' Glitch procedure, final wrap-around to unwind the stack
ToWrite=ToWrite+"1F000000FF0301"
SendGP(ToWrite)

' See if the stack got unwound
ToWrite="80" ' Glitch procedure, receive 1 byte, end procedure
SendGP(ToWrite)

If GPRLen=1 And GPR(0)=&H55 Then ' Stack got unwound
ToWrite="0E0B80" ' Glitch procedure, set watchdog timer to 11, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 and GPR(0)=&H77 Then
GlitchTask4B=1 ' Ready to read the card!
End If
End If
End If
End Function

Function GlitchTask5(g)
' This function attempts to glitch into the unlooper bootloader that is
' supposed to be on the card. 1 is returned if successful, 0 if not.
'
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

' Glitch procedure 5 - Glitch past Black Sunday 8000h/33h check and into bootloader
ToWrite="B0"+HexString(DAC(g),2) ' Set glitch voltage (DAC)
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="1F012003D5" ' Glitch procedure, set baud to Debug, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 2:
ToWrite="1F012003D5" ' Glitch procedure, set baud to Debug, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
End Select
SendGP(ToWrite)

GlitchTask5=0
If (GPRLen>0 And GPR(0)=&H52) Then
GlitchTask5=1 ' See if the bootloader is on the card
End If
End Function


' ============================
' = File-Handling Procedures =
' ============================

Function SaveEEPROMFile(EEPROM)
Dim GotInput
Dim OutFile
Dim FileSize
Dim i
Dim FileName
Dim Fuse,FuseXor
Dim CAMID
Const FileFilter="Bin Files (*.bin)|*.bin|All Files (*.*)|*.*"
FileName=""
GotInput=False
SaveEEPROMFile=False
For i=&H374 to &H377
CAMID=CAMID+HexString(EEPROM(i),2)
Next
CAMID=CAMID+".bin"
Do
FileName=Fs.FileSaveDialog(FileFilter,ScriptName+" "+ScriptVer+" - Save Bin File",CAMID)
If (FileName<>"") Then ' If the filename returned is empty, the user clicked cancel.
OutFile=Fs.FileCreate(FileName) ' Create the new file
Call Fs.FileSeek(OutFile,&H0,fsoSEEK_SET)
For i=0 to 4095
Call Fs.FilePutc(OutFile,EEPROM(i))
Next
GotInput=True
SaveEEPROMFile=True
Fs.FileClose(OutFile)
Else
GotInput=True
End If
Loop Until GotInput=True
End Function


' ========================
' = Low-Level Procedures =
' ========================

Sub SetGlitchValues()
Dim i

' Glitch Task 1 Parameter Set A
DAC(1)=&H0
DACL(1)=&H70
DACI(1)=&H82
DACH(1)=&H90
Delay(1)=&H0
DelayL(1)=&H2157
DelayI(1)=&H2158
DelayH(1)=&H2159
GlitchDelay(1)=&H0
GlitchDelayL(1)=&H10
GlitchDelayI(1)=&H20
GlitchDelayH(1)=&H40
Tries(1)=0
TotalTries(1)=0
TriesLimit(1)=0
TriesLimitN(1)=3
TriesLimitI(1)=50
GlitchProc(1)=3
AltProc(1)=5
AltProcTriesLimit(1)=500
FailsLimit(1)=35
GlitchLogic(1)=1
Search(1)=1

' Glitch Task 2 Parameter Set A
' This is an unused set of glitch parameters. Unused glitch parameters should
' be set as follows for proper glitch display.
DAC(2)=&H1
DACL(2)=&H1
DACI(2)=&H1
DACH(2)=&H1
Delay(2)=&H0
DelayL(2)=&H0
DelayI(2)=&H0
DelayH(2)=&H0
GlitchDelay(2)=&H0
GlitchDelayL(2)=&H0
GlitchDelayI(2)=&H0
GlitchDelayH(2)=&H0
Tries(2)=0
TotalTries(2)=0
TriesLimit(2)=0
TriesLimitN(2)=1
TriesLimitI(2)=1
GlitchProc(2)=1
AltProc(2)=0
AltProcTriesLimit(2)=500
FailsLimit(2)=1
GlitchLogic(2)=0
Search(2)=0

' Glitch Task 3 Parameter Set A
DAC(3)=&H0
DACL(3)=&H70
DACI(3)=&H82
DACH(3)=&H90
Delay(3)=&H0
DelayL(3)=&H600
DelayI(3)=&H604
DelayH(3)=&H618
GlitchDelay(3)=&H0
GlitchDelayL(3)=&H30
GlitchDelayI(3)=&H38
GlitchDelayH(3)=&H40
Tries(3)=0
TotalTries(3)=0
TriesLimit(3)=0
TriesLimitN(3)=2
TriesLimitI(3)=10
GlitchProc(3)=1
AltProc(3)=0
AltProcTriesLimit(3)=500
FailsLimit(3)=25
GlitchLogic(3)=1
Search(3)=1

' Glitch Task 4 Parameter Set A
DAC(4)=&H0
DACL(4)=&H80
DACI(4)=&H82
DACH(4)=&HA0
Delay(4)=&H0
DelayL(4)=&H4550
DelayI(4)=&H4E20
DelayH(4)=&H5000
GlitchDelay(4)=&H0
GlitchDelayL(4)=&H128
GlitchDelayI(4)=&H138
GlitchDelayH(4)=&H150
Tries(4)=0
TotalTries(4)=0
TriesLimit(4)=0
TriesLimitN(4)=1
TriesLimitI(4)=40
GlitchProc(4)=1
AltProc(4)=0
AltProcTriesLimit(4)=500
FailsLimit(4)=10
GlitchLogic(4)=1
Search(4)=1

' Glitch Task 1 Parameter Set B
DAC(5)=&H0
DACL(5)=&H70
DACI(5)=&H82
DACH(5)=&H90
Delay(5)=&H0
DelayL(5)=&H1D00
DelayI(5)=&H1D2B
DelayH(5)=&H1D40
GlitchDelay(5)=&H0
GlitchDelayL(5)=&H08
GlitchDelayI(5)=&H0C
GlitchDelayH(5)=&H10
Tries(5)=0
TotalTries(5)=0
TriesLimit(5)=0
TriesLimitN(5)=3
TriesLimitI(5)=100
GlitchProc(5)=1
AltProc(5)=6
AltProcTriesLimit(5)=2000
FailsLimit(5)=100
GlitchLogic(5)=1
Search(5)=1

' Glitch Task 1 Parameter Set C
DAC(6)=&H0
DACL(6)=&H70
DACI(6)=&H82
DACH(6)=&H90
Delay(6)=&H0
DelayL(6)=&H1D29
DelayI(6)=&H1D2B
DelayH(6)=&H1D2D
GlitchDelay(6)=&H0
GlitchDelayL(6)=&H0A
GlitchDelayI(6)=&H0C
GlitchDelayH(6)=&H0E
Tries(6)=0
TotalTries(6)=0
TriesLimit(6)=0
TriesLimitN(6)=3
TriesLimitI(6)=100
GlitchProc(6)=1
AltProc(6)=7
AltProcTriesLimit(6)=1000
FailsLimit(6)=100
GlitchLogic(6)=1
Search(6)=1

' Glitch Task 1 Parameter Set D
DAC(7)=&H0
DACL(7)=&H70
DACI(7)=&H82
DACH(7)=&H90
Delay(7)=&H0
DelayL(7)=&H1D29
DelayI(7)=&H1D2B
DelayH(7)=&H1D2D
GlitchDelay(7)=&H0
GlitchDelayL(7)=&H0D
GlitchDelayI(7)=&H0F
GlitchDelayH(7)=&H11
Tries(7)=0
TotalTries(7)=0
TriesLimit(7)=0
TriesLimitN(7)=3
TriesLimitI(7)=100
GlitchProc(7)=2
AltProc(7)=8
AltProcTriesLimit(7)=1000
FailsLimit(7)=100
GlitchLogic(7)=1
Search(7)=1

' Glitch Task 1 Parameter Set D
DAC(8)=&H0
DACL(8)=&H70
DACI(8)=&H82
DACH(8)=&H90
Delay(8)=&H0
DelayL(8)=&H1D19
DelayI(8)=&H1D1B
DelayH(8)=&H1D1D
GlitchDelay(8)=&H0
GlitchDelayL(8)=&H0A
GlitchDelayI(8)=&H0D
GlitchDelayH(8)=&H11
Tries(8)=0
TotalTries(8)=0
TriesLimit(8)=0
TriesLimitN(8)=3
TriesLimitI(8)=50
GlitchProc(8)=1
AltProc(8)=1
AltProcTriesLimit(8)=1000
FailsLimit(8)=100
GlitchLogic(8)=1
Search(8)=1

TaskSet(1)=1
TaskSet(2)=2
TaskSet(3)=3
TaskSet(4)=4
TaskSet(5)=5

Randomize

For i=0 To 12
ATR(i)=0
Next
End Sub

Function ParmInc(Parm,Low,High,Inc)
' This function increments the parameter Parm by one, resetting it to low if it goes beyond high
' The value of Inc specifies whether the function should do the increment or not: 1=Do the increment, 0=Don't
' This way the function can be nested
' The function returns 0 if ParmInc didn't wrap, 1 if it did
If Inc=1 Then
Parm=Parm+1
ParmInc=0
If Parm>High Then
Parm=Low
ParmInc=1
End If
End If
End Function

Function RandomRange(Low,High)
' This function returns a random integer between Low and High
RandomRange=Int(Rnd()*(High-Low+1))+Low
End Function

Sub SetupWinExplorer()
If Sc.Version<4.5 Then
ErrorString="You need version 4.5 or greater of WinExplorer to run this script"
Call Sc.MsgBox(ErrorString,vbCritical,ScriptName+" "+ScriptVer+" - Error")
Call Err.Raise(1050,,ErrorString)
End If

' Unlooper doesn't need byte delay
Sc.ByteDelay = 0
End Sub

Function HexString(Number,Length)
' This function takes 2 arguments, a number and a length. It converts the decimal
' number given by the first argument to a Hexidecimal string with its length
' equal to the number of digits given by the second argument
Dim RetVal
Dim CurLen
RetVal=Hex(Number)
CurLen=Len(RetVal)
If CurLen<Length Then
RetVal=String(Length-CurLen,"0") & RetVal
End If
HexString=RetVal
End Function

Function HexToDec(HexNumber)
' This function takes a string as input, assuming it to be a Hexidecimal string,
' and converts it to a decimal number.
HexNumber=Replace(UCase(HexNumber)," ","")
HexToDec=CLng("&H"+HexNumber)
End Function

novato1223
30-07-2006, 17:44
otro qu esupuestamente lee la tarjeta


Vb Script creato il 25/06 /2005 da studio-nds2
' Questo commento è necessario perchè winexplorer riconosce il vb sript
'




Call DxSetting()'con questo impostiamo i setting

Sub Main()
Dim i



sc.Verbose = False
Sc.write("D0 58 00 00 4C")
Sc.read(76 + 3)
Seriale = HexString(Sc.Getbyte(4),2) & " " & HexString(Sc.Getbyte(5),2)& " " & HexString(Sc.Getbyte(6),2) & " " & HexString(Sc.Getbyte(7),2)
Fus = HexString(Sc.Getbyte(3),2)
Share = HexString(Sc.Getbyte(35),2) & " " & HexString(Sc.Getbyte(36),2)& " " & HexString(Sc.Getbyte(37),2)

Select Case Fus
Case 25
Fuse = "25 Active"
Case 00
Fuse = "00 Virgin"
End Select
Print
Print "Seriale hex " & Seriale
Print
Print "Seriale Decimale " & "0001." & Left(HexToDec(Seriale),4) & "." & Right(HexToDec(Seriale),4)
Print
Print "Shared " & Share
Print
Print "Fuse Byte " & Fuse
Print
for i = HexToDec("00") to HexToDec("08") 'inserire tra virgolette il valore in hex

Comando = "D0 76 " & HexString(i,2) & " 00 0A"

sc.write(Comando)
Sc.read(11 + 2 )

Tiers = HexString(Sc.Getbyte(3),2) & HexString(Sc.Getbyte(4),2)

Mese = Sc.Getbyte(5)
Giorno = Sc.Getbyte(6)

Temp = DateAdd("m", Mese, #31/12/1996#)'utilizzando la funzione DateAdd è necessario mettere 31/12/1996
DataNds = DateAdd("d", Giorno , Temp) 'per avere la data corretta
Print
Print "Tiers " & Tiers & " Scadenza " & DataNds
next


End Sub


'===============================================

Function HexString(ThisNumber, Length)
Dim RetVal
Dim CurLen

RetVal = Hex(ThisNumber)
CurLen = Len(RetVal)

If CurLen < Length Then
RetVal = String(Length - CurLen, "0") & RetVal
End If

HexString = RetVal
End Function


'================================================
Function HexToDec(NumHex) ' converte un numero hex in decimale
NumHex=Replace(UCase(NumHex)," ","")
HexToDec=CLng("&H" & NumHex)
End Function

'================================================
Sub DxSetting()
Device=com1:
BaudRate=38400
ResetBaudRate=9600
ResetDelay=40000
ByteDelay=40000
RxByteTimeout=1000
Parity=1
StopBits=2
FlushBeforeWrite=1
FlushEchoByte=1
DTRControl=1
RTSControl=0
ResetMode=1
IgnoreTimeouts=0
ResetAfterTimeout=0
ResetLine=0
LogTransactions=0
DisplayUSW=1
DisplayFuse=1
ByteConvention=0
End Sub

RuLz
30-07-2006, 18:40
buenas, acabo de enterarme de sto de ahuna digital, llevo 20 minutos leyendo el hilo este, decirme si la conclusion q e sacao es la correcta:
ya se venden los decos digitales "trucados" y funcionando, pero kien los vende no suelta prenda y stais intentando en ste hilo el metodo pa hacerlos rular... es eso?

presario2500
30-07-2006, 18:44
alguna forma de resetear el deco o card para no tener que tenerlo conectado al telefono (pues no tengo telefono fijo)he leido por ahi que abriendo el de deco al lado del procesador hay un pulsador yo no lo puedo probar hasta mañana pues no estoy en casa ,alguien sabe algo,mañana lo abriré y lo miraré ,postearé resultados.y todo esto por que segun he leido la card tiene un limite de carga de eventos comprados y si se carga a tope se blokea salu2

presario2500
30-07-2006, 18:47
asi es rulz ,aunque la cosa esta muy escondida ,pero vamos sacando nuestras refexiones y dudas

Noish
30-07-2006, 22:21
otro qu esupuestamente lee la tarjeta


' Vb Script creato il 25/06 /2005 da studio-nds2
' Questo commento è necessario perchè winexplorer riconosce il vb sript
'




Call DxSetting()'con questo impostiamo i setting

Sub Main()
Dim i



sc.Verbose = False
Sc.write("D0 58 00 00 4C")
Sc.read(76 + 1) <------ He kitado el 3 y he puesto un 1 para ke lea 77 bytes en vez de 79.
Seriale = HexString(Sc.Getbyte(4),2) & " " & HexString(Sc.Getbyte(5),2)& " " & HexString(Sc.Getbyte(6),2) & " " & HexString(Sc.Getbyte(7),2)
Fus = HexString(Sc.Getbyte(3),2)
Share = HexString(Sc.Getbyte(35),2) & " " & HexString(Sc.Getbyte(36),2)& " " & HexString(Sc.Getbyte(37),2)

Select Case Fus
Case 25
Fuse = "25 Active"
Case 00
Fuse = "00 Virgin"
End Select
Print
Print "Seriale hex " & Seriale
Print
Print "Seriale Decimale " & "0001." & Left(HexToDec(Seriale),4) & "." & Right(HexToDec(Seriale),4)
Print
Print "Shared " & Share
Print
Print "Fuse Byte " & Fuse
Print
for i = HexToDec("00") to HexToDec("08") 'inserire tra virgolette il valore in hex

Comando = "D0 76 " & HexString(i,2) & " 00 0A"

sc.write(Comando)
Sc.read(11 + 2 )

Tiers = HexString(Sc.Getbyte(3),2) & HexString(Sc.Getbyte(4),2)

Mese = Sc.Getbyte(5)
Giorno = Sc.Getbyte(6)

Temp = DateAdd("m", Mese, #31/12/1996#)'utilizzando la funzione DateAdd è necessario mettere 31/12/1996
DataNds = DateAdd("d", Giorno , Temp) 'per avere la data corretta
Print
Print "Tiers " & Tiers & " Scadenza " & DataNds
next


End Sub


'===============================================

Function HexString(ThisNumber, Length)
Dim RetVal
Dim CurLen

RetVal = Hex(ThisNumber)
CurLen = Len(RetVal)

If CurLen < Length Then
RetVal = String(Length - CurLen, "0") & RetVal
End If

HexString = RetVal
End Function


'================================================
Function HexToDec(NumHex) ' converte un numero hex in decimale
NumHex=Replace(UCase(NumHex)," ","")
HexToDec=CLng("&H" & NumHex)
End Function

'================================================
Sub DxSetting()
Device=com1:
BaudRate=38400
ResetBaudRate=9600
ResetDelay=40000
ByteDelay=40000
RxByteTimeout=1000
Parity=1
StopBits=2
FlushBeforeWrite=1
FlushEchoByte=1
DTRControl=1
RTSControl=0
ResetMode=1
IgnoreTimeouts=0
ResetAfterTimeout=0
ResetLine=0
LogTransactions=0
DisplayUSW=1
DisplayFuse=1
ByteConvention=0
End Sub

Acabo de probar el script y no hace gran cosa:

Trying to reset card...
Reset Successful

RX ATR : 3F 7F 13 25 02 40 B0 12 69 FF 4A 50 90 41 55 00 00 00 00 00

Seriale hex 00 08 18 EE
Seriale Decimale 0001.5306.0670
Shared 00 08 18
Fuse Byte

Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996
Tiers 0000 Scadenza 31/12/1996

Script Script File: Transmission Completed
The Update Status Word is at 0 (Hex)

The Fuse Byte is at 4 (Hex)


novato1223 te pongo en rojo lo ke he añadido o modificado para ke funcionara el script.

GALLEGO
30-07-2006, 22:30
alguna forma de resetear el deco o card para no tener que tenerlo conectado al telefono (pues no tengo telefono fijo)he leido por ahi que abriendo el de deco al lado del procesador hay un pulsador yo no lo puedo probar hasta mañana pues no estoy en casa ,alguien sabe algo,mañana lo abriré y lo miraré ,postearé resultados.y todo esto por que segun he leido la card tiene un limite de carga de eventos comprados y si se carga a tope se blokea salu2
me parece que el abq no se resetea.
me parece que ablas del motorrrrolla

novato1223
30-07-2006, 22:55
A ver si le puedes echar un vistazo a este
su nombre es v27 ultimate unloop



'NEW Mod #4 by johnnyL!! Good luck.
'
' Modified and renamed by No1b4me to include unlooper option
'
' INS 5C & 7F Glitch Routine
'
' Glitches into cards using INS 5C.
' Glitches 7F cards.
'
' Requirements: INS5C7F Atmel code to work!!!
'
' Anonymous
'
' Special thanks go to AOL6945 and especially CLIPGRP, both of whom without their help
' this would not be possible.
'
'
Option Explicit
Const dss_DefaultButton1 = 0
Const dss_DefaultButton2 = 256
Const dss_DefaultButton3 = 512
Const fsoError = -1
Const fsoOpenRead = 0
Const fsoOpenWrite = 1
Const fsoOpenReadWrite = 2
Const fsoSEEK_SET = 0
Const fsoSEEK_CUR = 1
Const fsoSEEK_END = 2
Const FileFilter = "All Eprom Files (*.bin, *.crd)|*.bin;*.crd;|Bin Files (*.bin)|*.bin|Crd Files (*.crd)|*.crd|All (*.*)|*.*"

Dim OutFile
Dim InFile
Dim HUBinFile
Dim ZipCode
Dim Guide
Dim HexZipCode1
Dim HexZipCode2
Dim HexZipCode3
Dim HexTimeZone
Dim DefaultTZButton
Dim DefaultDaylightButton
Dim TimeZone
Dim Daylight
Dim CodeProtection
Dim ScriptStart
Dim ScriptEnd
Dim glttl
Dim chglch
Dim d0,D1,D2,D3,D4,D5,D6,D7,D8,d9

Sub Main()
Dim ErrorString
Dim MenuPrompt
Dim Choice
Dim PromptString
Dim RetVal
Dim GotInput
Dim ThisChar
Dim Version
Dim Password

Sc.Verbose = 0
chglch = 0
d0 = 0
glttl = 0

If Sc.Version < 4.5 Then
ErrorString = "You need version 4.5 or greater of WinExplorer to run this script"
Sc.MsgBox ErrorString, vbCritical
Err.Raise 1050, , ErrorString
End If

if ChipVer <> 1 then
sc.MsgBox("You need chip version UL4S to run this script" & VbCr & "Flash your chip with the Included UL4S code")
Exit Sub
end if

Do
MenuPrompt = " Modifed version of No1B4me's script--HU Unlooper and INS5C & 7F Glitch Loader/Cleaner ! " & vbCrLf & vbCrLf
MenuPrompt = MenuPrompt & " This should unloop HU cards faster as the random glitch range was shortened." & vbCrLf & vbCrLf
MenuPrompt = MenuPrompt & " Run this script for a couple mins.. if not unlooped .. then abort script and rerun it." & vbCrLf
MenuPrompt = MenuPrompt & " May take a couple restarts. Good luck!" & vbCrLf & vbCrLf
MenuPrompt = MenuPrompt & " Watch for the valid ATR responses.. 3F 7F ...when u see a lot of those.. You are on the right track." & vbCrLf & vbCrLf
MenuPrompt = MenuPrompt & " *** P.S. if card unloops and u select a bin to write to card and it says ->in use.. select another bin" & vbCrLf
MenuPrompt = MenuPrompt & " or close winexplorer then reopen and rerun script." & vbCrLf & vbCrLf
MenuPrompt = MenuPrompt & " Big shout out to No1B4me and unatester..Awesome work!" & vbCrLf & vbCrLf
MenuPrompt = MenuPrompt & " Please choose from the following menu choices:"

Choice = Sc.ButtonBox(MenuPrompt, 0, " HU Unlooper and INS5C & 7F Glitch Loader No1B4me script edited by johnnyL!", "Unloop", "Exit")

Select Case Choice

Case "1"

RetVal = 3
call IsCardPresent()
if(GetATR = True) then
RetVal=Sc.ButtonBox("This card appears to have a good ATR"& VbCr &"Unloop anyway", vbDefaultButton2 + vbQuestion, "Unlooper", "Yes", "No")
if RetVal = 1 then RetVal = 3
End if

if RetVal = 3 then

HUBinfile = False
if(BootCard())= 1 then
sc.print VbCr & "Select a good eeprom bin to write to the card" & VbCr
Call GetFile()

If HUBinFile = True then
Call WriteCard()
call ShowAtr()
else
Fs.FileClose(InFile)
end if

end if
end if


Case "2", ""
Exit Sub
Case Else
MenuPrompt = "Invalid Input!" & vbCrLf
End Select
Loop While True = True

end sub

Sub LoadBootStrap()
Dim RetValue
Dim GotInput
Dim DAC
Dim ATRDAC
Dim DAC4C
Dim Delay
Dim Delay5C
Dim Counter

Counter = 0
ATRDAC = &h70
DAC4C = &h85
DAC = &h8C
Delay = &h1A
Delay5C = 4


Do

Call IsCardPresent()
Sc.Write("A1")
GotInput = False

If Counter = 12 then
Counter = 0
DAC = &h8C
Delay = &h1A
end if

If Counter = 1 then
DAC = &h8C
Delay = &h8E
DAC4C = &h85
Delay5C = 4
end if

If Counter = 2 then
DAC = &h8A
Delay = &h1A
Delay5C = 5
end if

If Counter = 3 then
DAC = &h8A
Delay = &h8E
Delay5C = 4
end if

If Counter = 4 then
DAC = &h88
Delay = &h1A
DAC4C = &h82
Delay5C = 5
end if

If Counter = 5 then
DAC = &h88
Delay = &h8E
Delay5C = 4
end if

If Counter = 6 then
DAC = &h86
Delay = &h1A
Delay5C = 5
end if

If Counter = 7 then
DAC = &h86
Delay = &h8E
Delay5C = 4
end if

If Counter = 8 then
DAC = &h84
Delay = &h1A
DAC4C = &h80
Delay5C = 5
end if

If Counter = 9 then
DAC = &h84
Delay = &h8E
Delay5C = 4
end if

If Counter = 10 then
DAC = &h82
Delay = &h1A
Delay5C = 5
end if

If Counter = 11 then
DAC = &h82
Delay = &h8E
DAC4C = &h71
Delay5C = 4
end if

Call Sc.ProgressBox ("Glitching... DAC: " & HexString(DAC,2) & vbcr & " Delay: " & HexString(Delay,2), 1, 999, "Hu Card Unlock")

Sc.Write("06100E10019300")
Sc.Delay(80)
Sc.Read(&h02)
RetValue = Sc.GetByte(&h01)
Sc.Read (RetValue)

Sc.Write("B0")
Sc.Write(HexString(DAC,2))
' 5C glitch
Sc.Write("121AC4485C0000048020003F09830B" & HexString(Delay5C,2) & HexString(Delay,2) & "8100")
Sc.Delay(80)
Sc.Read(&h02)
RetValue = Sc.GetByte(&h01)
Sc.Read (RetValue)

Sc.Write("B0")
Sc.Write(HexString(DAC4C,2))
'Sc.Write("85")
Sc.Write("0B 15 C4 48 4C 00 00 FF 70 C9 08 00")
Sc.Delay(80)
If Sc.BytesInBuffer > 0 Then
Sc.Read(&h02)
RetValue = Sc.GetByte(&h01)
Sc.Read (RetValue)
End If

Sc.Write("34F00000000069FFFFFFFF523FFD2284E172400772FF14C5E2 AB0100C3DA07F88C0100000000000000000000000000000000 008000")
Sc.Delay(80)
Sc.Read(&h02)
If Sc.GetByte(&h0) = &h34 then
If Sc.GetByte(&h01) = &h01 then
Sc.Read(&h01)
If Sc.GetByte(&h0) = &h84 then
GotInput = True
else
GotInput = False
end if
end if
end if
Counter = Counter + 1
Loop Until GotInput = True

Sc.Write("42FF225272FF14E1E2D007E2D029E2D02A77800718753F07D3 07D807C5E2AB0060C3DA07F8726015D404E700D57640070DD3 078ECEFB70012ADA07F700C49E2A00FA00")
Sc.Delay(80)
Sc.Read(&h02)

Call Sc.ProgressBox ("", 0, 0, "")

end sub

Sub GetFile()
Dim FileName
Dim FileSize

FileName = Fs.FileOpenDialog(FileFilter, "Please select a valid HU Eprom (*.bin) file", "Default.bin")
If FileName <> "" Then
If Fs.FileExists(FileName) = 0 Then
Sc.MsgBox("The file does not exist")
Else
InFile = Fs.FileOpen(FileName, fsoOpenRead)
End If
End If

FileSize = Fs.FileSeek(InFile, 0, fsoSEEK_END)
'Sc.Print "The file size is " & FileSize & vbCr

if FileSize <> "8192" then
Sc.MsgBox("This file is NOT a valid HU bin file" & vbcr & "or the bin file you are trying to open" & vbcr & "is being used by another program")
HUBinFile = False
exit sub
else
HUBinFile = True
end if

end sub


Sub WriteCard()
Dim EPROM
Dim ThisByte
Dim Address
Dim RetValue
Dim Location
Dim EPROMBytes
Dim EPROMBytes2

Address = 8192
Location = 0

Sc.Write("A2")

'Call WDTMR()

'call Fs.FileSeek(InFile, 0, fsoSEEK_SET)
'EPROMBytes = ""
'For ThisByte = 20 to (22) - 1
'EPROMBytes = EPROMBytes & HexString(Fs.FileGetc(InFile), 2)
'Next
'Sc.Write("07C4812014" & EPROMBytes & "00")
'Sc.Read(&h02)
'Sc.Print "2014: " & EPROMBytes & vbcr

Call Sc.ProgressBox ("Writing EPROM memory..." & vbcr & "2000: " & EPROMBytes, EPROM, 255, "Unlooper/Unlocker")


call Fs.FileSeek(InFile, Location, fsoSEEK_SET)

Do

Call WDTMR()

EPROMBytes = ""
For ThisByte = Location to (Location + 16) - 1
EPROMBytes = EPROMBytes & HexString(Fs.FileGetc(InFile), 2)
Next
EPROMBytes2 = ""
For ThisByte = (Location + 16) to (Location + 32) - 1
EPROMBytes2 = EPROMBytes2 & HexString(Fs.FileGetc(InFile), 2)
Next

Sc.Write("25E29F" & HexString(Address,4) & EPROMBytes & EPROMBytes2 & "00")
Sc.Read(&h02)
Call Sc.ProgressBox ("Writing EPROM memory..." & vbcr & HexString(Address,4) & ": " & EPROMBytes & vbcr & HexString(Address + 16,2) & ": " & EPROMBytes2, EPROM, 255, "Unlooper/Unlocker")

EPROM = EPROM + 1
Address = Address + 32
Location = Location + 32
loop until EPROM = 255

Fs.FileClose(InFile)
Sc.Write("A0") ' turn the LED off
Sc.Write("020200")
Sc.Delay(100)
Sc.Read(&h02)

Call Sc.ProgressBox ("", 0, 0, "")

end sub

Sub WriteThruBootStrap(Address, Bytes, Note, CurrentNumber, TotalNumber)
'Write Thru Boot Strap routine enables easy writing to the card
'after boot strap is loaded by providing the ability to specify
'a note for ProgressBox and it's counters, address location
'and the actual bytes to write. Bytes to write must NOT
'contain spaces so that they can be automatically calculated.
'You may write up to 64 bytes at one time.
'Example with a note:
'Call WriteThruBootStrap("2080", "FFFFFFFF", "Writing to EPROM..., 1, 1)
'Example without a note:
'Call WriteThruBootStrap("2080", "FFFFFFFF", "", "", "")
Dim DecNumberOfBytesInGlitchPacket
Dim HexNumberOfBytesInGlitchPacket
Dim HexNumberOfBytesToTransmit
Dim HexNumberOfBytesToWrite

DecNumberOfBytesInGlitchPacket = 9 + (Len(Bytes))/2
If DecNumberOfBytesInGlitchPacket < &h10 Then
HexNumberOfBytesInGlitchPacket = "0" & Hex(DecNumberOfBytesInGlitchPacket)
Else
HexNumberOfBytesInGlitchPacket = Hex(DecNumberOfBytesInGlitchPacket)
End If
HexNumberOfBytesToWrite = Hex(118 + DecNumberOfBytesInGlitchPacket)
HexNumberOfBytesToTransmit = Hex(182 + DecNumberOfBytesInGlitchPacket)
If Note <> "" or CurrentNumber <> "" or TotalNumber <> "" then
Call Sc.ProgressBox (Note, CurrentNumber, TotalNumber, "Unlocker")
else
end if
Sc.Write(HexNumberOfBytesInGlitchPacket & "C2" & HexNumberOfBytesToWrite & Address & HexNumberOfBytesToTransmit & Bytes & "0EFF8000")
Sc.Read(&h03)
End Sub

Sub WDTMR()
Dim RetValue

Sc.Write("05150E108000")'SET WDTMR
sc.delay(70)
Sc.Read(&h02)
RetValue = Sc.GetByte(&h01)
Sc.Read(RetValue)
end sub

Sub IsCardPresent()
Dim RetValue
Dim GotInput

ScriptStart = Now
Sc.Print "----------------------------------------------------------------" & vbCr
Sc.Print "Start: " & ScriptStart & vbCr 'main screen
Sc.Print "----------------------------------------------------------------" & vbCr

Do
Sc.Write("A0") ' turn the LED off
Sc.Write("80") 'Is card present?
Sc.Delay(100)
If Sc.BytesInBuffer > 0 then
Sc.Read(&h01)
RetValue = Sc.GetByte(0)
end if

If RetValue = &h0 then
Call Sc.ProgressBox ("*** Please insert your card... ***", 1, 999, "Unlooper/Unlocker")
GotInput = False
else
If RetValue = &hFF then
GotInput = True
else
If RetValue <> &h0 or RetValue <> &hFF then
Sc.Write("A0") ' turn the LED off
Sc.Write("020200")
Sc.Delay(100)
If Sc.BytesInBuffer > 1 then
Sc.Read(&h02)
GotInput = False
else
GotInput = False
end if
end if
End if
End if
Loop Until GotInput = True
end sub

Function HexString(Number,Length)
' This function takes 2 arguments, a number and a length. It converts the decimal
' number given by the first argument to a Hexidecimal string with its length
' equal to the number of digits given by the second argument
Dim RetVal
Dim CurLen
RetVal=Hex(Number)
CurLen=Len(RetVal)
If CurLen<Length Then
RetVal=String(Length-CurLen,"0") & RetVal
End If
HexString=RetVal
End Function

Function Hex2Dec(HexNumber)
' This function takes 1 argument, a string containing a hex value of any digit length
' and returns the decimal equivalent
Dim DecimalValue
Dim DigitCount
Dim Digit
Dim HexDigit

HexNumber = Replace(UCase(HexNumber), " ", "")
DigitCount = Len(HexNumber)

For Digit = 1 To DigitCount

HexDigit = Mid(HexNumber, Digit, 1)
If Asc(HexDigit) < 58 Then
DecimalValue = HexDigit * 16 ^ (DigitCount - Digit)
Else
DecimalValue = (Asc(HexDigit) - 55) * 16 ^ (DigitCount - Digit)
End If
Hex2Dec = Hex2Dec + DecimalValue
Next

End Function


Function GetATR ()

Dim temp

Call Sc.ProgressBox(0,0,0,0)
Sc.Write("06100E10019300")
Sc.Delay(500)
Sc.Read(&h02)
temp = Sc.GetByte(&h01)
Sc.Read (temp)

if(temp <> 20) then
GetATR = False
else
GetATR = True
end if

End Function

'
'Bootcard for unlooping
'
Function BootCard()

Dim cnt,b, RetVal, boot, kk,katr
Dim atrlock,cter, glcnt, mtries,kp

RANDOMIZE TIMER

atrlock=0
cter=0
glcnt=0
mtries = 0
sc.verbose = False

DO
katr=0
mtries = mtries + 1
if mtries = 5000 then
call RndGr()
mtries = 0
end if

boot = 0
'==============================================
'vcc + last 2 glitch 4 bootloader
D2 = INT(RND * &h00) + &h34 ' 56 - 62 These are the glitch value ranges.
D3 = INT(RND * &h00) + &ha ' 8 - 11<<<<The Hex value of 07 is added at a random number up to 04 not 5 cuz it always rounds down ie 4.87755 = 4
D4 = INT(RND * &h00) + &h9c '135 - 191
D9 = INT(RND * &h00) + &h364 '865 - 866
'==========================================
' Atr glich point search range

if atrlock = 0 then
D7 = INT(RND * &h00) + &h1e ' 29 - 30
D8 = INT(RND * &h00) + &h48 ' 57 - 59
D1 = INT(RND * &h00) + &he0 '168 - 175
D5 = INT(RND * &h00) + &h25e '606
D6 = INT(RND * &h00) + &h3e ' 63 - 67
end if

call ProgUpdate(kp,atrlock)

sc.verbose = 0
sc.write("A1")
delay(10)

if Chk4Card() = 0 then
BootCard=0
Exit Function
end if

delay(30)

sc.write("B0" & HexString(D1,02))
glttl = glttl + 1
sc.write("0f1f0120" & HexString(D5,4) & "0c" & HexString(D7,2) & "20" & HexString(D6,4) & "0d00" & HexString(D8,2) & "0000")

Sc.Read(&h02)

cter=cter+1
cnt=0
Sc.Write("028000")
if Sc.Read(&h02) = 2 then
cnt = sc.getbyte(1)
if cnt = 1 then sc.read(1)
end if

if cter > 75 then
glcnt = glcnt + 1
if glcnt = 24 then
glcnt = 0
call RndGr()
end if
cter = 0
atrlock = 0
end if

if cnt > 0 then
kp=kp+1
if kp >33 then kp = 33
sc.print "============================================"&VbCr&"ATR"&VbCr
for b = 0 to 10
Sc.Write("028000")

if Sc.Read(&h02) = 2 then
cnt = sc.getbyte(1)
else
cnt = 0
end if

if cnt > 0 then
cnt = sc.read(cnt)
kk=sc.getbyte(0)
if kk = &h38 then
sc.print "38 "
Sc.Write("028000")
cnt = 0
if Sc.Read(&h02) = 2 then
cnt = sc.getbyte(1)
if(cnt = 0) then exit for
Sc.Read(cnt)
if(sc.getbyte(0)) = &hb0 then
chglch = chglch + 1
If chglch > 75 Then
chglch = 0
call BootCard()
End if
sc.print "B0" & VbCr & "Attempting to install bootloader.. " '& VbCr
Sc.Print "D1-D9 values: " & D1 & ", " & D2 & ", " & D3 & ", " & D4 & ", " & D5 & ", " & D6 & ", " & D7 & ", " & D8 & ", " & D9
d0=d0+1
katr=1
cter = 0
glcnt = 0
atrlock =1
exit for
end if
end if
end if
end if

sc.print HexString(kk,2) &" "
next
sc.print VbCr &"============================================"&VbCr
'sc.print VbCr & cter & VbCr

if katr = 1 then
sc.write("B0" & HexString(D4,02))
sc.write("071f800d" & HexString(D3,02)& HexString(D2,02)&"0000")
if Sc.Read(&h02) > 1 then
cnt = sc.getbyte(1)
else
cnt = 0
end if

if cnt > 0 then
cnt = sc.read(cnt)
for b = 0 to cnt - 1
next

Sc.Write("31eeFFFFfed18d52E0FD2266E1B9E17201CF725f0772FF14C5 E2AB0100C3DA07F88C0100FFFFFFFFFFFFFFFFFFFFFFFF0000")
if Sc.Read(&h02)<2 then Sc.Read(&h02)
Sc.Write("11c060200350042001500320" & HexString(D9,04) & "0d010000")
Sc.Read(&h02)

for b = 0 to 8
Sc.Write("028000")
if Sc.Read(&h02) = 2 then
cnt = sc.getbyte(1)
else
cnt = 0
end if

if cnt > 0 then
cnt = sc.read(cnt)
kk=sc.getbyte(0)
if kk = &h66 then
Sc.Write("028000")
cnt = 0
if Sc.Read(&h02) = 2 then
cnt = sc.getbyte(1)
if(cnt = 0) then exit for
Sc.Read(cnt)
if(sc.getbyte(0)) = &h99 then
boot=1
sc.print VbCr & "Bootloader installed After " & d0 & " attempts!" & VbCr
Sc.Print "Total # of glitches applied to card " & glttl & VbCr
Sc.Print "D1 - D9 values used: " & D1 & ", " & D2 & ", " & D3 & ", " & D4 & ", " & D5 & ", " & D6 & ", " & D7 & ", " & D8 & ", " & D9 & VbCr
ScriptEnd = Now
Sc.Print "Elapsed time: " + FormatNumber((CDbl(ScriptEnd) - CDbl(ScriptStart)) * 24 * 60, 2, True, True, True) & " minutes" & vbCr
exit for
end if
end if
end if
else
exit for
end if

next

if boot = 1 then
Sc.Write("021500")
Sc.Read(2)
Sc.Write("42FF225272FF14E1E2D007E2D029E2D02A77800716753F07D3 07F75011E29B2A70012ADA07F78E013A00D7D307D8078ECEFB D40770012ADA07F300C6F76211F7631100")
Sc.Read(2)
Sc.Write("21DE8E0149F76011F76111881c931270FF1203FBF700117285 12DA12FDF70011F900")
Sc.Read(2)
BootCard=1
Exit Function
end if
end if
end if
else
kp=kp-1
if kp<1 then kp=1
end if
loop

End Function

Sub RndGr

Dim g1,g2,g3,g4,g5,g6
Dim dly,v

RANDOMIZE TIMER

sc.print VbCr & "Random gliching the card to whip it into shape" & VbCr
sc.verbose = false

for v = 1 to 800
g1 = INT(RND * &hFF)
g2 = INT(RND * &hFF)
g3 = INT(RND * &hFF)
g4 = INT(RND * &hFF)
g5 = INT(RND * &hFF)
g6 = INT(RND * &h4F) + &h80
dly= INT(RND * &h200)

sc.write("B0" & HexString(g6,2))

sc.write("111f0120" & HexString(dly,4) & "0c" & HexString(g1,2) & "0c" & HexString(g2,2) & "0a" & "0c" & HexString(g3,2) & "0c" & HexString(g4,2) & "0c" & HexString(g5,2) & "00")
sc.read(2)
next

End Sub

Function ShowAtr()

Dim cnt,tmp,b,Msg

Msg="Unlooper"
tmp=""

sc.write("0610010e109300")

if Sc.Read(&h02) > 1 then
cnt = sc.getbyte(1)
else
cnt = 0
end if
ScriptEnd = Now
tmp = "Card Unlooped Successfully after " & glttl & " total glitches to the card." & VbCr & VbCr & d0 & " bootload attempts were made to the card." & VbCr & VbCr & "Successfull D1 - D9 values used: " & D1 & ", " & D2 & ", " & D3 & ", " & D4 & ", " & D5 & ", " & D6 & ", " & D7 & ", " & D8 & ", " & D9 & VbCr & VbCr & VbCr & "Total time to unloop and write HU bin: " & FormatNumber((CDbl(ScriptEnd) - CDbl(ScriptStart)) * 24 * 60, 2, True, True, True) & " minutes" & vbCr & VbCr & "ATR Returned:" & VbCr
if cnt > 0 then
cnt = sc.read(cnt)

for b = 0 to cnt -1
tmp=tmp & HexString(sc.getbyte(b),2) & " "
next
sc.print VbCr & tmp & VbCr
cnt = Sc.ButtonBox(tmp, 0, Msg, "Ok")
else
tmp=""
tmp=tmp+"Card did not return an ATR"+VbCr+"Try to unloop the card again"+VbCr
tmp=tmp+"This happens sometimes when the card"+VbCr
tmp=tmp+"doesn't take the eeprom write"
cnt = Sc.ButtonBox(tmp, 0,Msg , "Ok")

end if

End Function

Sub ProgUpdate(pg,atrlock)

Dim i
Dim Msg

Msg="Glitches applied to card thus far " & glttl & " Elapsed Time: " + FormatNumber((CDbl(Now) - CDbl(ScriptStart)) * 24 * 60, 2, True, True, True) + " minutes"
if atrlock = 1 then
Msg=Msg+VbCr+"Values of D1-D9: " & D1 & ", " & D2 & ", " & D3 & ", " & D4 & ", " & D5 & ", " & D6 & ", " & D7 & ", " & D8 & ", " & D9 &vbcr
Msg=Msg+"ATR locked!" + " Bootloader Attempts: " & (d0) & VbCr
else
Msg=Msg+VbCr+"Values of D1-D9: " & D1 & ", " & D2 & ", " & D3 & ", " & D4 & ", " & D5 & ", " & D6 & ", " & D7 & ", " & D8 & ", " & D9 &vbcr
Msg=Msg+"Attempting to lock onto ATR." + " Bootloader Attempts: " & (d0) & VbCr
end if

Call Sc.ProgressBox(Msg,pg,33,"Unlooper")

End Sub

Function Chk4Card()

Dim tmp
sc.write("80")
sc.delay(10)
if sc.read(1) = 1 then
tmp=sc.getbyte(0)
If tmp = &h0 then
Chk4Card=0
sc.write("A0")
Call Sc.ProgressBox(0,0,0,0)
sc.MsgBox("Card Removed Unlooping ended prematurely")
else
Chk4Card=1
end if
end if

End Function

Function ChipVer()

ChipVer = 1

sc.write("90")
delay(80)

if sc.read(4) <> 4 then
ChipVer = 0
Exit Function
end if

if getbyte(0) <> &h55 then ChipVer = 0
if getbyte(1) <> &h4c then ChipVer = 0
if getbyte(2) <> &h34 then ChipVer = 0
if getbyte(3) <> &h53 then ChipVer = 0

End Function

novato1223
30-07-2006, 23:01
otro que parece bueno pero tampoco me va y uso el t43



' ================
' = Turbo Unloop =
' ================
' = v1.1 =
' ================
'
' by aol6945
'
' This script requires WinExplorer 4.6 or higher.
'
' Read the Documentation.htm file for more information
'

' Global Variable Definitions
Option Explicit

' Constants used throughout script
Const ScriptName="TurboUnloop"
Const ScriptVer="1.1"

' Glitching values/constants
Dim DAC(12),Delay(12),GlitchDelay(12) ' Working values
Dim DACL(12),DelayL(12),GlitchDelayL(12) ' Lower range limit constants
Dim DACI(12),DelayI(12),GlitchDelayI(12) ' Initial Value Constants
Dim DACH(12),DelayH(12),GlitchDelayH(12) ' High range limit constants
Dim Tries(12) ' Running total of number of times a glitch has been tried
Dim TotalTries(12) ' Running total of number of times a glitch task has been tried
Dim TriesLimit(12) ' Upper limit for trying this glitch - exceeding it means new glitch values will be selected
Dim TriesLimitN(12) ' Normal limit for number of times to try a glitch
Dim TriesLimitI(12) ' Initial limit for trying initial glitches
Dim AltProcTriesLimit(12) ' Limit on Total tries before switching glitch procedures
Dim AltProc(12) ' The glitch set that is the alternate procedure
Dim GlitchProc(12) ' The procedure number within the task that should be run with these glitch parameters
Dim FailsLimit(12) ' Failure limit for trying previously successful glitches - exceeding it means saved glitch values will be deleted and new ones will be searched for
Dim GlitchLogic(12) ' 0=Try successive glitches by incrementing glitch values, 1=Try random glitch values
Dim Search(12) ' 0=Using saved glitch parameters, 1=Searching for new glitch parameters
Dim TaskSet(5) ' Holds which set of glitches is currently being used for a task

' Global Unlooper Packet Variables
Dim ATR(13)
Dim PacketResponse(4)
Dim GPPLen,GPRLen ' Glitch Packet "Processed" Length, Glitch Packet Response Length
Dim GPR(70) ' Glitch Packet Response
Const MasterFailLimit=25000 ' Maximum number of glitch tries before giving up

' Constants for file manipulation
Const fsoError=-1
Const fsoOpenRead=0
Const fsoOpenWrite=1
Const fsoOpenReadWrite=2
Const fsoSEEK_SET=0
Const fsoSEEK_CUR=1
Const fsoSEEK_END=2


' ==================
' = Pre-Main Setup =
' ==================

' Setup WinExplorer to Unlooper settings
Call UnlooperSettings()


' ==================
' = Main Procedure =
' ==================

Sub Main()
' Main Program Loop and Menu
Dim MenuChoice
Dim MsgPrompt
Dim ErrorValue

' Suppress window output
Sc.Verbose=False

' Verify correct version of WinExplorer
If VerifyWinExplorer()=0 Then Exit Sub

' User must agree to disclaimer
If Disclaimer()=0 Then Exit Sub

' User better have read the docs or I'm gonna shoot him
If ReadMe()=0 Then Exit Sub

' Verify that an unlooper is connected and we can communicate with it
If VerifyUnlooper()=0 Then Exit Sub

' Show Splash screen
Call Sc.PictureBox("Turbo-Unloop.jpg",5)

Do
MsgPrompt="=== "+ScriptName+" "+ScriptVer+" ==="+vbCr+vbCr
MenuChoice=Sc.ButtonBox(MsgPrompt,vbDefaultButton1 ,ScriptName+" "+ScriptVer+" - Main Menu","Card Status","Read Card","Fix Card","Write .img/.bin","Exit")

' Initialize Glitch values
Call SetGlitchValues()

Select Case MenuChoice
Case 1:
ErrorValue=CardStatus()
Case 2:
ErrorValue=ReadCard()
Case 3:
ErrorValue=FixCard()
Case 4:
ErrorValue=WriteCard()
End Select
Loop Until MenuChoice=5

' Show ending graphic
Call Sc.PictureBox("Turbo-Unloop-b.jpg",5)
End Sub


' =========================
' = High-Level Procedures =
' =========================

Function ReadCard()
ReadCard=GlitchDrive(0)
End Function

Function FixCard()
FixCard=GlitchDrive(1)
End Function

Function WriteCard()
WriteCard=GlitchDrive(2)
End Function

Function GlitchDrive(Func)
' This function drives the unlooper to fix a card.
' The Func variable controls whether the routine is going to Read the card (Func=0),
' Unloop/Fix the card (Func=1), or Write a user-supplied .img or .bin (Func=2)
Dim i,j
Dim Stage
Dim RetVal
Dim CardStatus
Dim MsgPrompt
Dim Display
Dim MasterTries
Dim Finished
Dim EID,CAMID,USW,IRD,LastDynCode
Dim WriteListEEP(4096) ' Array of strings consisting of hex address, hex length, and bytes to write
Dim WriteListBoot(72) ' Array of byte values consisting of the bytes to write to 8020h-8067h when exiting the bootloader

GlitchDrive=0
MasterTries=0
Finished=0

' Turn off LED
Sc.Write("A0")

' Glitcher Driver (The Illudium PU-36 Explosive Glitch Modulator)
Stage=1
Display=0
Do While (Finished=0)
If (Stage>1) And (Stage<22) And (CardInserted()=0) Then
Stage=14
End If
If (Stage>1) And (Stage<22) And (MasterTries>MasterFailLimit) Then
Stage=15
End If
MasterTries=MasterTries+1

Select Case Stage
Case 1: ' Wait for card to be inserted
Call WaitCardInsert()
Stage=2
Case 2: ' Check the card status (Does it have ATR, can it process a packet?)
' Turn on LED Green
Sc.Write("A1")
Call GenericMsg("Checking ATR ...")
Sc.Delay(500)
If CheckGoodCard() Then
CardStatus=1 ' Unlooped, properly working non-BS card
ElseIf CheckGoodCardBS() Then
CardStatus=2 ' Unlooped, properly working BS card
Else
CardStatus=0 ' Looped
End If
If Func=0 Then Stage=3 ' Read card - start glitching
If Func=1 Then Stage=11 ' Fix card - go load the FixBin.img
If Func=2 Then Stage=12 ' Write .img/.bin - go load the .img or .bin that user wants to write
If CardStatus=2 Then TaskSet(1)=AltProc(TaskSet(1)) ' If working BS card, start with BS glitches
If CardStatus<>0 And Func=1 Then Stage=16 ' Trying to unloop a card that is already unlooped
If CardStatus=0 And Func=2 Then Stage=17 ' Trying to write .img or .bin to a looped card
Case 3: ' Glitch Task 1 - Attempt to get 1st byte of ATR
' Turn on LED Green
Sc.Write("A1")
' Clear ATR
ATR(0)=&H100
If Params(TaskSet(1)) Or Display<1 Then
Call GlitchMsg(1)
Display=1
End If
If GlitchTask1(TaskSet(1)) Then
Stage=4
Tries(TaskSet(1))=0
Search(TaskSet(1))=0
Else
If Search(TaskSet(1))=1 Then Display=0
If TotalTries(TaskSet(1))>=AltProcTriesLimit(TaskSet(1)) Then
' If we've tried AltProcTriesLimit glitches for one glitch parameter set and won't pop, try alternate glitch parameter set
TotalTries(TaskSet(1))=0
TaskSet(1)=AltProc(TaskSet(1))
End If
End If
Case 4: ' Glitch Task 2 - Get Next 10 bytes of ATR
If Params(TaskSet(2)) Or Display<2 Then
Call GlitchMsg(2)
Display=2
End If
If GlitchTask2(TaskSet(2)) Then
Stage=5
Tries(TaskSet(2))=0
Search(TaskSet(2))=0
Else
Stage=3 ' Glitch task 2 failed - start over
End If
Case 5: ' Glitch Task 3 - Get last 2 bytes of ATR and get card to process a packet
If Params(TaskSet(3)) Or Display<3 Then
Call GlitchMsg(3)
Display=3
End If
If GlitchTask3(TaskSet(3)) Then
If Search(TaskSet(3))=0 Then
' If these are parameters we've already found, go to next glitch task
If Func=0 Then
Stage=7
Else
Stage=6
End If
Else
Stage=3 ' Otherwise, we already "used" the one processable packet on finding the glitch
End If ' parameters, so we have to start over.
Tries(TaskSet(3))=0
Search(TaskSet(3))=0
Else
If TotalTries(TaskSet(3))>=AltProcTriesLimit(TaskSet(3)) Then
' If we've tried AltProcTriesLimit glitches for one glitch parameter set and won't pop, try alternate glitch parameter set
TotalTries(TaskSet(3))=0
TaskSet(3)=AltProc(TaskSet(3))
End If
Stage=3 ' Glitch task 3 failed - start over
End If
Case 6: ' Glitch Task 4 - Fill Memory to overwrite stack to write bootloader
If Params(TaskSet(4)) Or Display<4 Then
Call GlitchMsg(4)
Display=4
End If
If GlitchTask4(TaskSet(4)) Then
Stage=8
Tries(TaskSet(4))=0
Search(TaskSet(4))=0
Else
Stage=3 ' Glitch task 4 failed - start over
End If
Case 7: ' Glitch Task 4B - Fill Memory to overwrite stack to read EEPROM
If Params(TaskSet(4)) Or Display<4 Then
Call GlitchMsg(4)
Display=4
End If
If GlitchTask4B(TaskSet(4)) Then
Stage=10
Tries(TaskSet(4))=0
Search(TaskSet(4))=0
Else
Stage=3 ' Glitch task 4B failed - start over
End If
Case 8: ' Glitch task 5 - Get into the bootloader
If Params(TaskSet(5)) Or Display<5 Then
Call RWMsg("Activating Bootloader ...",1,225)
Display=5
End If
If GlitchTask5(TaskSet(5)) Then
If Func=1 Then
Stage=9 ' Bootloader is active, get card info
Else
Stage=13 ' Don't get card info on write .img/.bin
End If
ElseIf TotalTries(TaskSet(5))>25 Then
Stage=3 ' Tried to glitch into bootloader many times, can't get in. Reglitch.
TotalTries(TaskSet(5))=0
Else
If TotalTries(TaskSet(5))>=AltProcTriesLimit(TaskSet(5)) Then
' If we've tried AltProcTriesLimit glitches for one glitch parameter set and won't pop, try alternate glitch parameter set
TotalTries(TaskSet(5))=0
TaskSet(5)=AltProc(TaskSet(5))
End If
End If ' Otherwise try to glitch into bootloader again
Case 9: ' Get card info
If Display<6 Then
Call RWMsg("Getting Card Info ...",1,225)
Display=6
End If
If GetCardInfo(EID,CAMID,USW,IRD,LastDynCode) Then
Stage=13 ' Got info, go to write Fixbin
Else
Stage=3 ' Bootloader is on card but failed? Probable corrupted bootloader. Reglitch.
End If
Case 10: ' Read and Save EEPROM
If ReadBin() Then
Stage=18 ' Successfully read EEPROM, go to finished.
Else
If CardInserted()<>0 Then
Stage=15 ' Couldn't read card, display error.
Else
Stage=14 ' Card was removed during read.
End If
End If
Case 11: ' Load the FixBin.img into the WriteListEEP and WriteListBoot arrays
If Fs.FileExists("FixBin.img")<>0 And ReadImgFile("FixBin.img",WriteListEEP,WriteListBoot)=1 Then
Stage=3 ' Successfully read FixBin.img, start glitching
Else
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Unable to load FixBin.img",vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
Stage=22
End If
Case 12: ' Load a user-specified .img or .bin into the WriteListEEP and WriteListBoot arrays
If ReadFile(WriteListEEP,WriteListBoot)=1 Then
Stage=3 ' Successfully read user's file, start glitching
Else
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
Stage=22
End If
Case 13: ' Write the WriteListEEP array, and exit the bootlaoder, writing the WriteListBoot array
If WriteWriteList(WriteListEEP) And ExitBootloader(WriteListBoot) Then
Stage=18 ' Finished and successful
Else
If CardInserted()<>0 Then
Stage=15 ' Error writing card, display error.
Else
Stage=14 ' Card was removed during write.
End If
End If
Case 14: ' Card was Removed
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Card was Removed",vbInformation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
Stage=22
Case 15: ' Error glitching or reading/writing card
' Turn on LED Red
Sc.Write("A2")
' Disconnect Card
SendGP("02")
' Clear Progress Box
Call RemoveMsg()
RetVal=Sc.MsgBox("Error: Unable to Glitch/Load Card",vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Unloop Procedure")
' Turn off LED
Sc.Write("A0")
Stage=22
Case 16: ' Trying to unloop a card that is not looped
Sc.Write("A0")
Call RemoveMsg()
MsgPrompt="This card has a good ATR and can process packets."+vbCr+_
"It is probably not looped."+vbCr
If CardStatus=2 Then
MsgPrompt=MsgPrompt+"(Although this is a Black Sunday card)."+vbCr
End If
MsgPrompt=MsgPrompt+vbCr+"Do you want to fix/unloop the card anyway?"
RetVal=Sc.MsgBox(MsgPrompt,vbQuestion+vbYesNo+vbDe faultButton2,ScriptName+" "+ScriptVer+" - Fix Good Card?")
If RetVal=vbNo Then
Stage=22
Else
Stage=11
End If
Case 17: ' Trying to write .img/.bin to a looped card
Sc.Write("A0")
Call RemoveMsg()
MsgPrompt="This card has a bad ATR or no ATR, and cannot process packets."+vbCr+_
"It is probably looped."+vbCr
MsgPrompt=MsgPrompt+vbCr+"You need to fix the card with the 'Fix Card' option before you"
MsgPrompt=MsgPrompt+vbCr+"can write an .img or .bin to the card."
RetVal=Sc.MsgBox(MsgPrompt,vbExclamation+vbOKOnly, ScriptName+" "+ScriptVer+" - Card is Looped")
Stage=22
Case 18: ' Finished & successful
' Disconnect Card
SendGP("02")
' Turn off LED
Sc.Write("A0")
' Clear Progress Box
Call RemoveMsg()
GlitchDrive=1
If Func=0 Then Stage=20
If Func=1 Then Stage=19
If Func=2 Then Stage=21
Case 19: ' After-Fix Display
MsgPrompt="Finished Fixing Card, Repair Sequence: "+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),2)+"/"+_
HexString(GlitchDelay(TaskSet(1)),2)+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),2)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"+_
HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),2)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+vbCr+vbCr
MsgPrompt=MsgPrompt+"Before Repair:"+vbCr
MsgPrompt=MsgPrompt+"EID: "+vbTab+EID+vbCr+_
"CAM ID: "+vbTab+CStr(HexToDec(CAMID))+CStr(CheckDigit(HexTo Dec(CAMID)))+" ("+CAMID+")"+vbCr+_
"USW: "+vbTab+CStr(HexToDec(USW))+" ("+USW+")"+vbCr+_
"IRD: "+vbTab+IRD+vbCr
If HexToDec(USW)>=63 And HexToDec(USW)<=67 Then
MsgPrompt=MsgPrompt+"Last Executed Dynamic Code: "
For i=0 to (Len(LastDynCode)\2)-1
MsgPrompt=MsgPrompt+Mid(LastDynCode,i*2+1,2)+" "
Next
End If
MsgPrompt=MsgPrompt+vbCr+vbCr
MsgPrompt=MsgPrompt+"After Repair:"+vbCr+"ATR: "+vbTab
If CheckGoodCard() Then
CardStatus=1
ElseIf CheckGoodCardBS() Then
CardStatus=2
Else
CardStatus=0
End If
If CardStatus>0 Then
For i=0 to 12
MsgPrompt=MsgPrompt+HexString(ATR(i),2)+" "
Next
GlitchDrive=1
Else
MsgPrompt=MsgPrompt+"Error! Still bad ATR!"
End If
MsgPrompt=MsgPrompt+vbCr
If CardStatus=2 Then
MsgPrompt=MsgPrompt+vbTab+"(This is a Black Sunday card)."
End If
RetVal=Sc.MsgBox(MsgPrompt,vbInformation+vbOKOnly, ScriptName+" "+ScriptVer+" - Unloop Procedure")
Stage=22
Case 20: ' After-Read Display
MsgPrompt="Finished Reading Card, Glitch Sequence: "+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),2)+"/"+_
HexString(GlitchDelay(TaskSet(1)),2)+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),2)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"+_
HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),2)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+vbCr+vbCr
RetVal=Sc.MsgBox(MsgPrompt,vbInformation+vbOKOnly, ScriptName+" "+ScriptVer+" - Read Procedure")
GlitchDrive=1
Stage=22
Case 21: ' After-Write .img/.bin Display
MsgPrompt="Finished Writing .img/.bin, Glitch Sequence: "+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),2)+"/"+_
HexString(GlitchDelay(TaskSet(1)),2)+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),2)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"+_
HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),2)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+vbCr+vbCr
RetVal=Sc.MsgBox(MsgPrompt,vbInformation+vbOKOnly, ScriptName+" "+ScriptVer+" - Write Procedure")
GlitchDrive=1
Stage=22
Case 22: ' Exit Glitch Loop
Finished=1
End Select
Loop
End Function

Function CardStatus()
' This function attempts to gain information about the card currently in the unlooper.
' It reports the information back to the user. Function returns 0 on error, 1 on
' status successfully determined.
Dim EID,CAMID,USW,IRD,Fuse
Dim CAMIDDec
Dim RetVal
Dim i
Dim MsgPrompt,ToWrite
Dim INS2AData(128)
Dim GoodATR(13),ATRBytes
Dim ATRGood,BS,INS2AGood,ParmsGood

CardStatus=0
GoodATR(0)=&H3F
GoodATR(1)=&H78
GoodATR(2)=&H12
GoodATR(3)=&H25
GoodATR(4)=&H01
GoodATR(5)=&H40
GoodATR(6)=&HB0
GoodATR(7)=&H03
GoodATR(8)=&H4A
GoodATR(9)=&H50
GoodATR(10)=&H20
GoodATR(11)=&H48
GoodATR(12)=&H55


' Turn Off LED
Sc.Write("A0")

' Verify Unlooper is present
If VerifyUnlooper()=0 Then Exit Function

' Wait for card insertion
Call WaitCardInsert()

' Turn On LED Green
Sc.Write("A1")

' Set the DAC Voltage
ToWrite="B080" ' Set DAC to 80h
Sc.Write(ToWrite)

' Check if we have an ATR
Call GenericMsg("Checking ATR ...")
Sc.Delay(500)

BS=0 ' Assume not a BS card
ATR(0)=&H100 ' Assume no ATR
ToWrite="10018C" ' Glitch procedure, set baud to ATR, reset card, receive 13 bytes, end procedure
SendGP(ToWrite)
i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

ATRGood=0
ATRBytes=GPRLen

' See if the ATR is good
If (ATRBytes=13) Then
ATRGood=1
For i=0 to 12
If ATR(i)<>GoodATR(i) Then
ATRGood=0
End If
Next
End If

If ATRBytes=0 Then ' Didn't get any bytes of ATR. Check if card is BS'd
ToWrite="10012003D50B8C" ' Glitch procedure, set baud to ATR, reset card, delay 03D5 clock cycles, glitch Vcc, receive 13 bytes, end procedure
SendGP(ToWrite)
i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

ATRGood=0
ATRBytes=GPRLen
If ATRBytes>1 Then BS=1 ' If we got bytes this time, card is a BS card

' See if the ATR is good
If (ATRBytes=13) Then
ATRGood=1
For i=0 to 12
If ATR(i)<>GoodATR(i) Then
ATRGood=0
End If
Next
End If
End If

INS2AGood=0

' Check if we can process a packet
Call GenericMsg("Checking Packet Processing ...")
Sc.Delay(500)

If ATRGood Then ' If we got a good ATR, see if we can get the card to process an INS 2A packet
' Send an INS 2A
ToWrite="15C4482A0000830E0480" ' Set baud to P2 xmit/rcv, transmit 5 bytes, set watchdog timer to 04, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=&H01 and GPR(0)=&H2A Then
ToWrite="BF"
SendGP(ToWrite)
If GPRLen=&H40 Then
For i=&H0 To &H3F
INS2AData(i)=GPR(i)
Next
End If
ToWrite="BF"
SendGP(ToWrite)
If GPRLen=&H40 Then
For i=&H0 To &H3F
INS2AData(i+&H40)=GPR(i)
Next
End If
ToWrite="81"
SendGP(ToWrite)
If GPRLen=&H02 and GPR(0)=&H90 and GPR(1)=&H00 Then
INS2AGood=1
End If
End If
End If

If INS2AGood Then ' If we got a good INS 2A then analyze it for information
EID=""
For i=0 to 7
EID=EID+HexString(INS2AData(i),2)
Next
Fuse=HexString(INS2AData(8),2)
CAMID=""
For i=0 to 3
CAMID=CAMID+HexString(INS2AData(i+20),2)
Next
IRD=""
For i=0 to 3
IRD=IRD+HexString((INS2AData(i+20) Xor INS2AData(i+24)),2)
Next
USW=&H100*INS2AData(28)+INS2AData(29)
End If

MsgPrompt="Card Analysis Complete:"+vbCr+vbCr

If ATRBytes>0 Then
If BS=0 Then
MsgPrompt=MsgPrompt+"This is a Non-BS H card."+vbCr
Else
MsgPrompt=MsgPrompt+"This is a Black Sunday H card."+vbCr
End If
Else
MsgPrompt=MsgPrompt+"Unable to determine if this is a Black Sunday H card or not."+vbCr
End If
MsgPrompt=MsgPrompt+"ATR:"+vbTab
If ATRBytes>0 Then
For i=0 to ATRBytes-1
MsgPrompt=MsgPrompt+HexString(ATR(i),2)+" "
Next
If ATRGood Then
MsgPrompt=MsgPrompt+" (Good ATR)"+vbCr+vbCr
Else
MsgPrompt=MsgPrompt+" (Bad ATR)"+vbCr+vbCr
End If
Else
MsgPrompt=MsgPrompt+"----"+" (No ATR)"+vbCr+vbCr
End If
If INS2AGood Then
ParmsGood=1
MsgPrompt=MsgPrompt+"This card can process packets. Card Information:"+vbCr
MsgPrompt=MsgPrompt+vbTab+"EID: "+vbTab+EID+vbCr
MsgPrompt=MsgPrompt+vbTab+"Fuse: "+vbTab+Fuse+" "
Select Case HexToDec(Fuse)
Case &H00:
MsgPrompt=MsgPrompt+"(Virgin Card)"+vbCr
Case &H05:
MsgPrompt=MsgPrompt+"(Unmarried and Not Activated)"+vbCr
Case &H20:
MsgPrompt=MsgPrompt+"(Married and Not Activated)"+vbCr
Case &H24:
MsgPrompt=MsgPrompt+"(Married and Cancelled)"+vbCr
Case &H25:
MsgPrompt=MsgPrompt+"(Married and Activated)"+vbCr
Case Else:
MsgPrompt=MsgPrompt+"(Unknown Fuse Byte)"+vbCr
ParmsGood=0
End Select
CAMIDDec=HexToDec(CAMID)
If CAMIDDec<0 Then CAMIDDec=&H7FFFFFFF
MsgPrompt=MsgPrompt+vbTab+"CAM ID: "+vbTab+CStr(CAMIDDec)+CStr(CheckDigit(CAMIDDec))+" ("+CAMID+") "
If (CAMIDDec>=0) And (CAMIDDec<4000000) Then
MsgPrompt=MsgPrompt+"(F Card CAM ID)"+vbCr
ElseIf (CAMIDDec>=4000000) And (CAMIDDec<16000000) Then
MsgPrompt=MsgPrompt+"(H Card CAM ID)"+vbCr
ElseIf (CAMIDDec>=16000000) And (CAMIDDec<50000000) Then
MsgPrompt=MsgPrompt+"(HU Card CAM ID)"+vbCr
Else
MsgPrompt=MsgPrompt+"(Invalid CAM ID)"+vbCr
ParmsGood=0
End If
MsgPrompt=MsgPrompt+vbTab+"IRD: "+vbTab+IRD+vbCr
MsgPrompt=MsgPrompt+vbTab+"USW: "+vbTab+CStr(USW)+" ("+HexString(USW,4)+") "
If (USW=0) Then
MsgPrompt=MsgPrompt+"(Original EEPROM On Card)"+vbCr+vbCr
ElseIf (USW>0) And (USW<26) Then
MsgPrompt=MsgPrompt+"(Valid Old USW)"+vbCr+vbCr
ElseIf (USW>=26) And (USW<63) Then
MsgPrompt=MsgPrompt+"(Valid USW, Dynamic code not active)"+vbCr+vbCr
ElseIf (USW>=63) And (USW<67) Then
MsgPrompt=MsgPrompt+"(Valid USW, Dynamic code active)"+vbCr+vbCr
ElseIf (USW=67) Then
MsgPrompt=MsgPrompt+"(Current USW, Dynamic code active)"+vbCr+vbCr
Else
MsgPrompt=MsgPrompt+"(Invalid USW)"+vbCr+vbCr
ParmsGood=0
End If
End If
If ATRGood and INS2AGood Then
MsgPrompt=MsgPrompt+"This appears to be a properly working card"
If ParmsGood Then
MsgPrompt=MsgPrompt+"."+vbCr
Else
MsgPrompt=MsgPrompt+", but this card"+vbCr+"appears to have one or more invalid parameters."+vbCr+_
"Try writing a valid .bin to the card."+vbCr
End If
Else
If ATRGood Then
MsgPrompt=MsgPrompt+"This card has a good ATR, but is not properly processing packets."+vbCr
Else
MsgPrompt=MsgPrompt+"This card is looped."+vbCr
End If
MsgPrompt=MsgPrompt+vbCr+"Try to fix it with the 'Fix Card' option and/or write a valid .bin to the card."+vbCr
End If

' Remove the "Getting status" message
Call RemoveMsg()

' Turn Off LED
Sc.Write("A0")

Call Sc.MsgBox(MsgPrompt,vbInformation+vbOKOnly,ScriptN ame+" "+ScriptVer+" - Card Information")
CardStatus=1
End Function


' ========================
' = Mid-Level Procedures =
' ========================

Function VerifyUnlooper()
' This subroutine makes sure that the unlooper is connected and working properly.
' If not, an error message is displayed and the script is aborted.

Dim ErrorString

VerifyUnlooper=1
If UnlooperResetVerify()=0 Then
ErrorString="Unable to communicate with unlooper."+vbCr+vbCr+_
"This means one of the following:"+vbCr+vbCr+_
"- You have not selected 'Unlooper' in the WinExplorer quicksettings."+vbCr+_
"- Your unlooper is not powered up in unlooper mode (powered up with card OUT if"+vbCr+_
" you are using Black Sunday Atmel code)."+vbCr+_
"- You are trying to use a programmer instead of an unlooper."+vbCr+_
"- Your unlooper is not connected to the same COM port selected in the WinExplorer settings."+vbCr+_
"- Your unlooper is not a WildThing-compatible unlooper."+vbCr+_
"- Your unlooper is not powered on."+vbCr+vbCr+_
"Please correct this problem and try to run the script again."
Call Sc.MsgBox(ErrorString,vbCritical,ScriptName+" "+ScriptVer+" - Communication Error")
VerifyUnlooper=0
End If
End Function

Sub WaitCardInsert()
' This function waits for a card to be inserted
Call Sc.ProgressBox("Please Insert A Card into the Unlooper"+vbCr+"(With NO DPBB/Bootloader - Insert the card by itself)"+vbCr+"(It may take a few seconds to recognize that the card is inserted.)",1,100,ScriptName+" "+ScriptVer+" - Insert Card")
Do While (CardInserted()=0)
Loop
End Sub

Function Params(g)
' This function updates the glitch parameters of the selected glitch
' parameter set. The function returns 1 if the current working glitches
' were updated, 0 otherwise.

Dim Temp

Params=0
' Initialize to starting values if this is first entry
If DAC(g)=0 And Search(g)=1 Then
DAC(g)=DACI(g)
Delay(g)=DelayI(g)
GlitchDelay(g)=GlitchDelayI(g)
TriesLimit(g)=TriesLimitI(g)
Tries(g)=0
Params=1
Else
Tries(g)=Tries(g)+1
If Search(g)=0 Then ' We're trying glitch settings that worked before.
' If we have tried these settings repeatedly and reached the fail limit, this is not a real good
' set of glitch parameters, so try to find a different set.
If Tries(g)>FailsLimit(g) Then
Search(g)=1
Tries(g)=TriesLimit(g)+1
End If
End If
If Search(g)=1 Then ' We're searching for glitch parameters that work
' If we have tried these settings repeatedly and reached the tries limit, these parameters didn't
' work, so try to find a different set.
TotalTries(g)=TotalTries(g)+1 ' Only increment TotalTries when searching
If Tries(g)>TriesLimit(g) Then
If GlitchLogic(g)=0 Then ' Increment the parameters
Temp=ParmInc(DAC(g),DACL(g),DACH(g),ParmInc(Delay( g),DelayL(g),DelayH(g),ParmInc(GlitchDelay(g),Glit chDelayL(g),GlitchDelayH(g),1)))
Else
DAC(g)=RandomRange(DACL(g),DACH(g)) ' Select random voltage
Delay(g)=RandomRange(DelayL(g),DelayH(g)) ' Select random delay
GlitchDelay(g)=RandomRange(GlitchDelayL(g),GlitchD elayH(g)) ' Select random glitch delay
End If
TriesLimit(g)=TriesLimitN(g)
Tries(g)=0
Params=1
End If
End If
End If
End Function

Sub GlitchMsg(t)
' This function displays a progress box on the status of unlooping
' What is displayed depends on the task the sub is called with, t

Dim i
Dim Msg

Msg="Status:"+vbTab+"Glitching ..."+vbCr+"Sequ: "+vbTab
If t>=1 Then
Msg=Msg+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),4)+"/"+HexString(GlitchDelay(TaskSet(1)),2)
End If
If t>=3 Then
Msg=Msg+"/"+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),4)+"/"+HexString(GlitchDelay(TaskSet(3)),2)
End If
If t>=4 Then
Msg=Msg+"/"+HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),4)+"/"+HexString(GlitchDelay(TaskSet(4)),2)
End If
Msg=Msg+vbCr+"ATR: "+vbTab
If t>=1 Then
If ATR(0)<>&H100 Then
Msg=Msg+HexString(ATR(0),2)+" "
Else
Msg=Msg+"----"
End If
End If
If t>=2 Then
For i=1 to 10
Msg=Msg+HexString(ATR(i),2)+" "
Next
End If
If t>=3 Then
For i=11 to 12
Msg=Msg+HexString(ATR(i),2)+" "
Next
End If
Call Sc.ProgressBox(Msg,t,5,ScriptName+" "+ScriptVer+" - Unloop Procedure")
End Sub

Sub GenericMsg(Message)
' This function displays a progress box on the status of unlooping
' No glitches or ATR are displayed, only the passed Message

Dim i
Dim Msg

Msg="Status: "+vbTab+Message+vbCr+"Sequ: "+vbCr+"ATR: "
Call Sc.ProgressBox(Msg,1,5,ScriptName+" "+ScriptVer+" - Unloop Procedure")
End Sub

Sub RWMsg(Message,Progress,MaxProgress)
' This function displays a progress box on the status of unlooping
' The full glitch sequence and ATR are displayed along with the passed Message
' The Progress and MaxProgress control the progress bar, Progress is auto-incremented

Dim i
Dim Msg

Msg="Status: "+vbTab+Message+vbCr+"Sequ: "+vbTab
Msg=Msg+HexString(DAC(TaskSet(1)),2)+"/"+HexString(Delay(TaskSet(1)),4)+"/"+HexString(GlitchDelay(TaskSet(1)),2)+"/"
Msg=Msg+HexString(DAC(TaskSet(3)),2)+"/"+HexString(Delay(TaskSet(3)),4)+"/"+HexString(GlitchDelay(TaskSet(3)),2)+"/"
Msg=Msg+HexString(DAC(TaskSet(4)),2)+"/"+HexString(Delay(TaskSet(4)),4)+"/"+HexString(GlitchDelay(TaskSet(4)),2)+" - Success!"+vbCr+"ATR: "+vbTab
For i=0 to 12
Msg=Msg+HexString(ATR(i),2)+" "
Next
Call Sc.ProgressBox(Msg,Progress,MaxProgress,ScriptName +" "+ScriptVer+" - Unloop Procedure")
End Sub

Sub RemoveMsg()
' This function removes the progress box from the screen.
Call Sc.ProgressBox("",0,0,"")
End Sub

Function GetCardInfo(EID,CAMID,USW,IRD,LastDynCode)
GetCardInfo=0
If ReadViaBootloader("8008",&H08,EID)=0 Then Exit Function
If ReadViaBootloader("8374",&H04,CAMID)=0 Then Exit Function
If HexToDec(Left(CAMID,2))>=&H80 Then CAMID=HexString(HexToDec(Left(CAMID,2))-&H80,2)+Right(CAMID,6)
If ReadViaBootloader("8406",&H02,USW)=0 Then Exit Function
If ReadViaBootloader("83D0",&H04,IRD)=0 Then Exit Function
If HexToDec(USW)>=63 And HexToDec(USW)<67 Then
If ReadViaBootloader("893C",&H11,LastDynCode)=0 Then Exit Function
ElseIf HexToDec(USW)=67 Then
If ReadViaBootloader("8924",&H15,LastDynCode)=0 Then Exit Function
End If
GetCardInfo=1
End Function

Function ReadBin()
' This function reads the bin off the card via the stack unwind, and saves
' it to a file. The read stack must already be on the card. The function
' returns 1 on successful read, 0 on failure.
Dim Progress
Dim i,j,k
Dim EEPROM(4096)
Dim ToWrite

ReadBin=0
For i=&H80 to &H8F
For j=&H00 to &HC0 Step &H40
Call RWMsg("Reading EEPROM ...",Progress,64)
ToWrite="BF" ' Glitch Procedure, read 64 bytes, end procedure
SendGP(ToWrite)
If GPRLen<>&H40 Then Exit Function
For k=&H0 to &H3F
EEPROM((i-&H80)*&H100+j+k)=GPR(k)
Next
Progress=Progress+1
Next
Next

i=SaveEEPROMFile(EEPROM)
ReadBin=1
End Function


' =============================
' = Basic Unlooper Procedures =
' =============================

Function UnlooperResetVerify()
' This function attempts to reset the unlooper and verify that it is
' present, connected, and working properly. 1 is returned if successful,
' 0 if not.
Dim RetVal,UnlooperID
Dim i

UnlooperResetVerify=0
Sc.ByteDelay=0 ' Unlooper doesn't need byte delay
Call Sc.Reset() ' Reset the unlooper
RetVal=Sc.Flush() ' Flush the receive buffer
If SendUL("90")=1 Then ' Ask the unlooper to identify itself
If Sc.Read(4)=4 Then ' We should receive 4 bytes from unlooper
For i=0 to 3 ' Assemble the unlooper version string
UnlooperID=UnlooperID+Chr(Sc.GetByte(i))
Next
If (UnlooperID="V5.0" Or UnlooperID="SU-2") Then
UnlooperResetVerify=1 ' We are successfully communicating with a WildThing or SU-2 Unlooper
Sc.Write("A0") ' Turn LED off if it is on
End If
End If
End If
End Function

Function CardInserted()
' This function determines whether a card is inserted in the unlooper.
' 1 is returned if Yes, 0 if no.
Dim RetVal
CardInserted=0
If SendUL("80")=1 Then
Sc.Read(1)
If Sc.GetByte(0)=&HFF Then
CardInserted=1
End If
End If
End Function

Function CheckGoodCard()
' This function checks to see if the card currently in the unlooper is not looped
' 1 is returned if the card is currently good, 0 if there is something wrong with it
Dim ToWrite
Dim GoodATR(13)
Dim i

GoodATR(0)=&H3F
GoodATR(1)=&H78
GoodATR(2)=&H12
GoodATR(3)=&H25
GoodATR(4)=&H01
GoodATR(5)=&H40
GoodATR(6)=&HB0
GoodATR(7)=&H03
GoodATR(8)=&H4A
GoodATR(9)=&H50
GoodATR(10)=&H20
GoodATR(11)=&H48
GoodATR(12)=&H55

' Set the DAC Voltage
ToWrite="B080" ' Set DAC to 80h
Sc.Write(ToWrite)

ToWrite="10018C" ' Glitch procedure, set baud to ATR, reset card, receive 13 bytes, end procedure
SendGP(ToWrite)
i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

CheckGoodCard=0

' See if the ATR is good
If (GPRLen=13) Then
CheckGoodCard=1
For i=0 to 12
If ATR(i)<>GoodATR(i) Then
CheckGoodCard=0
End If
Next
End If

' If so, see if the card will process a packet
If CheckGoodCard=1 Then
ToWrite="15C448060000000E0283" ' Glitch procedure, transmit packet header, Set watchdog timer to 02, receive 4 bytes, end procedure
SendGP(ToWrite)
If (GPRLen<>4 Or GPR(2)<>&H90 Or GPR(3)<>&H00) Then
CheckGoodCard=0 ' See if we get a response from the packet
End If
End If
End Function

Function CheckGoodCardBS()
' This function checks to see if the card currently in the unlooper is not looped
' 1 is returned if the card is currently good, 0 if there is something wrong with it
Dim ToWrite
Dim GoodATR(13)
Dim i

GoodATR(0)=&H3F
GoodATR(1)=&H78
GoodATR(2)=&H12
GoodATR(3)=&H25
GoodATR(4)=&H01
GoodATR(5)=&H40
GoodATR(6)=&HB0
GoodATR(7)=&H03
GoodATR(8)=&H4A
GoodATR(9)=&H50
GoodATR(10)=&H20
GoodATR(11)=&H48
GoodATR(12)=&H55

' Set the DAC Voltage
ToWrite="B080" ' Set DAC to 80h
Sc.Write(ToWrite)

ToWrite="10012003D50B8C" ' Glitch procedure, set baud to ATR, reset card, delay 03D5 clock cycles, glitch Vcc, receive 13 bytes, end procedure
SendGP(ToWrite)
i=0
Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

CheckGoodCardBS=0

' See if the ATR is good
If (GPRLen=13) Then
CheckGoodCardBS=1
For i=0 to 12
If ATR(i)<>GoodATR(i) Then
CheckGoodCardBS=0
End If
Next
End If

' If so, see if the card will process a packet
If CheckGoodCardBS=1 Then
ToWrite="15C448060000000E0283" ' Glitch procedure, set baud to P2 normal xmit/rcv, transmit packet header, set watchdog timer to 02, receive 4 bytes, end procedure
SendGP(ToWrite)
If (GPRLen<>4 Or GPR(2)<>&H90 Or GPR(3)<>&H00) Then
CheckGoodCardBS=0 ' See if we get a response from the packet
End If
End If
End Function

Sub SendGP(GP)
' This subroutine sends a glitch packet to the unlooper and receives the response
' The glitch packet should not have the length byte or the end procedure commands
Dim Length
Dim i

Call Replace(GP," ","")
GP=GP+"00" ' Add the end procedure byte
Length=Len(GP)\2
GP=HexString(Length,2)+GP ' Add the glitch procedure start/length byte
If SendUL(GP)=1 Then ' Send the glitch packet, and if we received a response,
If Sc.Read(2)=2 Then ' Did we get 2 bytes? If so,
' Receive the response packet "# bytes processed" byte and "bytes to send" byte
GPPLen=Sc.GetByte(0) ' Get the processed byte length from unlooper
GPRLen=Sc.GetByte(1) ' Get the number of bytes the unlooper has to send
If GPRLen>0 Then Sc.Read(GPRLen) ' Read additional bytes from the unlooper if they're coming
i=0
Do While (GPRLen>i) ' Put all bytes that the unlooper had to send into the GPR array
GPR(i)=Sc.GetByte(i)
i=i+1
Loop
Else
' We didn't receive 2 bytes from the unlooper
GPPLen=0
GPRLen=0
End If
Else
' We didn't receive a response from the unlooper
GPPLen=0
GPRLen=0
End If
End Sub

Function ReadViaBootloader(Address,Length,Bytes)
' This function reads EEPROM via the bootloader.
' The bytes read are returned in in the Bytes variable if the read was successful
' The empty string is returned otherwise. The function returns 1 on a successful
' read, 0 on failure
Dim TempStr
Dim AddrH, AddrL, RcvLen
Dim i
Dim ToWrite

AddrH=Left(Address,2)
AddrL=Right(Address,2)
RcvLen=HexString(Length+&H80,2)
ToWrite="1F" ' Glitch procedure, set baud to Debug
ToWrite=ToWrite+InsertByteDelay(AddrH+AddrL+HexStr ing(Length,2))
ToWrite=ToWrite+RcvLen ' Receive Length+1 bytes
SendGP(ToWrite)
Bytes=""
ReadViaBootloader=0
If GPRLen>0 Then
If GPR(GPRLen-1)=&H52 Then
For i=0 to GPRLen-2
Bytes=Bytes+HexString(GPR(i),2)
Next
ReadViaBootloader=1
End If
End If
End Function

Function WriteViaBootloader(Address,DeclLength,Bytes)
' This function writes bytes to EEPROM using the bootloader
' It returns 1 on no error, 0 on unsuccessful write
Dim AddrH, AddrL, SendLen, Length
Dim ToWrite

WriteViaBootloader=0
AddrH=Left(Address,2)
AddrL=Right(Address,2)
Call Replace(Bytes," ","")
Length=Len(Bytes)\2
If Length<>DeclLength Then Exit Function ' Make sure actual number of bytes is same as declared
SendLen=HexString(Length+&H80,2)
ToWrite="1F" ' Glitch procedure, set baud rate to Debug
ToWrite=ToWrite+InsertByteDelay(AddrH+AddrL+SendLe n+Bytes)
ToWrite=ToWrite+"0E0A80" ' set watchdog timer to 0Ah, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 And GPR(0)=&HFF Then
WriteViaBootloader=1
End If
End Function

Function InsertByteDelay(Bytes)
' This function places 283 cycle clock delays in between each byte of Bytes and returns the
' resulting string. This is used when bytes need to be send to the bootloader
Dim Length,BuildString
Dim i

Call Replace(Bytes," ","")
Length=Len(Bytes)\2
BuildString="C0"+Left(Bytes,2) ' Glitch procedure, transmit 1 byte
For i=1 to Length-1
BuildString=BuildString+"200100C0"+Mid(Bytes,i*2+1,2) ' delay 283 clock cycles, transmit 1 byte
Next
InsertByteDelay=BuildString
End Function

Function ExitBootloader(WriteListBoot)
' This function exits the bootloader and erases it from the card
' It returns 1 when bootloader is successfully erased, 0 if error
Dim ToWrite
Dim i,j

Call RWMsg("Exiting Bootloader ...",225,225)
ToWrite=InsertByteDelay("0000D2") ' Glitch procedure, transmit 3 bytes with 283 clock cycle delay, end procedure
SendGP(ToWrite)
For i=0 To 64 Step 8
ToWrite=""
For j=0 to 7 ' Send 8 bytes at a time with 283 cycle clock delay on each
ToWrite=ToWrite+HexString(WriteListBoot(i+j),2)
Next
ToWrite=InsertByteDelay(ToWrite)
SendGP(ToWrite)
Next
ToWrite=InsertByteDelay("32000F04930468485011") ' Send the ending stack to overwrite the bootloader and exit
ToWrite=ToWrite+"0E0B8001" ' Glitch procedure, set watchdog timer to 0Bh, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 and GPR(0)=&H55 Then
ExitBootloader=1
Else
ExitBootloader=0
End If
End Function

Function WriteWriteList(WriteListEEP)
' This function writes the EEPROM information stored in WriteList to the card
' via the bootloader.
Dim i,TotalLines
Dim Address,Length,Bytes

WriteWriteList=0
TotalLines=0
Do While (WriteListEEP(TotalLines)<>"") ' Find total number of lines we need to write
TotalLines=TotalLines+1
Loop
For i=0 to TotalLines-1
Call RWMsg("Writing EEPROM ...",i,TotalLines) ' Send message that we're writing the lines
Address=Left(WriteListEEP(i),4) ' Get the address,
Length=HexToDec(Mid(WriteListEEP(i),5,2)) ' the length,
Bytes=Right(WriteListEEP(i),Len(WriteListEEP(i))-6) ' and the bytes to write
If WriteViaBootloader(Address,Length,Bytes)=0 Then Exit Function ' Write 'em via the bootloader
Next
WriteWriteList=1
End Function


' ===================================
' = Unlooper Base Glitch Procedures =
' ===================================

Function GlitchTask1(g)
' This function applies the first glitch to the card:
' Glitch Task 1 - Glitch past Black Sunday 8000h/33h check
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once.
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2) ' Set glitch voltage (DAC)
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="10012003D5" ' Glitch procedure, set baud to ATR, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 2:
ToWrite="10012003D5" ' Glitch procedure, set baud to ATR, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 3:
ToWrite="1001" ' Glitch procedure, set baud to ATR, reset card
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
End Select

SendGP(ToWrite)

i=0
If GPRLen=0 Then ATR(0)=&H100 ' Flag no ATR if we didn't get a response

Do While (GPRLen>i)
ATR(i)=GPR(i)
i=i+1
Loop

GlitchTask1=0
If (GPRLen>0 And ATR(0)=&H3F) Then
GlitchTask1=1
End If
End Function

Function GlitchTask2(g)
' This function applies the second glitch to the card:
' Glitch Task 2 - Get next 10 bytes of ATR
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once

Dim i

SendGP("89") ' Glitch procedure, receive 10 bytes, end procedure
For i=1 to 10
ATR(i)=GPR(i-1)
Next
GlitchTask2=1
End Function

Function GlitchTask3(g)
' This function applies the third glitch to the card:
' Glitch Task 3 - Glitch for last 2 bytes of ATR and packet response
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2)
Sc.Write(ToWrite) ' Set DAC voltage

Select Case GlitchProc(g)
Case 1:
ToWrite="040720"+HexString(Delay(g),4) ' Glitch procedure, pull I/O high, wait I/O low, delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"03202710" ' Pull I/O low, Delay 2710h clock cycles
ToWrite=ToWrite+"81" ' Read 2 bytes from unlooper, end procedure
End Select

SendGP(ToWrite)

i=0
Do While (GPRLen>i)
ATR(i+11)=GPR(i)
i=i+1
Loop

If Search(3)=1 Then
GlitchTask3=0
ToWrite="C4480600000083" ' Glitch procedure, transmit packet header, receive 4 bytes, end procedure
SendGP(ToWrite)
If (GPRLen=4 And GPR(2)=&H90 And GPR(3)=&H00) Then
GlitchTask3=1 ' See if we get a response from the packet
End If
Else
GlitchTask3=1
End If
End Function

Function GlitchTask4(g)
' This function applies the fourth glitch to the card:
' Glitch Task 4 - Glitch to try to fill memory with stack and bootloader for writing
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2) ' Set DAC Voltage
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="C348060000" ' Glitch procedure, transmit 4 byte header
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"C0D2" ' Transmit 1 byte
ToWrite=ToWrite+"20"+HexString(GlitchDelay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc, end procedure
End Select

SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"03000000000000000000000000000000000000000000000000 0000000000000000000000000000000000802802FD00000000 0000000000000000000000000000"
SendGP(ToWrite)

GlitchTask4=0
If (GPPLen=&H42) Then
' Try to write remainder of bootloader
ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"00000000000000000000000000000000000000000000000000 000074081205FF1203F2745212040F795F7A03116112116A10 E706FB12014F80E9FAFF79681161"
SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"E5836009796812057C35E080D8908020898122091201C8DAFA 2200000000003200F7056105610250119604904050116A11F7 0593043600360036003600360036"
SendGP(ToWrite)

ToWrite="CA" ' Glitch procedure, attempt to fill memory with 11 bytes
ToWrite=ToWrite+"0036003600360036003600"
SendGP(ToWrite)

ToWrite="C6" ' Glitch procedure, final wrap-around to unwind the stack
ToWrite=ToWrite+"1F802000FF0301"
SendGP(ToWrite)

' See if the stack got unwound
ToWrite="80" ' Glitch procedure, receive 1 byte, end procedure
SendGP(ToWrite)

If GPRLen=1 And GPR(0)=&H55 Then ' Bootloader stack got unwound
ToWrite="0E0B80" ' Glitch procedure, set watchdog timer to 11, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 and GPR(0)=&H77 Then
GlitchTask4=1 ' Bootloader is on the card!
End If
End If
End If
End Function

Function GlitchTask4B(g)
' This function applies the first glitch to the card:
' Glitch Task 4 - Glitch to try to fill memory with stack for reading
'
' The function returns 1 if the glitch was successful, 0 if it failed.
' The current glitch values are always used - it is the responsibility
' of the caller to keep track of tries and change the glitch values
' The routine only tries the glitch once
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

ToWrite="B0"+HexString(DAC(g),2) ' Set DAC Voltage
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="C348060000" ' Glitch procedure, transmit 4 byte header
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"C0D2" ' Transmit 1 byte
ToWrite=ToWrite+"20"+HexString(GlitchDelay(g),4) ' Delay XXXX Cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc, end procedure
End Select

SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"03000000000000000000000000000000000000000000000000 00000000000000000000000000000000008000000000000000 0000000000000000000000000000"
SendGP(ToWrite)

GlitchTask4B=0
If (GPPLen=&H42) Then
' Try to write remainder of stack
ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000003200F7"
SendGP(ToWrite)

ToWrite="FF" ' Glitch procedure, attempt to fill memory with 64 bytes
ToWrite=ToWrite+"059304F70561058A078A078A078A078A078A078A078A078A07 8A078A078A078A078A078A078A07000055066A11F7056105F7 0593043600360036003600360036"
SendGP(ToWrite)

ToWrite="CA" ' Glitch procedure, attempt to fill memory with 11 bytes
ToWrite=ToWrite+"0036003600360036003600"
SendGP(ToWrite)

ToWrite="C6" ' Glitch procedure, final wrap-around to unwind the stack
ToWrite=ToWrite+"1F000000FF0301"
SendGP(ToWrite)

' See if the stack got unwound
ToWrite="80" ' Glitch procedure, receive 1 byte, end procedure
SendGP(ToWrite)

If GPRLen=1 And GPR(0)=&H55 Then ' Stack got unwound
ToWrite="0E0B80" ' Glitch procedure, set watchdog timer to 11, receive 1 byte, end procedure
SendGP(ToWrite)
If GPRLen=1 and GPR(0)=&H77 Then
GlitchTask4B=1 ' Ready to read the card!
End If
End If
End If
End Function

Function GlitchTask5(g)
' This function attempts to activate the unlooper bootloader that is
' supposed to be on the card. 1 is returned if successful, 0 if not.
'
' The routine will try any set of glitch parameters in the array, as
' called with the g variable

Dim ToWrite
Dim i

' Glitch procedure 5 - Glitch past Black Sunday 8000h/33h check and into bootloader
ToWrite="B0"+HexString(DAC(g),2) ' Set glitch voltage (DAC)
Sc.Write(ToWrite)

Select Case GlitchProc(g)
Case 1:
ToWrite="1F012003D5" ' Glitch procedure, set baud to Debug, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0D"+HexString(GlitchDelay(g),2) ' Overrev clock, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 2:
ToWrite="1F012003D5" ' Glitch procedure, set baud to Debug, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"20"+HexString(Delay(g),4) ' Delay XXXX clock cycles
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"0C"+HexString(GlitchDelay(g),2) ' Glitch Vcc, delay XX clock cycles, glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 3:
ToWrite="1F0120"+HexString(Delay(g),4) ' Glitch procedure, set baud to Debug, reset card, delay 03D5h clock cycles
ToWrite=ToWrite+"0B" ' Glitch Vcc
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
Case 4:
ToWrite="1F01202710" ' Glitch procedure, set baud to Debug, reset card, delay 2710h clock cycles
ToWrite=ToWrite+"80" ' Read 1 byte from unlooper, end procedure
End Select
SendGP(ToWrite)

GlitchTask5=0
If (GPRLen>0 And GPR(0)=&H52) Then
GlitchTask5=1 ' See if the bootloader is on the card
End If
End Function


' ============================
' = File-Handling Procedures =
' ============================

Function SaveEEPROMFile(EEPROM)
Dim GotInput
Dim OutFile
Dim FileSize
Dim i
Dim FileName
Dim Fuse,FuseXor
Dim CAMID
Const FileFilter="Bin Files (*.bin)|*.bin|All Files (*.*)|*.*"
FileName=""
GotInput=False
SaveEEPROMFile=False
For i=&H374 to &H377
CAMID=CAMID+HexString(EEPROM(i),2)
Next
CAMID=CAMID+".bin"
Do
FileName=Fs.FileSaveDialog(FileFilter,ScriptName+" "+ScriptVer+" - Save Bin File",CAMID)
If (FileName<>"") Then ' If the filename returned is empty, the user clicked cancel.
OutFile=Fs.FileCreate(FileName) ' Create the new file
Call Fs.FileSeek(OutFile,&H0,fsoSEEK_SET)
For i=0 to 4095
Call Fs.FilePutc(OutFile,EEPROM(i))
Next
GotInput=True
SaveEEPROMFile=True
Fs.FileClose(OutFile)
Else
GotInput=True
End If
Loop Until GotInput=True
End Function

Function ReadFile(WriteListEEP,WriteListBoot)
' This function reads a .bin or .img file specified by the user into
' the WriteListEEP and WriteListBoot arrays
Dim GotInput
Dim Filename
Const FileFilter="Bin Files (*.bin)|*.bin|Image Files (*.img)|*.img"
FileName=""
GotInput=False
ReadFile=0
Do
Filename=Fs.FileOpenDialog(FileFilter,ScriptName+" "+ScriptVer+" - Select File to Write","")
If (Filename<>"") Then ' If the filename returned is empty, the user clicked cancel.
If Fs.FileExists(Filename)<>0 Then ' We have a filename, verify the file exists
If LCase(Right(Filename,4))=".bin" Then
ReadFile=ReadBinFile(Filename,WriteListEEP,WriteLi stBoot)
GotInput=True
ElseIf LCase(Right(Filename,4))=".img" Then
ReadFile=ReadImgFile(Filename,WriteListEEP,WriteLi stBoot)
GotInput=True
Else
Call Sc.MsgBox("This is not an .img or .bin file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Wrong File Type")
End If
Else
Call Sc.MsgBox("The file does not exist"+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - File does not exist")
End If
Else
GotInput=UserCancel()
End If
Loop Until GotInput=True
End Function

Function ReadBinFile(Filename,WriteListEEP,WriteListBoot)
' This function reads a .bin file named Filename into the WriteListEEP and WriteListBoot arrays
Dim InFile
Dim FileSize
Dim i,j
Dim Fuse,FuseXor
Dim EEPROM(4096)
Dim DefaultWLB
Dim DisplayFilename

ReadBinFile=0

DisplayFilename=Filename
For i=1 to Len(Filename)
If Mid(Filename,i,1)="\" Then
DisplayFilename=Mid(Filename,i+1)
End If
Next

' Initialize the WriteList arrays
DefaultWLB="00FF440D010312200000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000"
For i=0 to 71
WriteListBoot(i)=HexToDec(Mid(DefaultWLB,i*2+1,2))
Next
For i=0 to 4095
WriteListEEP(i)=""
Next

InFile=Fs.FileOpen(Filename,fsoOpenRead) ' Open the file
FileSize=Fs.FileSeek(InFile,&H0,fsoSEEK_END) ' Seek to the end of the file to get the size
Call Fs.FileSeek(InFile,&H20,fsoSEEK_SET) ' Get the fuse bytes
Fuse=Fs.FileGetc(InFile) ' Make sure the file size is correct and the fuse bytes verify.
FuseXor=Fs.FileGetc(InFile) ' If either of these are not true, the file is not a valid H-card file.
If (FileSize=4096) And ((Fuse XOR FuseXor)=&HFF) Then
Call Fs.FileSeek(InFile,&H0,fsoSEEK_SET) ' We have a valid H-card file - Read it
Call GenericMsg("Loading "+DisplayFilename+" ...") ' Display message that file is being loaded
For i=0 to 4095
EEPROM(i)=Fs.FileGetc(InFile)
Next

' Convert the EEPROM to WriteListEEP and WriteListBoot
' Use the bin contents from 8020h-806Fh to fill the WriteListBoot array
For i=&H20 to &H67
WriteListBoot(i-&H20)=EEPROM(i)
Next
' Use the bin contents from 8070h-8FFFh to fill the WriteListEEP array
For i=&H68 to &HFE8 Step &H10
WriteListEEP((i-&H68)\16)=HexString((i\&H100)+&H80,2)+HexString((i Mod &H100),2)+"10"
For j=&H00 to &H0F
WriteListEEP((i-&H68)\16)=WriteListEEP((i-&H68)\16)+HexString(EEPROM(i+j),2)
Next
Next
For i=&HFF8 to &HFF8 Step &H10
WriteListEEP((i-&H68)\16)=HexString((i\&H100)+&H80,2)+HexString((i Mod &H100),2)+"08"
For j=&H00 to &H07
WriteListEEP((i-&H68)\16)=WriteListEEP((i-&H68)\16)+HexString(EEPROM(i+j),2)
Next
Next
ReadBinFile=1
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be an H-card .bin file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not an H-card File")
End If
Fs.FileClose(InFile)
End Function

Function ReadImgFile(Filename,WriteListEEP,WriteListBoot)
' This function reads an .img file named Filename into the WriteListEEP and WriteListBoot arrays
Dim InFile
Dim i,j
Dim DefaultWLB
Dim NextChar,NextByte,CurPos
Dim LengthHex,Length
Dim AddressHex,AddrH,AddrL
Dim Address
Dim WLEIndex
Dim Checksum
Dim FileSize
Dim Finished
Dim DisplayFilename

ReadImgFile=0

DisplayFilename=Filename
For i=1 to Len(Filename)
If Mid(Filename,i,1)="\" Then
DisplayFilename=Mid(Filename,i+1)
End If
Next

Call GenericMsg("Loading "+DisplayFilename+" ...") ' Display message that file is being loaded

' Initialize the WriteList arrays
DefaultWLB="00FF440D010312200000000000000000000000000000000000 00000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000"
For i=0 to 71
WriteListBoot(i)=HexToDec(Mid(DefaultWLB,i*2+1,2))
Next
For i=0 to 4095
WriteListEEP(i)=""
Next
WLEIndex=0

InFile=Fs.FileOpen(Filename,fsoOpenRead) ' Open the file
FileSize=Fs.FileSeek(InFile,&H0,fsoSEEK_END) ' Seek to the end of the file to get the size
Call Fs.FileSeek(InFile,&H0,fsoSEEK_SET) ' Seek back to the beginning of the file
CurPos=0
Finished=0
Do While (Finished=0)
NextChar=""
Do While (NextChar<>":" And CurPos<FileSize) ' Loop until we have the start of an Intel hex line
NextChar=Chr(Fs.FileGetc(InFile))
CurPos=CurPos+1
Loop
If NextChar=":" Then ' Have a line to process. If not, EOF
LengthHex=Chr(Fs.FileGetc(InFile))+Chr(Fs.FileGetc (InFile)) ' Get the length byte
CurPos=CurPos+2
If IsHex(LengthHex) Then
Length=HexToDec(LengthHex)
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
AddressHex=Chr(Fs.FileGetc(InFile))+Chr(Fs.FileGet c(InFile))+Chr(Fs.FileGetc(InFile))+Chr(Fs.FileGet c(InFile))
CurPos=CurPos+4 ' Get the address
If IsHex(AddressHex) Then
AddrH=HexToDec(Left(AddressHex,2))
AddrL=HexToDec(Right(AddressHex,2))
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
If (Length<&H40) And (AddrH>=&H80 And AddrH<=&H8F) Then ' Verify parameters within range
Checksum=Length+AddrH+AddrL
NextByte=Chr(Fs.FileGetc(InFile))+Chr(Fs.FileGetc( InFile)) ' Get the 00h byte
CurPos=CurPos+2
If IsHex(NextByte) Then
Checksum=Checksum+HexToDec(NextByte)
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
For Address=(AddrH*&H100+AddrL) To (AddrH*&H100+AddrL)+Length-1 ' Prepare to read length bytes
NextByte=Chr(Fs.FileGetc(InFile))+Chr(Fs.FileGetc( InFile)) ' Get the next byte
CurPos=CurPos+2
If IsHex(NextByte) Then
Checksum=Checksum+HexToDec(NextByte)
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
If (Address>=32800) And (Address<32872) Then
WriteListBoot(Address-32800)=HexToDec(NextByte)
ElseIf (Address>=32872) And (Address<36864) Then
If WriteListEEP(WLEIndex)="" Then
WriteListEEP(WLEIndex)=HexString(Address,4)+HexStr ing((AddrH*&H100+AddrL)+Length-Address,2)
End If
WriteListEEP(WLEIndex)=WriteListEEP(WLEIndex)+Next Byte
End If
Next
NextByte=Chr(Fs.FileGetc(InFile))+Chr(Fs.FileGetc( InFile)) ' Get the Checksum byte
CurPos=CurPos+2
If IsHex(NextByte) Then
Checksum=(&H100-(Checksum Mod &H100)) Mod &H100
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
If Checksum<>HexToDec(NextByte) Then
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
If WriteListEEP(WLEIndex)<>"" Then WLEIndex=WLEIndex+1
ElseIf (Length=0) Then
' Ignore lines with 0 bytes to write (like config records)
Else
Call RemoveMsg()
Call Sc.MsgBox("The file does not appear to be valid .img file."+vbCrLf,vbExclamation+vbOKOnly,ScriptName+" "+ScriptVer+" - Not a Valid .img File")
Fs.FileClose(InFile)
Exit Function
End If
Else
Finished=1
End If
Loop
ReadImgFile=1
Fs.FileClose(InFile)
End Function


' ========================
' = Low-Level Procedures =
' ========================

Sub SetGlitchValues()
Dim i

' Glitch Task 1 Parameter Set A
DAC(1)=&H0
DACL(1)=&H70
DACI(1)=&H82
DACH(1)=&H90
Delay(1)=&H0
DelayL(1)=&H2157
DelayI(1)=&H2158
DelayH(1)=&H2159
GlitchDelay(1)=&H0
GlitchDelayL(1)=&H10
GlitchDelayI(1)=&H20
GlitchDelayH(1)=&H40
Tries(1)=0
TotalTries(1)=0
TriesLimit(1)=0
TriesLimitN(1)=3
TriesLimitI(1)=50
GlitchProc(1)=3
AltProc(1)=5
AltProcTriesLimit(1)=500
FailsLimit(1)=35
GlitchLogic(1)=1
Search(1)=1

' Glitch Task 2 Parameter Set A
' This is an unused set of glitch parameters. Unused glitch parameters should
' be set as follows for proper glitch display.
DAC(2)=&H1
DACL(2)=&H1
DACI(2)=&H1
DACH(2)=&H1
Delay(2)=&H0
DelayL(2)=&H0
DelayI(2)=&H0
DelayH(2)=&H0
GlitchDelay(2)=&H0
GlitchDelayL(2)=&H0
GlitchDelayI(2)=&H0
GlitchDelayH(2)=&H0
Tries(2)=0
TotalTries(2)=0
TriesLimit(2)=0
TriesLimitN(2)=1
TriesLimitI(2)=1
GlitchProc(2)=1
AltProc(2)=0
AltProcTriesLimit(2)=500
FailsLimit(2)=1
GlitchLogic(2)=0
Search(2)=0

' Glitch Task 3 Parameter Set A
DAC(3)=&H0
DACL(3)=&H70
DACI(3)=&H82
DACH(3)=&H90
Delay(3)=&H0
DelayL(3)=&H600
DelayI(3)=&H604
DelayH(3)=&H618
GlitchDelay(3)=&H0
GlitchDelayL(3)=&H30
GlitchDelayI(3)=&H38
GlitchDelayH(3)=&H40
Tries(3)=0
TotalTries(3)=0
TriesLimit(3)=0
TriesLimitN(3)=2
TriesLimitI(3)=10
GlitchProc(3)=1
AltProc(3)=11
AltProcTriesLimit(3)=250
FailsLimit(3)=25
GlitchLogic(3)=1
Search(3)=1

' Glitch Task 4 Parameter Set A
DAC(4)=&H0
DACL(4)=&H70
DACI(4)=&H82
DACH(4)=&HA0
Delay(4)=&H0
DelayL(4)=&H4550
DelayI(4)=&H4E20
DelayH(4)=&H5000
GlitchDelay(4)=&H0
GlitchDelayL(4)=&H128
GlitchDelayI(4)=&H138
GlitchDelayH(4)=&H150
Tries(4)=0
TotalTries(4)=0
TriesLimit(4)=0
TriesLimitN(4)=1
TriesLimitI(4)=40
GlitchProc(4)=1
AltProc(4)=0
AltProcTriesLimit(4)=500
FailsLimit(4)=10
GlitchLogic(4)=1
Search(4)=1

' Glitch Task 1 Parameter Set B
DAC(5)=&H0
DACL(5)=&H70
DACI(5)=&H82
DACH(5)=&H90
Delay(5)=&H0
DelayL(5)=&H1D00
DelayI(5)=&H1D2B
DelayH(5)=&H1D40
GlitchDelay(5)=&H0
GlitchDelayL(5)=&H08
GlitchDelayI(5)=&H0C
GlitchDelayH(5)=&H10
Tries(5)=0
TotalTries(5)=0
TriesLimit(5)=0
TriesLimitN(5)=3
TriesLimitI(5)=100
GlitchProc(5)=1
AltProc(5)=12
AltProcTriesLimit(5)=2500
FailsLimit(5)=100
GlitchLogic(5)=1
Search(5)=1

' Glitch Task 1 Parameter Set D
DAC(6)=&H0
DACL(6)=&H70
DACI(6)=&H82
DACH(6)=&H90
Delay(6)=&H0
DelayL(6)=&H1D29
DelayI(6)=&H1D2B
DelayH(6)=&H1D2D
GlitchDelay(6)=&H0
GlitchDelayL(6)=&H0A
GlitchDelayI(6)=&H0C
GlitchDelayH(6)=&H0E
Tries(6)=0
TotalTries(6)=0
TriesLimit(6)=0
TriesLimitN(6)=3
TriesLimitI(6)=100
GlitchProc(6)=1
AltProc(6)=7
AltProcTriesLimit(6)=1000
FailsLimit(6)=100
GlitchLogic(6)=1
Search(6)=1

' Glitch Task 1 Parameter Set E
DAC(7)=&H0
DACL(7)=&H70
DACI(7)=&H82
DACH(7)=&H90
Delay(7)=&H0
DelayL(7)=&H1D29
DelayI(7)=&H1D2B
DelayH(7)=&H1D2D
GlitchDelay(7)=&H0
GlitchDelayL(7)=&H0D
GlitchDelayI(7)=&H0F
GlitchDelayH(7)=&H11
Tries(7)=0
TotalTries(7)=0
TriesLimit(7)=0
TriesLimitN(7)=3
TriesLimitI(7)=100
GlitchProc(7)=2
AltProc(7)=8
AltProcTriesLimit(7)=1000
FailsLimit(7)=100
GlitchLogic(7)=1
Search(7)=1

' Glitch Task 1 Parameter Set F
DAC(8)=&H0
DACL(8)=&H70
DACI(8)=&H82
DACH(8)=&H90
Delay(8)=&H0
DelayL(8)=&H1D19
DelayI(8)=&H1D1B
DelayH(8)=&H1D1D
GlitchDelay(8)=&H0
GlitchDelayL(8)=&H0A
GlitchDelayI(8)=&H0D
GlitchDelayH(8)=&H11
Tries(8)=0
TotalTries(8)=0
TriesLimit(8)=0
TriesLimitN(8)=3
TriesLimitI(8)=50
GlitchProc(8)=1
AltProc(8)=1
AltProcTriesLimit(8)=1000
FailsLimit(8)=100
GlitchLogic(8)=1
Search(8)=1

' Glitch Task 5 Parameter Set A
DAC(9)=&H0
DACL(9)=&H70
DACI(9)=&H82
DACH(9)=&H90
Delay(9)=&H0
DelayL(9)=&H3D4
DelayI(9)=&H3D5
DelayH(9)=&H3D6
GlitchDelay(9)=&H0
GlitchDelayL(9)=&H08
GlitchDelayI(9)=&H0B
GlitchDelayH(9)=&H10
Tries(9)=0
TotalTries(9)=0
TriesLimit(9)=0
TriesLimitN(9)=3
TriesLimitI(9)=3
GlitchProc(9)=4
AltProc(9)=10
AltProcTriesLimit(9)=3
FailsLimit(9)=25
GlitchLogic(9)=1
Search(9)=1

' Glitch Task 5 Parameter Set B
DAC(10)=&H0
DACL(10)=&H70
DACI(10)=&H82
DACH(10)=&H90
Delay(10)=&H0
DelayL(10)=&H3D4
DelayI(10)=&H3D5
DelayH(10)=&H3D6
GlitchDelay(10)=&H0
GlitchDelayL(10)=&H08
GlitchDelayI(10)=&H0B
GlitchDelayH(10)=&H10
Tries(10)=0
TotalTries(10)=0
TriesLimit(10)=0
TriesLimitN(10)=3
TriesLimitI(10)=10
GlitchProc(10)=3
AltProc(10)=9
AltProcTriesLimit(10)=25
FailsLimit(10)=25
GlitchLogic(10)=1
Search(10)=1

' Glitch Task 3 Parameter Set B
DAC(11)=&H0
DACL(11)=&H70
DACI(11)=&H82
DACH(11)=&H90
Delay(11)=&H0
DelayL(11)=&H600
DelayI(11)=&H630
DelayH(11)=&H6B0
GlitchDelay(11)=&H0
GlitchDelayL(11)=&H10
GlitchDelayI(11)=&H20
GlitchDelayH(11)=&H40
Tries(11)=0
TotalTries(11)=0
TriesLimit(11)=0
TriesLimitN(11)=2
TriesLimitI(11)=2
GlitchProc(11)=1
AltProc(11)=3
AltProcTriesLimit(11)=500
FailsLimit(11)=35
GlitchLogic(11)=1
Search(11)=1

' Glitch Task 1 Parameter Set C
DAC(12)=&H0
DACL(12)=&H70
DACI(12)=&H82
DACH(12)=&H90
Delay(12)=&H0
DelayL(12)=&H1D60
DelayI(12)=&H1D80
DelayH(12)=&H1DA0
GlitchDelay(12)=&H0
GlitchDelayL(12)=&H06
GlitchDelayI(12)=&H0C
GlitchDelayH(12)=&H14
Tries(12)=0
TotalTries(12)=0
TriesLimit(12)=0
TriesLimitN(12)=3
TriesLimitI(12)=100
GlitchProc(12)=1
AltProc(12)=6
AltProcTriesLimit(12)=2500
FailsLimit(12)=100
GlitchLogic(12)=1
Search(12)=1

TaskSet(1)=1 ' Set default task sets
TaskSet(2)=2
TaskSet(3)=3
TaskSet(4)=4
TaskSet(5)=9

Randomize ' Make sure we try random glitch sequences

For i=0 To 12 ' Clear the ATR
ATR(i)=0
Next
ATR(0)=&H100 ' Flag no ATR
End Sub

Function UserCancel()
' This routine verifies that the user wants to abort the script
Dim MsgPrompt
Dim RetVal
UserCancel=False
MsgPrompt="Would you like to abort this function?"+vbCr+_
"(It is safe to do so at this point.)"
RetVal=Sc.MsgBox(MsgPrompt,vbQuestion+vbYesNo,Scri ptName+" "+ScriptVer+" - Cancel Function")
If (RetVal=vbYes) Then
UserCancel=True
End If
End Function

Function ParmInc(Parm,Low,High,Inc)
' This function increments the parameter Parm by one, resetting it to low if it goes beyond high
' The value of Inc specifies whether the function should do the increment or not: 1=Do the increment, 0=Don't
' This way the function can be nested
' The function returns 0 if ParmInc didn't wrap, 1 if it did
If Inc=1 Then
Parm=Parm+1
ParmInc=0
If Parm>High Then
Parm=Low
ParmInc=1
End If
End If
End Function

Function SendUL(ToSend)
' This function handles the low-level communication to the unlooper for
' packets that receive a response. It gives the unlooper some time to
' respond to a packet. If we get a response the function returns 1,
' otherwise returns 0.

Dim RetVal
Dim ULResponseTime
Dim BufferBytes
Const MaxULResponseTime=25000 ' Make sure we delay enough so very fast computers wait a little
Const MaxBufferBytes=100

SendUL=0
ULResponseTime=0 ' Currently, haven't waited for unlooper
BufferBytes=0 ' Current bytes in buffer is 0
RetVal=Sc.Flush() ' Flush receive buffer
Sc.Write(ToSend) ' Send the bytes to the unlooper
Do While (BufferBytes=0 And ULResponseTime<MaxULResponseTime)
ULResponseTime=ULResponseTime+1 ' Add 1 to running total of delayed time
BufferBytes=Sc.BytesInBuffer
Loop

If ULResponseTime<MaxULResponseTime Then
SendUL=1 ' We got a response from the unlooper
End If
End Function

Sub UnlooperSettings()
' This subroutine uses WinExplorer 4.6's new Wx. object to automatically
' configure all the WinExplorer settings for the user.
Wx.BaudRate=115200
Wx.ResetBaudRate=115200
Wx.Parity=0 ' 0 = None, 1 = Odd, 2 = Even, 3 = Mark, 4 = Space
Wx.StopBits=0 ' 0 = 1 stop bit, 1 = 1.5 stop bits, 2 = 2 stop bits
Wx.DTRControl=0 ' Initial state of DTR 0 = off, 1 = on
Wx.RTSControl=1 ' Initial state of RTS 0 = off, 1 = on
Wx.ResetDelay=0 ' In microseconds
Wx.ByteDelay=0 ' In microseconds
Wx.RxByteTimeout=200 ' In milliseconds
Wx.ResetMode=2 ' 0 = No Resets, 1 = ISO Reset (Expect a ATR), 2 = Device Reset (No ATR)
Wx.ResetLine=1 ' 0 = Toggle RTS for Reset, 1 = Toggle DTR for Reset
Wx.ByteConvention=1 ' 0 = Inverse, 1 = Direct
Wx.FlushEchoByte=0 ' 0 = no flush, 1 = flush - A Phoenix interface will echo each byte transmitted.
Wx.FlushBeforeWrite=0 ' 0 = no flush, 1 = flush - Flush the receive buffer before each write to strip off Null bytes.
Wx.IgnoreTimeouts=1 ' 0 = Abort script on a receive timeout, 1 = Ignore all receive timeouts
Wx.ResetAfterTimeout=0 ' 0 = Don't reset after a timeout, 1 = do a reset after a timeout - Not used if "IgnoreTimeouts=0"
Wx.LogTransactions=0 ' 0 = Don't log transactions, 1 = log transactions
Wx.DisplayUSW=0 ' Display USW after script complete 0 = no, 1 = yes
Wx.DisplayFuse=0 ' Display Fuse after script complete 0 = no, 1 = yes
End Sub

Sub P2Settings()
' This subroutine uses WinExplorer 4.6's new Wx. object to automatically
' configure all the WinExplorer settings for the user. This routine is
' used at the end of the script to set all the settings back to P2.
Wx.BaudRate=19200
Wx.ResetBaudRate=9600
Wx.Parity=1 ' 0 = None, 1 = Odd, 2 = Even, 3 = Mark, 4 = Space
Wx.StopBits=2 ' 0 = 1 stop bit, 1 = 1.5 stop bits, 2 = 2 stop bits
Wx.DTRControl=1 ' Initial state of DTR 0 = off, 1 = on
Wx.RTSControl=0 ' Initial state of RTS 0 = off, 1 = on
Wx.ResetDelay=40000 ' In microseconds
Wx.ByteDelay=70000 ' In microseconds
Wx.RxByteTimeout=200 ' In milliseconds
Wx.ResetMode=1 ' 0 = No Resets, 1 = ISO Reset (Expect a ATR), 2 = Device Reset (No ATR)
Wx.ResetLine=0 ' 0 = Toggle RTS for Reset, 1 = Toggle DTR for Reset
Wx.ByteConvention=0 ' 0 = Inverse, 1 = Direct
Wx.FlushEchoByte=1 ' 0 = no flush, 1 = flush - A Phoenix interface will echo each byte transmitted.
Wx.FlushBeforeWrite=0 ' 0 = no flush, 1 = flush - Flush the receive buffer before each write to strip off Null bytes.
Wx.IgnoreTimeouts=0 ' 0 = Abort script on a receive timeout, 1 = Ignore all receive timeouts
Wx.ResetAfterTimeout=0 ' 0 = Don't reset after a timeout, 1 = do a reset after a timeout - Not used if "IgnoreTimeouts=0"
Wx.LogTransactions=1 ' 0 = Don't log transactions, 1 = log transactions
Wx.DisplayUSW=1 ' Display USW after script complete 0 = no, 1 = yes
Wx.DisplayFuse=1 ' Display Fuse after script complete 0 = no, 1 = yes
End Sub

Function RandomRange(Low,High)
' This function returns a random integer between Low and High
RandomRange=Int(Rnd()*(High-Low+1))+Low
End Function

Function VerifyWinExplorer()
' This function ensures that WinExplorer is the correct version. 1 is returned
' if OK, 0 if not.

Dim ErrorString

VerifyWinExplorer=1
If Sc.Version<4.6 Then
ErrorString="You need version 4.6 or greater of WinExplorer to run this script."
Call Sc.MsgBox(ErrorString,vbCritical,ScriptName+" "+ScriptVer+" - Error")
VerifyWinExplorer=0
End If
End Function

Function Disclaimer()
' This function shows the disclaimer to the user and ensures they agree to it to
' run the script.
Dim MsgPrompt
Dim RetVal

Disclaimer=0
MsgPrompt="This script, documentation and all related materials are"+vbCr
MsgPrompt=MsgPrompt+"FOR EDUCATIONAL USE ONLY. Actually using this script on a"+vbCr
MsgPrompt=MsgPrompt+"card is done completely at your own risk! Use of any test"+vbCr
MsgPrompt=MsgPrompt+"card that decrypts satellite signals without a proper"+vbCr
MsgPrompt=MsgPrompt+"subscription is ILLEGAL in the United States! This script"+vbCr
MsgPrompt=MsgPrompt+"is distributed with NO warranty, guarantee, or promise at"+vbCr
MsgPrompt=MsgPrompt+"all, either expressed or implied!"+vbCr+vbCr
MsgPrompt=MsgPrompt+"Do you agree to the above disclaimer?"
RetVal=Sc.MsgBox(MsgPrompt,vbExclamation+vbYesNo+v bDefaultButton2,ScriptName+" "+ScriptVer+" - Disclaimer")
If RetVal=vbYes Then Disclaimer=1
End Function

Function ReadMe()
' This function asks the user if he has read the documentation.
Dim MsgPrompt
Dim RetVal

ReadMe=0

MsgPrompt="Have you read and fully understood the documentation for"+vbCr
MsgPrompt=MsgPrompt+"TurboUnloop? If not, click 'No' now, and read it. Be"+vbCr
MsgPrompt=MsgPrompt+"forewarned that any question you ask in a forum or chat"+vbCr
MsgPrompt=MsgPrompt+"room that is plainly answered in the documentation will"+vbCr
MsgPrompt=MsgPrompt+"probably be met with a less-than-sympathetic response."+vbCr+vbCr
RetVal=Sc.MsgBox(MsgPrompt,vbExclamation+vbYesNo+v bDefaultButton2,ScriptName+" "+ScriptVer+" - Read Documentation?")
If RetVal=vbYes Then ReadMe=1
End Function

Function CheckDigit(CAMID)
' This function computes the check digit of the CAM ID
Dim C,CSum,Digit,DoubleFlag,Index
Index=11
CAMID=Right("00000000000"+CStr(CAMID),11)
DoubleFlag=-1
Digit=Mid(CAMID,Index,1)
Do While (Digit>=CAMID Or Digit=0) And Index<>1
Index=Index-1
C=Digit
Digit=Mid(CAMID,Index,1)
If DoubleFlag Then
C=C*2
If C>=10 Then
C=C-9
End If
End If
CSum=CSum+C
DoubleFlag=Not(DoubleFlag)
Loop

CheckDigit=10-(CSum Mod 10)
End Function

Function HexString(Number,Length)
' This function takes 2 arguments, a number and a length. It converts the decimal
' number given by the first argument to a Hexidecimal string with its length
' equal to the number of digits given by the second argument
Dim RetVal
Dim CurLen
RetVal=Hex(Number)
CurLen=Len(RetVal)
If CurLen<Length Then
RetVal=String(Length-CurLen,"0") & RetVal
End If
HexString=RetVal
End Function

Function HexToDec(HexNumber)
' This function takes a string as input, assuming it to be a Hexidecimal string,
' and converts it to a decimal number.
HexNumber=Replace(UCase(HexNumber)," ","")
HexToDec=CLng("&H"+HexNumber)
End Function



el archivo que uso para el uploap es el nds2new.exe.eeprom.hex con su correspondiente flas pero tampoco me va es que yo no aprendi a manejar los scrit todavia y me van fatal

a ver señores vamos a aportar y a trabajar que los tenemos medio pillados.
Tambien e sacado un programa con elque puedo sacar las fechas de los tier y los que estan activos y los que no

Y muchos como para poder liarnos al saco pero son italianos y necesitarimos que nos los adapten a nuestras car.

Todo ello esta en la pagina que puse en este mismo hilo

Un saludo

Noish
30-07-2006, 23:17
Lerelelelelele

presario2500
30-07-2006, 23:33
yo tengo unlooper t-43 y el aparato abq,con todo abierto hoy no puedo ,no estoy en casa pero podemos probar lo que haga falta

anrosa
31-07-2006, 18:54
animo compañeros entre todos se puede consiguir y poder hacer un manual para los novatos y acabar con el negocio de algunos ..............un saludo

novato1223
31-07-2006, 20:31
este scrip te da cosas pero no me modifica nada



Option Explicit
Const ScriptName="RicaricaPPV"
Dim RetValue
Dim Delay
Dim GPPLen,GPRLen
Dim GPR(1024)
Dim i
Dim MenuChoice
Dim MsgPrompt
Dim vv,St,St2,n,stmin
Dim risposta



Const fsoError = -1
Const fsoOpenRead = 0
Const fsoOpenWrite = 1
Const fsoOpenReadWrite = 2
Const fsoSEEK_SET = 0
Const fsoSEEK_CUR = 1
Const fsoSEEK_END = 2
Const FileFilter = "File da salvare (*.txt, *.out)|*.txt;*.out;|Tutti i File (*.*)|*.*|"
dim s
dim aaa,bbb
Dim DAC

Dim vec(1024)

dim iopt,extra
dim rom(16384)
dim itot,inew
Dim ToWrite





















Sub Main()
dim jj
Sc.Verbose=false
n=0
st=0
st2=0
If VerifyWinExplorer()=0 Then Exit Sub
If VerifyUnlooper()=0 Then Exit Sub
Do
MsgPrompt=" Ricarica Credito "
MenuChoice=Sc.ButtonBox(MsgPrompt,vbDefaultButton1 ,ScriptName+" - Menu Principale by NDXFree4All versus Kanguro","Atr","Doc Procedura","Ins36-NanoPPV","RicaricaPPV","Exit")
Select Case MenuChoice
Case 1: ATR()
Case 2: Documents()
Case 3: Leggi36 ()
Case 4: Ricarica()

End Select
Loop Until MenuChoice=5
End Sub

Function ATR()
dim ToWrite
Sc.Write("A1")
ToWrite="100E30019504"
SendGP(ToWrite)
sc.delay(300)
Sc.Print("ATR: ")
For i=0 to GPRLen-1
Sc.Print(Hexstring(GPR(i),2) & " ")
Next
Sc.Print(vbCr)

End function



Function Leggi36()
Dim ins,ins1,ins2,ToWrite,jj,t(8)

call atr

jj="BFBFBF8C04"
ins = "160e20C4"
ins1= "D0360000FF"
ins2=ins & ins1 & jj
SendGPST(ins2)
For jj=0 to 8
t(jj)=GPR(jj)
Next
For jj=2 to GPRLen-1
risposta = risposta & Hexstring(GPR(jj),2 )
Next
msgbox " Controlla se è presente il nano FD11 nella tua ins 36 : " & vbcr & vbcr & (ins1 & risposta & vbcr)
risposta=""


End function



Function Scan36()
Dim ins,ins1,ins2,ToWrite,jj,t(8),nano

call atr
jj="BFBF8C04"
ins = "160e20C4"
ins1= "D0360000A4"
ins2=ins & ins1 & jj
SendGPST(ins2)
For jj=0 to 8
t(jj)=GPR(jj)
Next
For jj=2 to GPRLen-1
risposta = risposta & Hexstring(GPR(jj),2 )
Next
Sc.print(ins1 & risposta & vbcr)
nano= mid(risposta,157,4)
print " Credito:" & nano & vbcr
if mid(risposta,157,4)<> nano then
msgbox " Ricarica Full Effettuata !!! Buona visione" & vbCrLf & ("Importante: Sfilare la Card prima di premere OK ,visto che è andata bene evitiamo le solite cazzate !!!")
end if
risposta=""
End function

Function Documents ()
MsgPrompt=" Importante: " & vbcr & vbcr & "Testato su KT con Xilinx Firm 4,5 e Atmel 2313 Firm UL4S o NDX2" & vbcr & vbcr & vbcr & " Leggere prima di iniziare:"
MenuChoice=Sc.ButtonBox(MsgPrompt,vbDefaultButton1 ,ScriptName+" - Procedura ","Doc Procedura")
MsgBox " Procedura:" & vbCrLf & ("1: E' obbligatorio esssere abilitati alla ppv,controllare se on card cè il tiers 02FE ed è presente il nano FD11- Programmare la eeprom del vostro BLESM introducendo il Serial e lo Zkt della vostra Card ") & vbCrLf & ("2: Collegarsi col Decoder via TEL ed inserire la card protetta con BLESM ed effettuare l'operazione di scarico/ricarico credito Menu-Interattivita'-Gestione Modem-OK") & vbCrLf & ("3:Loggare la ins di ricarica Precam e Postcam tramite BLESM,contemporaneamente,Attenzione la ins ricarica viene inviata solo una volta,se la perdete avete finito prima di iniziare...sicuramente l'operazione dara' uno di questi errori -22-44-55,poco importa,le ins42 arriveranno lo stesso") & vbCrLf & ("4:Prelevare l'ins Len20 dal pre o post-cam ed inserirla nello script quando richiesto in D0") & vbCrLf &("5:Aspettare che lo script segnali l'operazione riuscita")& vbCrLf & ("6: L'autore declina ogni responsabilita' per usi diversi dai soli fini esclusivamente Hobbystici")





End function


Function Ricarica()
Dim ins,ToWrite,ii,jj,t(8),x,S,V,EM,EM1,EM2,EMM
EM= Sc.InputBox("Inserisci 42 ricarica crediti -Len 20- : ","PPV Full by NdxFree4All versus Kanguro","")
EM1= Mid(EM,1,10)
EM2= Mid(EM,11,100)
EMM= EM1 & "80DF" & EM2
print EMM
for S=&H90 to &H90
call atr
V=&H00
jj="22" & HexString(S,2) & HexString(V,2) & "018104"
ins="160e15C4" & EMM +jj

SendGPST(ins)
sc.delay(300)
For jj=0 to 8
t(jj)=GPR(jj)
Next
For jj=0 to GPRLen-1
risposta = risposta & Hexstring(GPR(jj),2)
Next
Sc.Print "Delay = 22" & HexString(S,2) & HexString(V,2) & " - Invio n°(" & HexString(x,2) & ")"& vbcr
Sc.print(risposta & vbcr)

call Scan36
next
End function










































Sub res
risposta = ""
For i=0 to GPRLen-1
risposta = risposta & HexInv(GPR(i),2)
Next
End sub

Function SendSeca(str)
dim i
SendSeca=""
for i=0 to len(str)/2-1
SendSeca=SendSeca & HexInv("&h" & mid(str,2*i+1,2),2)
next
End Function

Function GetTimer()
Sc.Write("C0")
sc.delay(50)
If Sc.Read(5)=5 Then
GPR(0)=Sc.GetByte(4)
GPR(1)=Sc.GetByte(3)
GPR(2)=Sc.GetByte(2)
n=n+1
vv=GPR(0)*256*256+ GPR(1)*256+GPR(2)
st=st+vv
st2=st2+vv*vv
if vv<stmin then stmin=vv
GetTimer=vv
Else
Sc.Print("Unable to communicate with unlooper!")
End If
End Function

Function VerifyUnlooper()
Dim UnlooperID
VerifyUnlooper=0
Call Sc.Reset()
Do While(VerifyUnlooper=0)
Sc.ByteDelay=0
Sc.Write("90")
If Sc.Read(1)=1 Then
For i=0 to 3

Next
VerifyUnlooper=1
Sc.Print("Atmel Software: " & UnlooperID &vbCr)
Else
Sc.Print("Retrying" & vbCr)
VerifyUnlooper=0
End If
Loop
End Function

Function VerifyWinExplorer()
VerifyWinExplorer=1
If Sc.Version<4.6 Then
Sc.Print("You need WinExp v.4.6 to run this script!")
VerifyWinExplorer=0
End If
End Function

Function HexString(Number,Length)
Dim CurLen
RetValue=Hex(Number)
CurLen=Len(RetValue)
If CurLen<Length Then
RetValue=String(Length-CurLen,"0") & RetValue
End If
HexString=RetValue
End Function

Function HexInv(Number,Length)
Dim CurLen
Dim NumLow
Dim NumHigh
dim Number1
NumLow=Int(Number/16)
NumHigh=Number-NumLow*16
Select Case NumHigh
Case 0 NumHigh=15
Case 1 NumHigh=7
Case 2 NumHigh=11
Case 4 NumHigh=13
Case 6 NumHigh=9
Case 7 NumHigh=1
Case 8 NumHigh=14
Case 9 NumHigh=6
Case 11 NumHigh=2
Case 13 NumHigh=4
Case 14 NumHigh=8
Case 15 NumHigh=0
End Select
Select Case NumLow
Case 0 NumLow=15
Case 1 NumLow=7
Case 2 NumLow=11
Case 4 NumLow=13
Case 6 NumLow=9
Case 7 NumLow=1
Case 8 NumLow=14
Case 9 NumLow=6
Case 11 NumLow=2
Case 13 NumLow=4
Case 14 NumLow=8
Case 15 NumLow=0
End Select
Number1=NumHigh*16+NumLow
RetValue=Hex(Number1)
CurLen=Len(RetValue)
If CurLen<Length Then
RetValue=String(Length-CurLen,"0") & RetValue
End If
HexInv=RetValue
End Function

Sub SendGP(GP)
Dim Length
Dim i
Call Replace(GP," ","")
GP=GP+"00"
Length=Len(GP)\2
GP=HexString(Length,2)+GP
If SendUL(GP)=1 Then
If Sc.Read(1)=1 Then
GPPLen=Sc.GetByte(0)
GPRLen=Sc.GetByte(0)
If GPRLen>192 Then Sc.Read(GPRLen)
i=0
Do While (GPRLen>i)

i=i+1
Loop
Else
GPPLen=0
GPRLen=0
End If
Else
GPPLen=0
GPRLen=0
End If
End Sub

Sub SendGPST(GP)
Dim Length
Dim i,j,GPRLen0

Call Replace(GP," ","")

GP=GP+"00"
Length=Len(GP)\2
GP=HexString(Length,2)+GP
GPRLen=0
Sc.Write(GP)
sc.delay 2500
i=0
j=0
while (Sc.BytesInBuffer >0 and i< 1024)
GPRLen0=Sc.BytesInBuffer
GPRLen=GPRLen+GPRLen0
If GPRLen0>0 Then Sc.Read(GPRLen0)
j=j+1
Do While (GPRLen0>i)
GPR(i)=Sc.GetByte(i)
i=i+1
Loop
sc.delay(250)
wend
sc.flush()
i=Sc.BytesInBuffer
if i>0 then sc.read(3)
sc.flush



End Sub

Function SendUL(ToSend)
Dim RetVal
Dim ULResponseTime
Dim BufferBytes
Const MaxULResponseTime=250000
Const MaxBufferBytes=1024
SendUL=0
ULResponseTime=0
BufferBytes=0
RetVal=Sc.Flush()
Sc.Write(ToSend)
Do While (BufferBytes=0 And ULResponseTime<MaxULResponseTime)
ULResponseTime=ULResponseTime+1
BufferBytes=Sc.BytesInBuffer
Loop
If ULResponseTime<MaxULResponseTime Then
SendUL=1
End If
End Function

provar a ver

presario2500
31-07-2006, 21:00
sabes si el programa EXTREME02 de nds2 vale para nuestras card de ono?

novato1223
31-07-2006, 21:32
ese no consigo que me conecte

GALLEGO
31-07-2006, 23:44
otra cosa yo lo compré en la zona de andalucia (como creo que todos)yo soy de zona catalana ,y no veo tv1,la2,tv3,c33,t5,a3 y la cuatro ,la sexta y demas del tdt si los veo que puedo hacer para ver los teoricos libres?he probado poniendo zona "cataluña"me hace una rapida busqueda y no veo nada lo pongo en andalucia hago la busqueda y me quedo como estaba algun metodo para poder ver esos restos de canales?SALUDOS
sacado de otro foro:
cualquier decodificador q trabaje con frecuencias entre 48-860Mhz, q se le pueda seleccionar un QAM64 ( esta el 16-32-64-128-256 QAM) y el symbol rate 3,0-7,0 MS/s, q ademas soporte MPEG-2, puede sintonizar todos los canales q he puesto arriba, lo cual no quiere decir q los decodifique. Ademas la mayoria de los receptores de este tipo suelen llevar un tarjetero CONAX o VIACESS, ya hay pululando por ahi en las tiendas virtuales. Fuera de la comunidad de valencia no se en q frecuencias y symbol rate estan operando, es cuestion de probar y hacer busquedas de canales en diferentes frecuencias o en modo automatico

GALLEGO
31-07-2006, 23:48
otra cosa yo lo compré en la zona de andalucia (como creo que todos)yo soy de zona catalana ,y no veo tv1,la2,tv3,c33,t5,a3 y la cuatro ,la sexta y demas del tdt si los veo que puedo hacer para ver los teoricos libres?he probado poniendo zona "cataluña"me hace una rapida busqueda y no veo nada lo pongo en andalucia hago la busqueda y me quedo como estaba algun metodo para poder ver esos restos de canales?SALUDOS
sacado de otro foro:









patoluca


He confeccionado una lista de canales por frecuencias de TV por cable en la comunidad valenciana, esta puede variar segun provincias y cambios de la operadora.

Los q tienen un asterisco son en abierto. Ademas te dan toda la programacion en pantalla, la q esta en curso y las siguientes emisiones.

Estos canales se pueden coger con cualquier deco digital q opere en las siguientes configuraciones:
QAM 64
SYMBOL RATE 6875
FRECUENCIAS DE 706Mhz HASTA 858Mhz

FRECUENCIA 706:
*CANAL DE PROPAGANDA DE LA OPERADORA
* " " " DE FILAS
-HOLLYWOD
-SOL MUSICA
-ODISEA
-HISTORIA
*CANAL AYUDA
-INTERECONOMIA

FRECUENCIA 714:
-INTER+ UCRANIA
-AXN
-TELEVISION VALENCIANA
-EXTREME SPORSTS
-DEUTSCHE WELLE
-SAILING CHANNEL
-BBC WORLD
-EURONEWS

FRECUENCIA 722:
-SHOWTIME EXTREME
-CINEMATK
-MGM
-CANAL 18
-CANAL COCINA
-NATURA
-SUPER N
-BUZZ
-CUBAVISION
-SOMOS

FRECUENCIA 730:
-PEOPLE AND ARTS
-DISNEY CHANNEL
-DISCOVERY
-SPORTMANIA
-40 TV
-COSMOPOLITAN
-CANAL CANARIAS
-CANAL PARLAMENTO

FRECUENCIA 738:
-TCM+1
-CARTOON NETWORK +1
-BOOMERANG +1
-MTV
-MTV2
-MTV BASE
-MTV HITS
-VH1
-VH1 CLASSIC

FRECUENCIA 746:
-DISNEY +1
-PLAYHOUSE DISNEY
-TOON DISNEY
-JETIX
-JETIX +1
-MTV DANCE
-ESPN CLASSIC SPORTS
-NATIONAL GEOGRAPHIC
-EUROSPORT 2

FRECUENCIA 754:
-ECUAVISA INTERNACIONAL
-RTM
-EUROSPORT
-REAL MADRID
-CALLE 13
-VEOTV2
*NET TV
*VEO TV

FRECUENCIA 762:
-TELEDEPORTE
-CANAL 24H
-NOSTALGIA
-TVG SAT
-ANDALUCIA TV
-ETB SAT
-TVC SAT

FRECUENCIA 770:
-TCM
-CNN INTERNACIONAL
-BLOMBERG
-AL JAZEERA
-CANAL SENADO
-EHS
-UTILISIMA
-MEZZO
-PRO TV INTERNACIONAL

FRECUENCIA 778:
-MOTOR TV
-RTP INTERNACIONAL
-TVS
-ARTE
-ECUATV
-CNBC
-TV POLONIA
-BOOMERANG

FRECUENCIA 786:
-FILA CINE DE LA 1 HASTA LA 9

FRECUENCIA 794:
-FILA CINE DE LA 10 HASTA LA 17
-FILA CINE X1

FRECUENCIA 810:
-TELE 5 SPORTS
-TELE5 ESTRELLAS
-FLY MUSIC
-CNN+
-40 LATINO
*LA SEXTA
-A3 NEOX
-A3 NOVA

FRECUENCIA 818:
-FILA X2
-FILA X3
-FILA XX1-2-3-4
-FILA MORBO 1-2
-FILA ARCO IRIS

FRECUENCIA 826:
-VENEVISION
-HTV
-CARACOL TV INTERNACIONAL
-TV CHILE
-EWTN
-ANDALUCIA TURISMO
-DISCOVERY SCIENCE
-DISCOVERY TURBO
-DISCOVERY CIVI

FRECUENCIA 834:
-FILA FUTBOL DE LA 1-9

FRECUENCIA 842:
-VIDENCIA
-CARTOON NETWORK
-NICKELODEON
-TELECORAZON
-PARAMOUNT
-NICKPARAMOUNT
-CANAL FOX
-LA TIENDA EN CASA

FRECUENCIA 850:
*LA 1
*LA 2
*A3
*CUATRO
*TELE5
*CANAL9
*PUNT2

FRECUENCIA 858:
*LPTEVE
*TV3
*CANAL33
*CANAL7 TELEVALENCIA
*UPV
*CIUDAD AHORA

presario2500
01-08-2006, 00:30
estas frecuencias son de la comunidad valenciana yo lo he probado y para cataluña no valen

presario2500
01-08-2006, 00:37
para cataluña el paquete de canales debe ser diferente pues asi como en la comunidad valenciana ,tv1,la2 ,a3 t5 y la cuatro estan juntas con la misma frecuencia yo veo la cuatro menos las demas

wuanijose
07-08-2006, 21:18
a ver si alguien me explica por favor porque se tiene que conectar el cable de telefono al deco 1h4g chispeado, y si no te pasan a final de mes el importe de lo que hayas comprado, y si se puede comprar con el cable de telefono quitado del deco y una vez hecha la compra se vuelve a conectar. gracias

luchoherrera
22-08-2006, 00:20
he estado intentando hablar con alguien ke los venda y me han comentado. 1 imprescindible el deco de baja 2 tener linea telefonica pq sino los palcos no funcionan y a traves de la linea telefonica se actualizan, la tarjeta es la ke esta trasteada pero eso no me lo confirman ... dicen q se puede comprar a parte si insistes.

Aerokkonen
24-08-2006, 17:11
Muy buenas señor@s. Soy completamente nuevo aquí y en otros foros por el estilo así que no tengo ni remota idea de los comentarios técnicos que hacéis, pero aunque pueda decir una burrada voy a intentar echar una mano con lo que sé, por si a los que sabéis de verdad os sirve de inspiración.

A ver... Yo vivo en Valencia y tengo *n* digital (es el moto**** verdad?) y un amigo tiene exactamente el mismo. Sin embargo él le compró un deco a un conocido (y doy fe de ello porque yo estaba delante) manipulado de alguna forma de modo que puede ver la liga y las pelis totalmente gratis. Y se lo vendió por 50 euros.
A no ser que me esté equivocando de aparato creo que es del que estáis hablando vosotros.

Intentaré enterarme bien de los detalles y pondré aquí lo que pueda averiguar. Sólo os pido que tengáis paciencia conmigo por si digo alguna estupidez muy gorda porque ya dije que no tengo ni idea.

Saludos a todos!

PD: La unión hace la fuerza.

clos2x3
25-08-2006, 12:37
en el hilo chinchetado arriba de ESTUDIO ABQ....
teneis mas informacion.

manugarcia
28-08-2006, 00:58
pero es analogico y ya van cortando x zonas. del deco digital creo q no hay novedades

clos2x3
28-08-2006, 13:13
el que es analogico ?

acb1
05-09-2006, 09:27
Haber alguien puede confirmar el funcionamiento de estos decos.

mar30
05-09-2006, 18:52
ayuda porfa,soy novata necesito saber todo sobre como ver ono.

clos2x3
05-09-2006, 22:24
de momento todo esta en estudio. no hay nada.

MONFRY
11-09-2006, 22:37
Yo Tengo Ono Digital Y Se Ve Todo Pero Al Cabo De Un Mes Se Me Agoto El Saldo De La Tarjeta Y No Puedo Ver Las Taquillas ¿alguien Sabe Como Cargar La Tarjeta Con Mas Dinero?...
Se Que Se Puede Hacer Lo He Escuchado, Pero No Se La Forma

MONFRY
11-09-2006, 22:39
:) Lo Veia Todo Gratis Hasta Que Me Quede Sin Saldo ¿como Recargar La Tarjeta? Gracias....

patatapool
11-09-2006, 22:45
demomento lo unico que puedes hacer es esperar a que se descargue por ella misma, lo de recargarle mas credito está jodido.
Salu2

GALLEGO
11-09-2006, 22:47
si tienes o+o digital y estas dado de alta y as comprado pelis con el conector del telefono desconectado.
tienes varias opciones (todas malas)
conectar el cable de telefono y pagar.
destruir latargeta y decir que se la ha comido el gato.
esto es para el abq.

cype1
12-09-2006, 09:28
Hola, tengo un deco de o*o analógico, pero cada vez se ven menos canales. Todos mis vecinos se ha cambiado al digital, pero me gustaría que alguien me respondiera a un par de dudas:
¿Puedo ponerme un deco para ver los canales digitales sin ser detectado aunque no pueda ver taquillas?
Y en el caso de poderse, qué deco utilizar.

dr_bike
14-09-2006, 20:20
haber soy novato en esto tengo abq dado de baja con su respectiva targeta, lo enchufo y no se ve nada. ¿tendria que activarle algun tipo de sofware para ver los canales abiertos por lo menos? sino como puedo comprar eventos para despues poner el cable del telefono.
si alguien me puede explicar algo un poquito + claro eso de los decos dados de baja

acidillo
15-09-2006, 16:54
pero tio lee un poco, nisikiera tienes que buscar en otros hilos, busca aki mismo
empieza desde el principio
y lee lee lee

davimoli
17-09-2006, 14:20
Buenas a todos, después de habreme leido todos vuestros posts, os informo sobre la forma de operar a la hora de instalar *n* en las casas de un cliente de Sevilla,
A ver nosotros principalmente tenemos q descargarnos los programas el deco (antes de encenderlo a la alimentacion se le deja el boton de OK pulsado, enchufamos el deco (con o sin la tarjeta metida )con el boton de OK aun pulsado asta q el led de encendido de queda en verde fijo, entonces el nos descarga los programas), una vez echo nosotros tenemos q config el deco por la causa de q los decos q nos han mandao *n* provienen de madrid, por lo q los configuramos para Andalucia, pero aun no podemos ver los canales excepto el Mirad*r, con lo q tenemos q mandar un mensaje a los operadores con la mac del deco y el s/n de la tarjeta (nada de codigo postal) y en el mensaje le tenemos q especificar que nos configuren la señal de deco para la region de andalucia y nos activen el paquete que ha contratado el cliente en la tarjeta.
Y poco mas emos probado a usar una misma tarjeta activada en otros decos y funciona correctamente. (aqui se emite en digital y analogico)
(si la descarga de los programas falla en un deco de cadiz , este se queda pillao y ay q mandarlo para atras)

Bueno espero q os sirva para algo y a ver si conseguimos sacar algo entre todos
Y a eso de q los tecnico intaladores solo sabemos tirar el cable y poco mas....habria q verlo por tanto ser ingeniero, y q desp a la hora de hacer las cosas siempre fallan y somos nosotros los q tenemos q buscar soluciones.

Un saludo para PATATAPOOL y CLOS2X3 que son de los pocos q estan haciendo algo por este blog Gracias Tios

davidlauugor
17-09-2006, 19:57
Pues a mi me la han metido doblada. Adquirí, el deco abq para ver OÑO con en teoría la tarjeta 100% tuneada...y nada los canales que puedo ver están sintonizados. Pero me sale tarjeta no autorizada y tarjeta no asociada al terminal y solo me deja ver el puto canal publicitario del mirador. Mi caso ha sio un timo absoluto, hace 5 días que lo tengo en casa y nada, lo he reseteado por si acaso, pero está claro lo que pasa, esa tarjeta no está tuneada. La persona que me lo vendió me dijo que tenía q contactar con un técnico que es quien se los proporciona porq ha pasado alguna vez que la tarjeta no se ha tuneado bien y que se solucionaría....supongo, pero vamos si en 5 días no ha podido contactar con esa tercera persona para que se recarge la tarjeta o lo que sea...lo veo compliakdo. En fin...parece que he dio estafado..es el riesgo que se corre.
Espero que no os pase a vosotros.

runashungo
18-09-2006, 00:58
los ecuatorianos que vivimos en España podiamos ver 4 canales de Ecuador pero hoy quieren poner con tarjeta alguien sabe como puedo conseguilo, especialmente ecuavisa

broke28
25-06-2007, 20:53
hola, es interesante tu teoria, no se si habras descifrado algo mas, yo lo que se que el q manda es la tarjeta, ya q e puesto la de un amigo dada de alta en mi deco y veo lo que el vé. Creo q lo interesante seria poder clonar las tarjetas entonces se solucionario yo creo. gracias

pacagarse
27-06-2007, 19:18
A cada explicacion que se da sobre este tema mas que me pierdo,unos que si otros que no.El tema es que hoy me ha llegado la revista de la operadora de cable gallega a casa y ya meten ofertas de el sistema digital en los combos y mi pregunta es la siguiente.Es rentable gastar el dinero en un aparato de eses digitales que ofrecen por los foros aunque no funcione de momento?cual seria el mas recomendable de comprar(uso personal-no venta)Abq o Motorola dvi 3000

torrijo
10-07-2007, 13:28
holassss, es posible recuperar el atr de una visa?¿, es q el otro dia se me escacharro el deco y me parece q me a frito la visa xq me dice tarjeta invalida y miro con el winexplorer y cuando intenta el atr se queda (RX ATR : 3F) y me da error, si pongo otra visa me la lee bien tanto el deco como el winexplorer, espero q alguien me pueda ayudar a recuperar la visa
saludos

luchoherrera
24-09-2007, 20:30
yo ya no puedo ver nada solo algun canal general compre una tarjeta para un deco abq y hasta hace 1 mes todo ok ahora ya no.... encontrado un vendedor que me asegurado ke con el deco motorola de ono puedo verlo todo al modico precio de 300 euros un saludo y suerte

blaspi
24-09-2007, 23:23
pacagarse en galicia el sitema que usan los de cable en digital es nagra 2 por lo tanto no tiene nada que ver que yo sepa con los otros operadores de cable el sistema es el mismo que el de pigital,tendrias que poner un desco para cable que soporte nagra2(dream box 500c)

blaspi
24-09-2007, 23:26
torrijo que yo sepa el atr de las rom 110 no se puede recuperar por lo menos publicamente,y creeeme que todo el mundo me asegura que no se puede, tengo mis dudas respeto a las rom 110 que jodieron en agosto los de pigital

atreyu1
03-10-2007, 19:02
Hola a todos, me presento porque soy de reciente inscripción en este foro aunque llevo en el tomendo informacion mucho tiempo, os queria poner este enlace porque la verdad que me parece bastante interesante el estudio, es sobre los decos digitales de o*o con el sistema mediacipher ese, no se si debo poner este enlace porque lo que no quiero es que la gente se pasee por alli y empiece a preguntar chorradas que no haran mas que llenar de paja el foro, si lo pongo es porque veo gente con interes y que parece que sabe del tema y entre todos ellos pueden conseguir algo, yo por mi parte soy de los que miran y aprenden puesto que mis conocimientos no llegan a estos campos aunque si que me gustaria,

Bueno acidillo, clox2x3 y alguno mas que veo que tenenis interes y no se si conoceis este foro os dejo el enlace.

http://www.usbjtag.com/bdmjtagbb/viewtopic.php?t=798&start=60

Un saludo a todos

LUISL73
04-10-2007, 21:07
hola¡
solo queria saber si sabeis los dias al mes que se recargan de pasta
la tarjeta pirata de ono digital.Llevo 2 dias con credito insuficiente y no se cuando se volvera a cargar.

gracias

asturcabtv
13-10-2007, 19:25
la unica manera es clonar la targeta de uno k este dado de alta
y para los canales de pago es poniendo un puente con un integrado ,
por cierto lo venden en todas partes pero la putada es k cuando el
k clone la tg se borre de la compañia adiossssssss
y 300 euros gastados para nada por k el integrado se copian unos datos de la tg

asi k no comprar nada asta k se sulucione el tema

analdo
14-10-2007, 09:47
Wenas hace unos 3 mese tenia el ono digital en casa y lo quite y ahora tengo,internet alguien sabe decirme si atraves de internet puedo sacar la señal de la tv de ono y como podria conseguir verla en la tv gracias

flatron
14-10-2007, 13:21
pues poniendo un splitter al cable de internet y de ahi sacas dos, uno para el modem y otro para la television

ese_juanaco
19-10-2007, 17:14
buenas a todos los que investigais por este hilo...vereis es la primera vez que paso por aki y despues de leer muxos post he entendido que en mi zona geografica (al ladito de benidorm)*n* es digital y los decos son los motorola ¿no? y que de momento nasti de plasti,pues como no lo he visto pr aki os dejo algo que info que me regalo el instalador en su dia,el caso es que el lugar de la instalacion es un local publico y como no queria que me pasaran los cables ''por la moldura'' de una punta a otra del local yo mismo el dia antes deje pasadas unas ratas por los macarrones de manera que el instalador cuando vino unicamente tuvo que poner el cable y tirar de ellas.El caso es qu eparece que le molo el enrolle y en vez de montarme la caja de conexion de *n* esa blanca de unos 10 cm aproximadamente me monto dentro de uno de los registros una especie de t triple con una entrada y dos salidas y me explico que el dia que me diera de baja cambiara de la punta de la t en la que iba el deco a la otra que quedava libre en la t y en la punta del cable donde iba el deco le cambiara el conector le pusiera uno normal de antena rf y lo conectara directamente a la tele o al video.El caso es que me di de baja y echo esta,veo los canales tdt y alguno mas.Algun amiguete mio lo hemos hecho tambien y parece ser que depende de la zona en la que este (aunque estamos en el miso barrio)se ven diferentes canales(o igual depende de la sensibilidad de sintonizacion) no se si servira de algo y discculpad si esta posteado ya pues no lo he visto.


saludos a todos

LUISL73
19-10-2007, 23:02
la unica manera es clonar la targeta de uno k este dado de alta
y para los canales de pago es poniendo un puente con un integrado ,
por cierto lo venden en todas partes pero la putada es k cuando el
k clone la tg se borre de la compañia adiossssssss
y 300 euros gastados para nada por k el integrado se copian unos datos de la tg

asi k no comprar nada asta k se sulucione el tema

Gracias por todo,pero el dia 12 se me volvio a cargar de pasta sin problema.

un saludo

fallero
20-10-2007, 22:51
buenas noches a ver si alguien hace el favor y me explica como anular el retorno para la compañia pues me e vuelto loco buscando y no hay manera gracias

edu...
21-10-2007, 22:23
buenas a todos los que investigais por este hilo...vereis es la primera vez que paso por aki y despues de leer muxos post he entendido que en mi zona geografica (al ladito de benidorm)*n* es digital y los decos son los motorola ¿no? y que de momento nasti de plasti,pues como no lo he visto pr aki os dejo algo que info que me regalo el instalador en su dia,el caso es que el lugar de la instalacion es un local publico y como no queria que me pasaran los cables ''por la moldura'' de una punta a otra del local yo mismo el dia antes deje pasadas unas ratas por los macarrones de manera que el instalador cuando vino unicamente tuvo que poner el cable y tirar de ellas.El caso es qu eparece que le molo el enrolle y en vez de montarme la caja de conexion de *n* esa blanca de unos 10 cm aproximadamente me monto dentro de uno de los registros una especie de t triple con una entrada y dos salidas y me explico que el dia que me diera de baja cambiara de la punta de la t en la que iba el deco a la otra que quedava libre en la t y en la punta del cable donde iba el deco le cambiara el conector le pusiera uno normal de antena rf y lo conectara directamente a la tele o al video.El caso es que me di de baja y echo esta,veo los canales tdt y alguno mas.Algun amiguete mio lo hemos hecho tambien y parece ser que depende de la zona en la que este (aunque estamos en el miso barrio)se ven diferentes canales(o igual depende de la sensibilidad de sintonizacion) no se si servira de algo y discculpad si esta posteado ya pues no lo he visto.


saludos a todos

Eso que te ha dicho tampoco tiene mucho misterio, si te das de baja cuando devuelves el deco el cable que viene de la caja al deco le quitas la toma coaxial le pones una toma de entrada normal lo conectas a la tele y puedes ver los canales analogicos en abierto, si tienes internet contratado no te desconectan de la caja de abajo, pero si te das de baja tb en internet te desconectan de la caja de abajo y ya no puedes acerlo.

Y si cuando te das de alta contratas solo internet tienes que poner una T que el isntalador no la pone dentro de la caja para separar la señal de internet de la de TV, como solo has contratado internet esa T no te hace falta y por eos no la pone.

salu2

dvi3000
01-11-2007, 12:44
interesados enviar mail

W.Fog
05-11-2007, 17:30
Buenos días a todos.

Soy nuevo aqui y en cuestión de TV por cable poco puedo ofrecer. De hecho este post es para pedir :)
En telefonía puedo ayudar mucho más ;)

Voy al tema.

Tengo un deco de ONO digital que me ha dado un amigo. Concretamente un ABQ.

El caso:

Dispongo de una tarjeta de un amigo "cargadita". Mi pregunta es cómo puedo clonar la tarjeta y si esto es suficiente para poder disponer de los canales de ONO (me da igual la taquilla).
He oido cosas sobre anular el retroceso, etc. :S
Por supuesto, tengo teléfono e internet con ellos.

Un saludo y gracias de antemano.

GALLEGO
06-11-2007, 20:32
pasate por aqui y lo lees.
( solo hay 640 post)
cuando los hayas leido veras que es un tema muy interesante y que esta bastante verde,
http://www.hackhispano.com/foro/showthread.php?t=17229

Rameho
08-11-2007, 15:34
Aprobecho en mi primera intervención para saludar a todos los foreros!

He estado leyendo prácticamente todos los post y veo que todavía no se sabe de que manera se "trucan" los decos de *n* digital.Hay varias hipotesis,pero solo eso.Yo hasta ahora sabía florear los analógicos,tengo uno colocado con la señal de internet,pero hace tiempo me hice con dos motorola digitales y estoy a la espera de poder hacerles algo.Tengo dudas sobre lo que dice Asturcabtv,pues aquí en Cantabria existen ya varios decos motorola como los míos,sin tarjeta y sin conexión telefónica,solo el coaxial,y funcionan a la perfección,todo en abierto.Son traídos de Valencia por mediación de... no se sabe y como poco cuestan 300€.Aunque me haga con uno de estos chipeados y lo habra no creo que valga de mucho pues faltaría el procedimiento,pero si puedo saco unas fotos para saber por donde pueden ir los tiros.

Grácias!, y si alguien quiere compartir info...ya sabe ;)

ciskar
24-11-2007, 00:30
Hola rameho ayer compre un deco de ono digital y funciona de miedo,conectar y ver no tiene ninguna tarjeta.Un saludo.








Aprobecho en mi primera intervención para saludar a todos los foreros!

He estado leyendo prácticamente todos los post y veo que todavía no se sabe de que manera se "trucan" los decos de *n* digital.Hay varias hipotesis,pero solo eso.Yo hasta ahora sabía florear los analógicos,tengo uno colocado con la señal de internet,pero hace tiempo me hice con dos motorola digitales y estoy a la espera de poder hacerles algo.Tengo dudas sobre lo que dice Asturcabtv,pues aquí en Cantabria existen ya varios decos motorola como los míos,sin tarjeta y sin conexión telefónica,solo el coaxial,y funcionan a la perfección,todo en abierto.Son traídos de Valencia por mediación de... no se sabe y como poco cuestan 300€.Aunque me haga con uno de estos chipeados y lo habra no creo que valga de mucho pues faltaría el procedimiento,pero si puedo saco unas fotos para saber por donde pueden ir los tiros.

Grácias!, y si alguien quiere compartir info...ya sabe ;)

ciskar
24-11-2007, 00:33
interesados enviar mail Cuanto cuestan, son para el digital?

Rameho
24-11-2007, 10:25
Hola ciskar!
Tienes un mensaje personal.

esmaiqui
24-11-2007, 12:20
Hola rameho ayer compre un deco de ono digital y funciona de miedo,conectar y ver no tiene ninguna tarjeta.Un saludo.

buenas ciskar me podrias dar informacion sobre la compra, estoy desesperado, lo voe to negro, jeje

ciskar
26-11-2007, 22:07
Yo lo tengo desde el viernes y funciona de maravilla, si quieres mas informacion ponte en contacto con miguo.

buenas ciskar me podrias dar informacion sobre la compra, estoy desesperado, lo voe to negro, jeje

Rameho
26-11-2007, 23:07
Yo lo tengo desde el viernes y funciona de maravilla, si quieres mas informacion ponte en contacto con miguo.

ciskar,tienes 2 mensajes míos por privado.

mattttew
28-11-2007, 19:09
pues yo me interesaria 1 estoy kO

EL PRINCIPIA
30-11-2007, 18:31
Hola, soy nuevo, pero yo tambien estaria interesado, si es fiable.

picaroz
30-11-2007, 21:17
se sabe algo de los decos digitales, ke no veo naaaaaaaaa

picaroz
30-11-2007, 21:17
ciskar, cuanto te a costado?
y se pueden conseguir mas?

mosen
01-12-2007, 19:57
Hola:

Primero de todo presentarme soy mosen y estoy en castellon. despues de leer todo el post (que porcierto hay momentos de tensión...) estoy intrigado en la cosa de si hay alguna forma de poder ver todo *n* digital por la gorra.

Muchas gracias por todo

Mosen

GALLEGO
01-12-2007, 20:55
mosen? creo que dios no estaria deacuerdo en que cometieras un fraude ( aunque sea por una buena causa)
y hablando en serio de momento solo se puede ver pasndo por caja y comprar un deco amañado

alni1
04-12-2007, 14:48
yo estoy en cantabria,necesito uno,alguna pista para conseguirlo

josevi
11-12-2007, 19:32
se sabe algo de los decos digitales, ke no veo naaaaaaaaa


Aprobecho en mi primera intervención para saludar a todos los foreros!

He estado leyendo prácticamente todos los post y veo que todavía no se sabe de que manera se "trucan" los decos de *n* digital.Hay varias hipotesis,pero solo eso.Yo hasta ahora sabía florear los analógicos,tengo uno colocado con la señal de internet,pero hace tiempo me hice con dos motorola digitales y estoy a la espera de poder hacerles algo.Tengo dudas sobre lo que dice Asturcabtv,pues aquí en Cantabria existen ya varios decos motorola como los míos,sin tarjeta y sin conexión telefónica,solo el coaxial,y funcionan a la perfección,todo en abierto.Son traídos de Valencia por mediación de... no se sabe y como poco cuestan 300€.Aunque me haga con uno de estos chipeados y lo habra no creo que valga de mucho pues faltaría el procedimiento,pero si puedo saco unas fotos para saber por donde pueden ir los tiros.

Grácias!, y si alguien quiere compartir info...ya sabe ;)


Hola rameho ayer compre un deco de ono digital y funciona de miedo,conectar y ver no tiene ninguna tarjeta.Un saludo.


Yo lo tengo desde el viernes y funciona de maravilla, si quieres mas informacion ponte en contacto con miguo.

Hola ciskar, staría interesado en un deco de ono mencionado q funcionan sin targeta,su precio y demas. Espero q tus indagaciones yeguen a buen puerto y nos eches una mano sobre este tema. Espero ansioso tu respuesta, gracias.

cormoran
16-12-2007, 13:19
Hola CISCAR yo tambien estaria interesado en un deco de *n* enseñado sin target,para la zona de Murcia,a ver si me puedes mandar un privi con los detalles,gracias.

acustic
16-12-2007, 14:40
Hola CISCAR tienes un pribado.

ese_juanaco
16-12-2007, 14:50
...a ver a quien corresponda....

alguien sabe donde conseguir un deco *n* todo en abierto para la zona de alicante?¿cuanto cuestan? por favor contestar que estoy muy muy negro jeje


salu:0=2 a tod@s

krmz
19-12-2007, 17:41
yo tengo un deco con su correspondietne tarjeta y tampoco se me recarga. Me aparece el mesaje "tarjeta con credito insuficiente".

Eso si, veo todos los canales excepto los mirador, en los cuales hay que hacer el cargo en la tarjeta

Un amigo lo compro a la vez que yo y se el recarga sin problemas en un linea de telefono de telefonica. A mi me funciono la primera vez, osea la primera carga pero despues de mucho tiempo quise volver a cargarlo,y ahi esta puesto, enchufao al telefono y sin recarga

Incluso he probado en otro deco pero me permite ver todos los canales pero los miradores me dice que la tarjeta no corresponde al deco

No se si es problema del deco, de la tarjeta, o yo que se, puesto que lo he probado en otra linea de telefono y sigue igual

si alguien tiene alguna solucion lo agradezco

saludos

anrosa
19-12-2007, 20:46
hola alguien sabe como se mira cuantos eventos le quedan a una tarjeta hay alguna manera de mirarlo...un saludo

pol34
20-12-2007, 00:28
Para uno que anda perdido pero q lleva tiempo buscando una solucion para ver *n*...

un resumen plisss:

1. opciones para ver *n* digital (por zonas, en concreto en Sevilla antigua- a*na)

2. distintos modelos q hay de decos

3. opciones "tunnig" para los decos

4. donde y por cuanto pillarlos...

creo q un resumen de estas caracteristicas podria venir bastante bien para situarnos...

Por lo demas, se sabe algo mas d esos fabulosos decos..?¿?

wuannay
26-12-2007, 21:53
para madrid hay algo he leido casi todos los post y he acabado medio loco jejejeje

gambita
29-12-2007, 17:37
ante todo un saludo me presento y os doy a todos felices fiestas.
estoy interesado en un aparato digital o*o sin target* estaria por favor
agradecido si me podeis pasar donde adquirirlo. para la zona de MALAGA capital.
me podeis dejar un privi si no os molesta, gracias y un saludo para todos los de este foro.

trontron
02-01-2008, 10:47
Estoy interesado en comprar un deco digital de *n* cantabria.

ofertas a [email protected].

EL PRINCIPIA
04-01-2008, 01:48
Estoy interesado en comprar un deco digital de *n* cantabria.

ofertas a [email protected].

Yo tambien estoy interesado mandarme un privi, un saludo.

Grenuille
04-01-2008, 11:55
Hola a todos, os recuerdo que existen unas normas para este foro que impiden entre otras cosas poner mails en la página ya que esto es un foro y también impide que esto se convierta en un mercadillo, si quereis comprar o vender algo hacedlo mediante privados pero nunca en la propia página, echadle un ojo a las normas, si este hilo sigue este camino no tendré mas remedio que cerrarlo o eliminarlo.
Saludos

peixoto
11-01-2008, 14:45
hola a todos vivo en mallorca y querria saber si hay algun deco que funcione para ver ppv por la isla si alguien save algo que me rresponda por favor que me quede a oscuras con D+ saludos a todos gracias

peixoto
11-01-2008, 15:30
Hola rameho ayer compre un deco de ono digital y funciona de miedo,conectar y ver no tiene ninguna tarjeta.Un saludo.

hola soy nuevo en esto y tras leer todo este foro di con vuestro mensage y me interesaria saber si hay alguno que funcione en mallorca y si funciona que precio tienen gracias a todos

P.D. estoy a oscuras en di*****+

eiffel_6569
11-01-2008, 17:29
P.D. estoy a oscuras en di*****+

tú y todo el mundo no-abonado

greenpel
11-01-2008, 20:18
;)buenas,
yo estoy exatamente igual que tu. estoy
buscando una solucion. si encuentro algo te le digo, pero, en serio, si encuetras algo tu, comentalo

un saludo
;)

Rameho
11-01-2008, 23:20
hola!

A caído en mis manos un "DVI" en el que se ven casi todos los canales (menos unos pocos y las taquillas que no se ven) con solo enchufarlo.
¿por que no se ve todo como dicen?

guille91
12-01-2008, 09:28
yo la verdad es que estoy interesado en un deco digital de ono que alguien me mande un privi plis es para la zona de valencia

acontio
12-01-2008, 11:45
Por lo que se en Cantabria han empezado a venderse los decos de ono digital(hace ya unos 3 meses) y SI funcionan. Se ve TODO en abierto.
El problema es que son muy pocas personas los que lo pueden conseguir y depende por los intermediarios por los que pasen pueden llegar a costar sobre los 300€.
Abra que esperar a que lo vendan mas personas y sea más facil conseguir uno y a mejor precio.
Saludos.

alliresan
16-01-2008, 16:32
En Cantabria? Dónde? Cómo? Cuánto?

albidea4
19-01-2008, 19:02
Yo lo tengo desde el viernes y funciona de maravilla, si quieres mas informacion ponte en contacto con miguo.

:rolleyes::p Creo que has comentado que tu Deco de *N* no tiene tarjeta, yo vivo en ZGZ y tengo uno, pero con tarjeta y funciona MUY bien, lastima lo del mensaje " Tarjeta con credito insuficiente...", en otra ocasion ya me ocurrio, me quede sin Saldo y un buen dia se CARGO.
Mi pregunta como te funciona a ti lo de los Miradores y Futbol ? puedes "comprar" todo lo que quieras SIN limite ?.
Ya me diras algo sobre esto. De todas las maneras si sabes de algun sitio donde se puedan conseguir Decos SIN tarjeta y el precio pues.. muy agradecido.
Como me "meto" en tantos sitios, por favor podrias enviarme " tus conocimientos sobre el tema" a : [email protected] :D:D:0=

albidea4
19-01-2008, 19:03
Yo lo tengo desde el viernes y funciona de maravilla, si quieres mas informacion ponte en contacto con miguo.

:rolleyes::p Creo que has comentado que tu Deco de *N* no tiene tarjeta, yo vivo en ZGZ y tengo uno, pero con tarjeta y funciona MUY bien, lastima lo del mensaje " Tarjeta con credito insuficiente...", en otra ocasion ya me ocurrio, me quede sin Saldo y un buen dia se CARGO.
Mi pregunta como te funciona a ti lo de los Miradores y Futbol ? puedes "comprar" todo lo que quieras SIN limite ?.
Ya me diras algo sobre esto. De todas las maneras si sabes de algun sitio donde se puedan conseguir Decos SIN tarjeta y el precio pues.. muy agradecido.
Como me "meto" en tantos sitios, por favor podrias enviarme " tus conocimientos sobre el tema" :D:D:0=

soryss
20-01-2008, 14:01
hola ciskar sabes de algun sitio donde se puedan conseguir Decos SIN tarjeta y el precio pues.. muy agradecido.
saludos

SxR
22-01-2008, 03:05
Bueno, se que en Galicia funciona el deco digital -porque yo tengo uno :)-, por si alguien quiere info, pero en el resto de españa no se.

jacinto.be
23-01-2008, 11:18
Puede alguien mandarme un privado con informacion y precio para ver todo en Madrid.

acb1
24-01-2008, 10:25
En Girona funciona el digital desde hace mas de 1 año, probado y comprobado somos ex-auna

jjo
25-01-2008, 11:13
buenas a todos soy de cadiz y por lo ke he leido creo ke si los decos fisicamente parecen ke no les tocan y se ve todo o casi todo es posible k lo hagan desde la cabecera de ono

pisatuercas
25-01-2008, 12:55
Yo lo tengo desde el viernes y funciona de maravilla, si quieres mas informacion ponte en contacto con miguo.

hola me gustaria saber algo de ese tema y por cuanto puede salir uno para murcia

Rameho
26-01-2008, 23:45
Hola,
Se que esto no es para compraventa per si a alguien le interesa el mío,lo vendo,está abierto al 80%.Sirve para Valencia,Huelva, Castellon, Alicante, Murcia, Mallorca, Cantabria, Albacete, Cadiz ...
Si le interesa a alguien mandar dirección de correo por privado y os informo de precio y los canales que habre.

kekoelx
29-01-2008, 23:52
Hola, pues eso yo como muchos estaria interesado en un deco para ONO,
si alguien ofrece algo para la zona de alicante que me mande privado.


GRACIAS

iRRa
03-02-2008, 15:10
Hola que tal? Acabo de conseguir un Motorola DVI 3000 nuevo sin usar, y aún no lo he conectado ni nada.

Que me haría falta para que este funcione y se vea todo? O así lo puedo conectar? No lo he conectado no vaya a ser que ono pille la MAC del deco o algo no?

Comentadme a ver porfavor porque no paro de leer y no doy con nada claro

collyado
04-02-2008, 22:26
¿Sabemos ya algo de los ABQ? se le puede hacer algo?

CpC
24-02-2008, 19:56
Hola, yo tengo un ABQ desde hace dos años, no se el tipo de preparacion que lleva el deco ni la tarjeta pero no em ha dado ni un solo fallo desde q lo adquiri, no problemas de credito con la tarjeta y puedo comprar todo lo de la taquilla, yo vivo en ALmería, la lastima es q ahora no localizo al vendedor. Me gustaria que Ciskar me mandase un privado indicandome el precio y caracteristicas de esos ABQ y me gustaria preguntar al foro si adquiriendo el ABQ y clonando la tarjeta q yo tengo actualmente ( q me expliquen q hadware tengo q adquirir) prodria funcionar la cosa o tb depende de q el deco vaya chipeado, si es q va no lo se.

Un saludo a todo.

kazainfo76
25-02-2008, 03:26
Tengo contratado todo *n* y no quiero que me saquen mas los cuartos. Por favor ciskar mándame un privi sobre abq el cuál tengo. Saludos y por favor respóndeme.

kikolin
25-02-2008, 11:44
Hola... Alguna solucion para *n* en Guadalajara? Que es lo que hay por ahi?

jjo
01-03-2008, 17:59
hola a todos yo llevo esperando uno de esos decos motorolas k supuestamente lo abren todo y se tienen ke haber kedado por el camino pk el k dice k los va a traer por medio de un colega k los ve k se lo compro a otro k los trae de asturias y ..............como sp nada de nada si alguien sabe de verdad para zona de cadiz k mande priv me conformo hasta con uno analogico chipeado.gracias!

guille91
01-03-2008, 18:20
hola mirar ha venido hoy el tecnico a mi casa a instalar todo lo del ono,me han puesto el motorola este nuevo digital,el caso es que queria saber si alguien me podria vender un deco digital pirateado o que me dijeran algo para poder hacer y ver todos los canales?gracias salu2--->

jjo
09-03-2008, 21:15
hola amigos segun he leido en otros foros parece ser k los decos dvi full k andaban por todos los sitios(yo no vi ninguno pero algunos afirman ke si)han caido los han dao de baja desde el mismo sitio ke lo hicieron desde dentro asi k ni compreis y los k lo hicisteis espero k lo ayais amortizado un pokito.

ungamo
10-03-2008, 23:43
Buenas, me gustaria saber donde encontrar el manual para ver ONO DIGITAL en abierto, estoy buscando por estos foros y no encuentro nada para poder empezar de cero por asi decirlo.
Tengo un motorola dvb que tendra sus 2 años (es el que tiene ya la TDT) y seria para la zona de valencia por si sirve de algo.

Gracias!!!

elcoyo
19-03-2008, 22:12
hola tengo un motorola digital de ono dado de baja sele puede hacer algo

para ver todo que me hace falta gracias


un saludo

umbrio
22-04-2008, 17:14
Bueno, estuve trabajando en una subcontrata de ONO un tiempo y me he fijado que cuando conectan al DECO, este se baja un firmware. Seguramente modificando este, o en la tarjeta, esta la clave. No creo que se controle el acceso desde la central. El deco debe comparar algo con la tarjeta y permitir o no el acceso. Ahora....¿Como acceder al firmware? ni papa juas juas.

tamaroque
22-09-2008, 15:02
capitansport pasate por AQUI (http://www.hackhispano.com/foro/announcement.php?f=28) ¿ el punto 3 es el que buscas? o ¿ lo que buscas es informacion?,saludos.

capitansport
22-09-2008, 19:59
hola tamaroque.
espero que no lo hayas interpretado mal:(
solo quiero informacion,ya que estoy un poco perdido.
solo quiero informacion de si existe algo o si por el contrario no hay nada.
un saludo.;)

tamaroque
22-09-2008, 20:49
Ok,yo solo lo comentaba,por si acaso,especifica para que y zona,haber que si hay algo por ahi,saludos.

capitansport
22-09-2008, 23:25
pues sería para cordoba.
yo tenía antes el cubo negro con la ruletilla,pero ahora estoy perdido...nosé que hay por ahí.
no me interesan los miradores solo los canales normales.
un saludo.

tamaroque
22-09-2008, 23:33
¿Los normales no los cojes colocando la antena directa al TV?,supongo que si lo que quieres son mas que los normales te hace falta algun deco si veo algo edito,saludos.