timmytimmy Geplaatst: 28 januari 2009 Geplaatst: 28 januari 2009 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.
satbikkel Geplaatst: 28 januari 2009 Geplaatst: 28 januari 2009 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
timmytimmy Geplaatst: 1 februari 2009 Auteur Geplaatst: 1 februari 2009 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.
Zilverster Geplaatst: 2 februari 2009 Geplaatst: 2 februari 2009 @timmytimmy, Interresant draadje ............ 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.
satbikkel Geplaatst: 2 februari 2009 Geplaatst: 2 februari 2009 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
Zilverster Geplaatst: 3 februari 2009 Geplaatst: 3 februari 2009 @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.
timmytimmy Geplaatst: 4 februari 2009 Auteur Geplaatst: 4 februari 2009 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.
woutje2 Geplaatst: 5 februari 2009 Geplaatst: 5 februari 2009 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 Toch wel grappig om te zien hoe FD geanaliseerd word:) woutje
Gast xxyyz Geplaatst: 14 februari 2009 Geplaatst: 14 februari 2009 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 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
willem53 Geplaatst: 2 maart 2009 Geplaatst: 2 maart 2009 Hoi timmytimmy, Ben jij er al achter wat de pp en step doen in het programma? MVGR, Willem53
timmytimmy Geplaatst: 4 maart 2009 Auteur Geplaatst: 4 maart 2009 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).
Gast xxyyz Geplaatst: 4 maart 2009 Geplaatst: 4 maart 2009 pp = aantal keren INS herhalen je moet de pp zo zien: for(int i = 0; i < pp; i++) { execute_ULCMD("xxxxxxxxxx"); }
willem53 Geplaatst: 4 maart 2009 Geplaatst: 4 maart 2009 Da's toch vreemd, als ik de eerste pp op 10 zet geeft hij vaker een 06 zonder dat hij iets schrijft overigens. In ieder geval bedankt voor de uitleg.
Aanbevolen berichten
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 accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen