Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w008c51e/wiki/includes/MagicWord.php on line 860
Smartcardchip - Bettyhacks.com - Hack BettyTV-Remote

Smartcardchip

From Bettyhacks.com - Hack BettyTV-Remote
Jump to: navigation, search
Line 1: Line 1:
 +
trocvit
 
=Hardware=
 
=Hardware=
 
[[Image:SmartcardChip1.jpg|thumb|Der Smartcard-Chip ist rot umrandet]]
 
[[Image:SmartcardChip1.jpg|thumb|Der Smartcard-Chip ist rot umrandet]]
Line 24: Line 25:
 
* CPU Pin 132 (P2.17) steuert den nReset pin. Wird der CPU-Pin auf LO gesetzt ist der Reset aktiv.
 
* CPU Pin 132 (P2.17) steuert den nReset pin. Wird der CPU-Pin auf LO gesetzt ist der Reset aktiv.
  
* CPU Pin 78 (P0.10) steuert über einen externen Inverter den Power Pin. Wird der CPU-Pin auf LO gesetzt wird der Chip mit Spannung versorgt.
+
* CPU Pin 78 (P0.10) steuert über einen externen Inverter den Power Pin. Wird der CPU-Pin auf LO gesetzt wird der Chip mit Spannung versorgt.
  
* CPU Pin 40 (XCLK) ist über einen externen Frequenzteiler mit dem Takteingang des Chips verbunden. Im Betrieb wird über den CPU-Pin der 7,5 MHz Peripherietakt ausgegeben. Durch den Frequenzteiler wird der Takt halbiert. Der Smartcard-Chip wird dadurch mit mit 3,75 MHz getaktet.
+
* CPU Pin 40 (XCLK) ist über einen externen Frequenzteiler mit dem Takteingang des Chips verbunden. Im Betrieb wird über den CPU-Pin der 7,5 MHz Peripherietakt ausgegeben. Durch den Frequenzteiler wird der Takt halbiert. Der Smartcard-Chip wird dadurch mit mit 3,75 MHz getaktet.
  
* CPU Pin 75 (TXD1) und CPU Pin 75 (RXD1) sind mit dem Daten Pin verbunden. Die Datenrate ist 1/64 der Taktfrequenz, also 58593,75 Bit/s und somit nahe an der von einem PC unsterstützen Baudrate von 57600 Bit/s (nur ca. 1,7% Abweichung).  
+
* CPU Pin 75 (TXD1) und CPU Pin 75 (RXD1) sind mit dem Daten Pin verbunden. Die Datenrate ist 1/64 der Taktfrequenz, also 58593,75 Bit/s und somit nahe an der von einem PC unsterstützen Baudrate von 57600 Bit/s (nur ca. 1,7% Abweichung).  
  
Zum Experimentieren kann man den Chip auslöten und z.B. mit dem Mastermouse-Interface verbinden. Die andere Seite des Interfaces wird an die serielle PC Schnittstelle angeschlossen. Jetzt kann man mit einen Programm wie z.B. WinExplorer Kommandos an den Chip schicken und die Antworten auswerten. Dadurch lässt sich das Übertragungsformat herausfinden und man kann eine Kommandoliste aufstellen.
+
Zum Experimentieren kann man den Chip auslöten und z.B. mit dem Mastermouse-Interface verbinden. Die andere Seite des Interfaces wird an die serielle PC Schnittstelle angeschlossen. Jetzt kann man mit einen Programm wie z.B. WinExplorer Kommandos an den Chip schicken und die Antworten auswerten. Dadurch lässt sich das Übertragungsformat herausfinden und man kann eine Kommandoliste aufstellen.
  
 
=ATR=
 
=ATR=
  
Nachdem beim Chip ein Reset ausgeführt wurde, wird wie bei Smartcards üblich, ein ATR ausgegeben. Jedoch ist dieser bei der Betty properitär.
+
Nachdem beim Chip ein Reset ausgeführt wurde, wird wie bei Smartcards üblich, ein ATR ausgegeben. Jedoch ist dieser bei der Betty properitär.
  
 
<PRE>
 
<PRE>
Line 41: Line 42:
 
</PRE>
 
</PRE>
  
* Das erste Byte enthält die Anzahl der ATR Bytes incl. des Längenbytes selbst.
+
* Das erste Byte enthält die Anzahl der ATR Bytes incl. des Längenbytes selbst.
 
