Ga naar inhoud


Aanbevolen berichten

Geplaatst:

Sinds een aantal weken heb ik een 100 Mhz gemodificeerde unlooper uit Italie. Er zit een onboard jtag interface om de xilinx te updaten. Verder zit er alleen een 4 pin dipswitch op die aangesloten is op de XC9536 CPLD (programmeerbare klok). Bij de unlooper zat echter geen informatie over de te gebruiken files settings etc. Dus ben ik zelf maar gaan meten/uitzoeken. Eerst heb ik een schema gemaakt (door het schema van de 5030 aan te passen). Een aantal verschillen:

 

- Pin14 i.p.v. pin15 van de atmel gaat naar het LM538 buffer circuit (die uiteindelijk de mux ingangen voor de voedingsspanning van de kaart levert.

- Pin15 i.p.v. pin16 van de atmel detecteerd of er een kaart in het iso slot zit.

- een jtag interface met subd25 connector om in circuit te programmeren.

 

Ik betwijfel echter dat pin 14 en pin 15 door de v5b4 (of v7.exe.xxxx.hex) gebruikt worden. Volgens mij dient uitgang 14 om de spanning op de kaart te kunnen glitchen ( met andere software in de atmel). Kan iemand dit bevestigen?

 

Ik gebruik de unlooper met FD_lite.

 

1. de hex en eeprom file van de atmel: v7.exe.program.hex and v7.exe.eeprom.hex (deze melden zich als v5b4 als FD_lite communiceerd met de unlooper.

 

2. de sch.jed file. Hier heb ik verschillende versies van gevonden. Welke is nu de goede? Na wat probreren bleken de volgende te werken (geen identieke files, wel identieke functionaliteit):

 

- xilinxsch.jed 100MHZ.jed

- sch.jed

 

Maar wat doet die glitch klok nu precies? Dus hebben we maar ff een logic analyzer erbij gepakt:

 

xilinxsch.jed 100MHZ.jed + sch.jed

 

??????_____???????_____???????_____??????? Atmel clock: 2 Mhz

_____|?????|_____|?????|_____|?????|_____ Xilinx pin 8

 

??????___________?????????????___________ ISO clock: 1MHz

_____|???????????|___________|???????????? Xilinx pin 9

 

_____?????????????___________????????????

?????|___________|???????????|___________ card clock: 1 Mhz

 

??????___________??_?????????___________ ISO clock met glitch

_____|???????????|_|?|_______|???????????? glitch clock: 20 Mhz

 

_____??????????????_???_______????????????

?????|___________|?|_|???????|___________ card clock met glitch

 

Vraagtekens wegdenken anders krijg ik de ascii art niet voor elkaar op dit board.

 

 

Het kloksignaal wat naar de kaart gaat (C3) is de geinverteerde ISO clock (PIN9). Glitch heb ik geforceerd door pin 7 en 8 van de atmel tijdelijk te verbreken met de rest van het circuit (zonder de kaart in de lezer natuurlijk).

 

De atmel controller communiceerd met een baudrate van 2688 baud (1 Mhz / 372 volgens ISO protocol) (breedte van de startbit heb ik gemeten). Het programma FD_lite communiceerd met de unlooper op 9600 Baud (startbit met pulsbreedte van 104.4 us)

 

Verder heb ik de 4 jumpers die aan de XC9536 hangen (pin 13,14,18,19) gespeeld. Deze hebben geen invloed op de glitch. Dit betekend gewoon dat ze niet worden gebruikt door het programma dat op de XC9536 geprogrammeerd is.

 

Het verschil met een andere jed file: sch_top_4_5MHZ.jed

ATMEL clock: 4.545 Mhz

ISO clock: 2.272 Mhz

glitch clock: 20 Mhz (50 ns)

 

Deze sch_top_4_5MHZ.jed firmware van de XC9536 CPLD werkt niet met het programma FD_lite in combinatie met de v5b4 software op de at90s2313.

 

Volgende stap is het uitzoeken wat die glitch parameters in de software precies doen.


Geplaatst:

als je nog andere software wil testen voor de atmel en de xlinx zoek is op grx8 of grx12 voor atmel en 10mhz voor de xlinx.

 

 

ik zal ook eens opscheppen:

humax5400, humax5400Z,philips 6072, 2x nokia dbox2 kabel, 1x nokia 9500 sat,

sagem dbox2 kabel, samsung 9401r kabel en een lege bankrekening

Geplaatst:

De unlooper timings in v5b4 etc (voor seca kaart):

 

De communicatie van FD_lite, Black&White naar de unlooper gaat via het RS232 protocol

Baudrate: 9600

databits: 8

parity: none

stopbit: 1

logic sense: negative

 

De communicatie van de unlooper met v5b4 en sch.jed gaat via het ISO protocol (ISO nog iets):

baudrate: 2688

databits: 8

parity: even

stopbit: 1

logic sense: positive

 

Bij het communiceren met de unlooper wordt de instructie samen met de unlooper settings naar de unlooper gestuurd. De instructie zit geinverteerd in de message (waarschijnlij omdat RS232 logisch 0 een hoog niveau heeft). Door de message te inverteren ontstaat de instructie en data.

 

Voor het schrijven van de serial wordt het volgende naar de unlooper gestuurd:

 

Cmd: A0 24 10 F7 0E 06 C4 7C CF FF FF EF 80 FC C7 FF XX FF FF XX XX XX XX 20 00 2B 09 20 03 04 0A 20 01 61 0C 25 FE 00 A1

Inv: FA DB F7 10 8F 9F DC C1 0C 00 00 08 FE C0 1C 00 XX 00 00 XX XX XX XX FB FF 2B 6F FB 3F DF AF FB 7F 79 CF 5B 80 FF 7A

 

Dit kan worden omgezet in een instructie, data en glitch settings.

 

Ins: C10C000008

Data: 00XX0000XXXXXXXX

G1: 20 00 2B 09

G2: 20 03 04 0A

G3: 20 01 61 0C 25

 

Hierin is de laatste parameter 09 in G1 een lange klokglitch (glitchen voor 1.5 us), de laatste parameter 0A in G2 een normale klokglitch (glitchen voor 1.0 us) en de laatste parameter 0C in g3 een voltage glitch, gevolgd door een pauze en weer een voltage glitch. De parameter 00 2B geeft de offset vanaf de standaard offset (volgens mij 32 us) in 0.5 us/bit. Interessant is te zien dat er naast klokglitch ook spanning geglitched wordt. Ik wist dat het interface dit kan, dacht alleen dat dit niet gebruikt werd. O ja, waar de kruisjes staan komt de serial te staan. Het programma FDLite genereerd de bovenstaande strings vanzelf. Als je echter met de kloktijden wilt spelen dan voldoet een rs232 log van het programma FDLite. De glitch parameters neem ik vervolgens over in Black&White. Dit omdat de glitch optie in FDLite niet werkt (eerst wordt de instructie en data verzonden zonder glitch parameters, vervolgens stuurt de unlooper deze naar de kaart en dan komen de glitch parameters binnen die dan veel te laat worden uitgevoerd). Ook kan in B&W de glitches uit worden gezet en de instructie nog steeds worden verstuurd (in het glitch menu).

 

Interessant is ook om de glitch parameters van FDLite (voor de NL kaart) te vergelijken met een poolse:

poolse kaart (B&W)-> g1: 20002109 g2: 2003010A g3: 2001650C25

nl kaart (FDLITE) -> g1: 20002B09 g2: 2003040A g3: 2001610C25

 

Blijkbaar zitten er een aantal instructies extra in de nl kaart tijdens het afchecken van de gestuurde data. Hier kun je dus alleen achter komen door lang te proberen of als je de instructies hebt (kaart dump).

 

Voor het FF'en van de PBM

 

Cmd: A0 35 10 F7 0E 06 C4 7C FD FF FF 57 80 FC D4 DB FF A9 FE 00 00 00 00 00 00 00 00 BE FF FF FF FF FF FF FF FF 20 00 2B 09 20 03 04 0A 20 07 87 0B 20 04 CB 0C 1A FE 00 A1

Inv: FA 53 F7 10 8F 9F DC C1 40 00 00 15 FE C0 D4 24 00 6A 80 FF FF FF FF FF FF FF FF 82 00 00 00 00 00 00 00 00 FB FF 2B 6F FB 3F DF AF FB 1F 1E 2F FB DF 2C CF A7 80 FF 7A

 

Ins: C140000015

Data: 24006A80FFFFFFFFFFFFFFFF820000000000000000

G1: 20 00 2B 09

G2: 20 03 04 0A

G3: 20 07 87 0B

G4: 20 04 CB 0C 1A

 

Voor het schrijven van een key (in dit geval key F0 provider 1:

 

Cmd: A0 36 10 F7 0E 06 C4 7C FD FF FF 97 80 FC D5 DB FF A9 F6 F5 XX XX XX XX XX XX XX XX BE FF FF FF FF FF FF FF FF 20 00 2B 09 20 03 04 0A 20 07 87 0B 20 04 CB 0C 1A FE 00 A1

Inv: FA 93 F7 10 8F 9F DC C1 40 00 00 16 FE C0 54 24 00 6A 90 50 XX XX XX XX XX XX XX XX 82 00 00 00 00 00 00 00 00 FB FF 2B 6F FB 3F DF AF FB 1F 1E 2F FB DF 2C CF A7 80 FF 7A

 

Ins: C140000016

Data: 24006A9050XXXXXXXXXXXXXXXX820000000000000000

G1: 20 00 2B 09

G2: 20 03 04 0A

G3: 20 07 87 0B

G4: 20 04 CB 0C 1A

 

Het programma Black en White heeft ook een bugje: als de data of instructie spaties bevat wordt er corrupte data naar de unlooper gestuurd.

Geplaatst:

@timmytimmy,

 

 

Interresant draadje laugh ............

 

 

Citaat:
Voor het schrijven van de serial wordt het volgende naar de unlooper gestuurd:

 

Cmd: A0 24 10 F7 0E 06 C4 7C CF FF FF EF 80 FC C7 FF XX FF FF XX XX XX XX 20 00 2B 09 20 03 04 0A 20 01 61 0C 25 FE 00 A1

Inv: FA DB F7 10 8F 9F DC C1 0C 00 00 08 FE C0 1C 00 XX 00 00 XX XX XX XX FB FF 2B 6F FB 3F DF AF FB 7F 79 CF 5B 80 FF 7A

 

Dit kan worden omgezet in een instructie, data en glitch settings.

 

Ins: C10C000008

Data: 00XX0000XXXXXXXX

G1: 20 00 2B 09

G2: 20 03 04 0A

G3: 20 01 61 0C 25

 

En, vooral voor de anderen, niet vergeten de volledige 8 byte's te nemen van het Serial :

 

Ins: C10C000008

Data: 00XX0000XXXXXXXX

 

Of het controle getal ( hier onder in rood weergegeven ) over de laatste 4 byte's ( Serial in blauw weergegeven ) vooraf te berekenen :

 

Ins: C10C000008

Data: 00XX0000XXXXXXXX

 

 

Gr.

 

 

Zilverster.

 

You are "The last in line" - Ronnie James Dio R.I.P.

Geplaatst:

ik neem aan dat je het hebt over de glitch versturen met B&W.

 

maar als je nu het serial veranderd/schrijft met het nl progje. word dan dit controlle getal gelijk mee veranderd? die hoef ik nergens in te vullen bij het serial veltje.

 

oja, heb hier 3 versie van B&W, 0.1, 0.1F, 0.1I

ik zal ook eens opscheppen:

humax5400, humax5400Z,philips 6072, 2x nokia dbox2 kabel, 1x nokia 9500 sat,

sagem dbox2 kabel, samsung 9401r kabel en een lege bankrekening

Geplaatst:

@satbikkel,

 

 

Citaat:
ik neem aan dat je het hebt over de glitch versturen met B&W.

 

Klopt, hoe Flying Dutchman daar mee om gaat weet ik niet, het kan zijn dat de berekening daar in verwerkt zit, gr.

 

 

Zilverster.

You are "The last in line" - Ronnie James Dio R.I.P.

Geplaatst:

De communicatie met de unlooper is net als bij de smartcard opgebouwd uit commands en nanocommands. Een aantal (of alle?) van de volgende commando's worden gebruikt:

 

(bron: vertaling van: disassembly Super unlooper firmware "SU-2", gecommentariseerd door == en max9701s)

 

; Super unlooper firmware "SU-2"

; Disassembled by Atmel AVR Disassembler v130

; Commented by == and max9701s

; Jul 20 2002

; Revision 0.13

 

; Commando:

;

; 0x-7x: geeft lengte van nanocommando blok

;

; 8x: zend SENSE/START status naar seriele poort

; 9x: zend unlooper firmware versie naar seriele poort

; Ax: verander unlooper activiteits status

; Bx: verander voltage buffer niveau

; Cx: niet geimplementeerd

; Dx: verstuur nullen naar seriele poort

; Ex: verstuur versleutelde eeprom (64 bytes) naar de seriele poort

; Fx: ontvang versleuteld nanacommando (16 bytes) en voor uit

;

; Nanocommando:

;

; 00: beeindig nanocommands sessie

; 01: reset kaart

; 02: laat kaart in reset status staan

; 03: laat kaart I/O lijn als output cleared

; 04: laat kaart I/O lijn in input mode met pull-up

; 05: beeindig als CARD I/O ingesteld is

; 06: beeindig als CARD I/P niet ingesteld is

; 07: pauzeer als CARD I/O niet ingesteld is en beeindig op timeout

; 08: pauzeer als CARD I/O ingesteld is an beeindig op timeout

; 09: klok/voedingsspanning glitch

; 0A: klok glitch

; 0B: voedingspanning glitch

; 0C: voedingspanning glitch, pauze en voedingspanning glitch

; 0D: klok glitch, pauze en voedingspanning glitch

; 0E: stel timeout waarde in

; 0F: beeindig nanocommands sessie

;

; 1x: selecteer kaart tx/rx routines

; 2x: pauze (max 0x0Fxxyy, min 0x00xxyy)

; 3x: pauze (max 0x1Fxxyy, min 0x10xxyy)

; 4x: pauze (max 0x2Fxxyy, min 0x20xxyy)

; 5x: pauze (max 0x3Fxxyy, min 0x30xxyy)

; 6x: pauze (max 0x4Fxxyy, min 0x40xxyy)

; 7x: pauze (max 0x5Fxxyy, min 0x50xxyy)

; 8x: ontvang en sla bytes van kaart op (x + 1)

; 9x: ontvang en sla bytes van kaart op (x + 17)

; Ax: ontvang en sla bytes van kaart op (x + 33)

; Bx: ontvang en sla bytes van kaart op (x + 49)

; Cx: zend bytes naar kaart (x + 1)

; Dx: zend bytes naar kaart (x + 17)

; Ex: zend bytes naar kaart (x + 33)

; Fx: zend bytes naar kaart (x + 49)

 

Als ik bijvoorbeeld naar de write serial communicatie naar de unlooper kijk:

 

A0 24 10 F7 0E 06 C4 7C CF FF FF EF 80 FC C7 FF XX FF FF XX XX XX XX 20 00 2B 09 20 03 04 0A 20 01 61 0C 25 FE 00 A1

 

A0: deactiveer instructie in unlooper

24: er volgen 36 bytes (24 hex) nano commandos

10: selecteer kaart tx routine

???? F7: zend 49+7 bytes naar de kaart (buffergrootte??)

0E 06: set timeout waarde in op 06

C4: zend 5 bytes naar de kaart

7C CF FF FF EF: Ins C10C000008

80: ontvang en sla 1 byte van de kaart op

???? FC: zend 49+12 bytes naar de kaart (buffergrootte??)

C7: zend 7+1 bytes naar de kaart

FF XX FF FF XX XX XX XX: Ins 00 XX 00 00 XX XX XX XX

20 00 2B: pauzeer 0x00002B klok cycles (??? verify)

09: klok/voedingsspanning glitch (bij mij 1.5 us klokglitch)

20 03 04: pauzeer 0x00304 klok cycles (??? verify)

0A: klok glitch

20 01 61: pauzeer 0x00161 klok cycles (??? verify)

0C 25: voedingsglitch, pauzeer 25 klokcycles, voedingsglitch

FE: beeindig nanocommando sessie

00: beeindig nanocommando sessie

A1: activeer uitvoer instructie in unlooper

 

Ik besef dat de documentatie van SU-2 de werking van V5B4 niet geheel dekt ( de nano's FC en F7 hierboven lijken niet te kloppen en de delays hierboven zijn ook niet 1 op 1 vergelijkbaar met wat ik heb gemeten), maar het gaat hier om het idee. Zodra ik weer wat ga meten/proberen, zal ik de zaken hierboven updaten.

Geplaatst:
Origineel bericht van: Zilverster

Klopt, hoe Flying Dutchman daar mee om gaat weet ik niet, het kan zijn dat de berekening daar in verwerkt zit, gr.
Zilverster.


Aardig he:) FD berekend de checksum byte al voor je
Scheeld weer rekenen wink

Toch wel grappig om te zien hoe FD geanaliseerd word:)

woutje
  • 2 weken later...
Geplaatst:
Citaat:
Ik besef dat de documentatie van SU-2 de werking van V5B4 niet geheel dekt ( de nano's FC en F7 hierboven lijken niet te kloppen en de delays hierboven zijn ook niet 1 op 1 vergelijkbaar met wat ik heb gemeten), maar het gaat hier om het idee. Zodra ik weer wat ga meten/proberen, zal ik de zaken hierboven updaten.


hier de correcte interpretatie van de ins wink

Code:
A0				CmdAx_SetLEDs24				LEN 2410				Ins1x_SetRxTxPntrs ( fidi = 372 )F7				VccPWM_off0E 06				Ins0E_SetWDTimeoutC4 7C CF FF FF EF		InsCx_TxBlkToCard ( x + 1 )80				Ins8x_RxBlkFromCardFC				StartStopWatchC7 FF XX FF FF XX XX XX XX	InsCx_TxBlkToCard ( x + 1 )20 00 2B			Ins2x_Delay09				Ins09_GateAltClk ( alternate Clock for 2 cycles )20 03 04			Ins2x_Delay0A				Ins0A_GateAltClk ( alternate Clock for 1 cycles )20 01 61			Ins2x_Delay0C 25				Ins0C_GlitchDelayGlitch ( set PD_Glitch 2 cycles # delay XX # set PD_Glitch 2 cycles )FE				DumpCard_Tim1_off00				flush unlooper buffer and send all to PCA1				CmdAx_SetLEDs
  • 3 weken later...
Geplaatst:

glitch parameters

20 0001 0005 0A G1 pp step

 

20: geeft ins2x delay aan

0001: geeft begin delay aan (in clockpulsen)

0005: geeft eind delay aan (in clockpulsen)

0A: clock glitch

pp: ????? als > 0 dan zijn opvolgende glitch commando's anders???? Voorbeeld heb ik zo direct niet bij de hand

step: grootte van de stap tussen begin delay en eind delay.

 

Voorbeeld voor step: 2 in het voorbeeld hierboven

20 0001 0A

20 0003 0A

20 0005 0A

20 0001 0A

20 0003 0A

etc.

 

Zodra je pas weet waar je moet glitchen (+- de correcte delay) is het pas zinnig met deze waardes te gaan spelen. Dit kun je eigenlijk pas doen als je weet waar welke instructies in de kaart afgehandeld worden (als je de achterliggende instructies gedisassembled hebt jeq, jneq etc).

Geplaatst:

pp = aantal keren INS herhalen

 

je moet de pp zo zien:

 

for(int i = 0; i < pp; i++)

{

execute_ULCMD("xxxxxxxxxx");

}

 

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...