* Das zweite Byte ist das Lifecycle Byte: 1=Virgin, 2=Personalisiert
 
* Das zweite Byte ist das Lifecycle Byte: 1=Virgin, 2=Personalisiert
* Das letzte Byte ist eine XOR Prüfsumme über alle vorherigen Bytes.
+
* Das letzte Byte ist eine XOR Prüfsumme über alle vorherigen Bytes.
  
 
Bei allen Infineon-Chips gibts eine von Hersteller undokumentierte Funktion den Chip dazu zu bringen statt die Applikation zu starten den Hersteller-ATR auszugeben.
 
Bei allen Infineon-Chips gibts eine von Hersteller undokumentierte Funktion den Chip dazu zu bringen statt die Applikation zu starten den Hersteller-ATR auszugeben.
Line 55: Line 56:
  
 
* Die sechs Byte mit xx enthalten eine eine vom Hersteller vergebene Seriennummer. Betty verwendet die gleiche Nummer (im Batteriefach der Fernbedienung).
 
* Die sechs Byte mit xx enthalten eine eine vom Hersteller vergebene Seriennummer. Betty verwendet die gleiche Nummer (im Batteriefach der Fernbedienung).
* Die fünfte Stelle gibt den Chiptyp an: 9C = SLE66C24PE
+
* Die fünfte Stelle gibt den Chiptyp an: 9C = SLE66C24PE
  
 
=Protokoll=
 
=Protokoll=
Line 62: Line 63:
 
{| class="wikitable" | border="1"
 
{| class="wikitable" | border="1"
 
|-
 
|-
! Längenbyte
+
! Längenbyte
 
! Kommandobyte
 
! Kommandobyte
 
! Optionale Datenbytes
 
! Optionale Datenbytes
 
|-
 
|-
| Enthält die Anzahl der zum Chip gesendeten Bytes incl. des Längenbytes selbst.
+
| Enthält die Anzahl der zum Chip gesendeten Bytes incl. des Längenbytes selbst.
| Gibt an welche Aktion der Chip durchführen soll.
+
| Gibt an welche Aktion der Chip durchführen soll.
 
| Bei manchen Kommandos nicht vorhanden.
 
| Bei manchen Kommandos nicht vorhanden.
 
|}
 
|}
Line 75: Line 76:
 
{| class="wikitable" | border="1"
 
{| class="wikitable" | border="1"
 
|-
 
|-
! Längenbyte
+
! Längenbyte
 
! Statusbyte
 
! Statusbyte
 
! Optionale Datenbytes
 
! Optionale Datenbytes
! Prüfsummenbyte
+
! Prüfsummenbyte
 
|-
 
|-
| Enthält die Anzahl der Antwortbytes incl. des Längenbytes selbst.
+
| Enthält die Anzahl der Antwortbytes incl. des Längenbytes selbst.
| An diesem Byte kann man erkennen ob das Kommando feherfrei ausgeführt wurde oder fehlgeschalgen ist.
+
| An diesem Byte kann man erkennen ob das Kommando feherfrei ausgeführt wurde oder fehlgeschalgen ist.
 
| Bei manchen Kommandos nicht vorhanden.
 
| Bei manchen Kommandos nicht vorhanden.
| XOR Prüfsumme über alle vorherigen Bytes dieses Antwortblocks
+
| XOR Prüfsumme über alle vorherigen Bytes dieses Antwortblocks
 
|}
 
|}
  
Line 95: Line 96:
 
|-
 
|-
 
| 15
 
| 15
| Das Kommando wurde erfolgreich ausgeführt
+
| Das Kommando wurde erfolgreich ausgeführt
 
|-
 
|-
 
| 16
 
| 16
| Das Kommandobyte ist zwar gültig, jedoch nicht die übergebenen Daten
+
| Das Kommandobyte ist zwar gültig, jedoch nicht die übergebenen Daten
 
|-
 
|-
 
| 17
 
| 17
| Das Kommandobyte ist ungültig
+
| Das Kommandobyte ist ungültig
 
|-
 
|-
 
| 18
 
| 18
Line 111: Line 112:
  
  
Durch das Ausprobieren aller 256 Möglichkeiten für das Kommandobyte und weglassen aller Kommandos bei denen Status 17 zurückgegeben wurde ist folgende Liste entstanden.
+
Durch das Ausprobieren aller 256 Möglichkeiten für das Kommandobyte und weglassen aller Kommandos bei denen Status 17 zurückgegeben wurde ist folgende Liste entstanden.
  
  
Folgende Kommandos werden unterstützt (Zahlen im Hex. Format):
+
Folgende Kommandos werden unterstützt (Zahlen im Hex. Format):
 
{| class="wikitable" | border="1"
 
{| class="wikitable" | border="1"
 
|-
 
|-
Line 209: Line 210:
 
* Kommando-Daten: Registernummer (DWORD), Unbekannt1 (DWORD)
 
* Kommando-Daten: Registernummer (DWORD), Unbekannt1 (DWORD)
 
* Daten im Antwortblock: Kommandobyte-Echo, 3 * 00, Unbekannt1-Echo (DWORD), Registernummer-Echo (DWORD), Registerinhalt (DWORD), 5 * unbekannte Bytes
 
* Daten im Antwortblock: Kommandobyte-Echo, 3 * 00, Unbekannt1-Echo (DWORD), Registernummer-Echo (DWORD), Registerinhalt (DWORD), 5 * unbekannte Bytes
* Wertebereich für Registernummer: 0 .. E2h
+
* Wertebereich für Registernummer: 0 .. E2h
  
 
===Kommando 46 (SC_MEM beschreiben)===
 
===Kommando 46 (SC_MEM beschreiben)===
Line 215: Line 216:
 
* Kommando-Daten: Registernummer (DWORD), Registerinhalt (DWORD)
 
* Kommando-Daten: Registernummer (DWORD), Registerinhalt (DWORD)
 
* keine Daten im Antwortblock
 
* keine Daten im Antwortblock
* Wertebereich für Registernummer: 0 .. E2h
+
* Wertebereich für Registernummer: 0 .. E2h
  
 
===Kommando 47===
 
===Kommando 47===
Line 236: Line 237:
 
===Kommando 4D===
 
===Kommando 4D===
 
* wird in der Firmware bei Adresse 80035AFC verwendet
 
* wird in der Firmware bei Adresse 80035AFC verwendet
* Kommando-Daten: 0 bis 3Eh Bytes möglich (die Firmware benutzt 4 Byte)
+
* Kommando-Daten: 0 bis 3Eh Bytes möglich (die Firmware benutzt 4 Byte)
* Daten im Antwortblock: 4 * 8 Byte Blöcke (manchmal ist Block 2 und 3 identisch)
+
* Daten im Antwortblock: 4 * 8 Byte Blöcke (manchmal ist Block 2 und 3 identisch)
  
 
===Kommando 4F===
 
===Kommando 4F===
Line 243: Line 244:
 
* Kommando-Daten: Unbekannt1 (DWORD), Unbekannt2 (DWORD)
 
* Kommando-Daten: Unbekannt1 (DWORD), Unbekannt2 (DWORD)
 
* Daten im Antwortblock: Kommandobyte-Echo, 3 * 00, Unbekannt2-Echo (DWORD), 16 dez. * unbekannte Bytes
 
* Daten im Antwortblock: Kommandobyte-Echo, 3 * 00, Unbekannt2-Echo (DWORD), 16 dez. * unbekannte Bytes
* Wertebereich für Unbekannt1: 0 .. Bh
+
* Wertebereich für Unbekannt1: 0 .. Bh
  
 
===Kommando 50 (SC_Sec_MEM auslesen)===
 
===Kommando 50 (SC_Sec_MEM auslesen)===
Line 249: Line 250:
 
* Kommando-Daten: Registernummer (DWORD), Unbekannt1 (DWORD)
 
* Kommando-Daten: Registernummer (DWORD), Unbekannt1 (DWORD)
 
* Daten im Antwortblock: Kommandobyte-Echo, 3 * 00, Registernummer-Echo (DWORD), Registerinhalt (DWORD), 5 * unbekannte Bytes
 
* Daten im Antwortblock: Kommandobyte-Echo, 3 * 00, Registernummer-Echo (DWORD), Registerinhalt (DWORD), 5 * unbekannte Bytes
* Wertebereich für Registernummer: 0 .. 95h
+
* Wertebereich für Registernummer: 0 .. 95h
  
 
===Kommando 51===
 
===Kommando 51===

Revision as of 21:36, 26 October 2007

Personal tools