Entdeckungen erkunden
Dieses Risiko lässt sich deutlich reduzieren, indem Vorsichtige die TCK-, TMS- und TDI-Leitungen des Adapters zunächst nur über in Serie geschaltete Widerstände mit dem Gerät verbinden. Der Widerstand begrenzt den maximalen Strom, der zwischen Adapter und dem Gerät fließt. Bei 3,3 Volt limitiert ein 330-Ohm-Widerstand den Strom auf 10 Milliampere. Dies gilt meist als sicherer Wert. Auch der JTAG-Finder verwendet ihn. Dennoch bleibt bei derartigen Hardware-Eingriffen naturgemäß immer ein Restrisiko.
Haben sie die Pins erst einmal identifiziert, greifen Anwender über einen Adapter vom Linux-Rechner auf das zu untersuchende Gerät zu. Die zwei wichtigsten Softwarepakete dazu sind Ur-JTAG [6] und Open OCD [7]. Bei der Wahl des JTAG-Adapters sollten sich Hardware-Forscher daher für einen Typ entscheiden, den sowohl Ur-JTAG als auch Open OCD unterstützen. FT2232-basierte Adapter, die diesen Konverter-Chip von FTDI verbauen, sind eine kluge Wahl, da beide Programme ihn unterstützen. Eine Liste weiterer Adapter findet sich ebenso wie Schaltpläne und Platinenlayouts für den Eigenbau auf einer Seite der Hochschule Augsburg [8].
Nachdem Entwickler den JTAG-Adapter wie beschrieben mit den wahrscheinlichen JTAG-Pins verbunden und Ur-JTAG installiert haben, testen sie den JTAG-Zugriff. Dazu starten sie - mit den erforderlichen Zugriffsrechten auf den USB-Bus versehen - Ur-JTAG mit dem Kommando »jtag«. Mit dem Kommando »cable FT2232« initialisieren sie dann den JTAG-Adapter.
Mit dem Befehl »detect« lassen sich die in der JTAG-Kette vorhandenen Chips identifizieren und anzeigen. Dazu nutzt Ur-JTAG die »IDCODE«-Anweisung. Die meisten Chips laden sie automatisch in das Instruktionsregister, sobald der Zustandsautomat in den Test-Logic-Reset-Zustand gelangt. Im Datenregister befindet sich dann die 32-Bit-Identifikationsnummer. Sie setzt sich aus einer Hersteller- und Chip-ID sowie einer Revisionsnummer zusammen.
Zeigt die Software keine Device-IDs an, ist der JTAG-Adapter entweder falsch angeschlossen oder die Chips geben den »IDCODE« nicht von sich aus preis. Zeigt Ur-JTAG nicht zumindest die Länge der Instruktionsregister an - beispielsweise durch die Ausgabe »IR length: 14« -, so ist der Adapter höchstwahrscheinlich falsch angeschlossen oder die JTAG-Schnittstelle des Geräts deaktiviert.
Belegungen nachschlagen
Kann Ur-JTAG dagegen nur die Komponenten nicht identifizieren, gibt der Anwender den Chip mit dem »include«-Kommando notfalls von Hand an. Ur-JTAG unterstützt bereits einige Chips und lässt sich gut erweitern. Das Programm kennt beispielsweise auch Dateien der Boundary Scan Description Language (BSDL). Sie beschreiben Chips und die von ihnen unterstützten Instruktionen in einer standardisierten Form und finden sich als Online-Sammlung [9].
Ur-JTAG vermag auch auf viele Flashspeicher via JTAG zuzugreifen und unterstützt das Serial Vector Format (SVF), das zusätzlich den Zugriff auf FPGAs ermöglicht. Die jeweilige Vorgehensweise hängt immer vom vorliegenden Chip ab, aber der Funktionsumfang von Ur-JTAG und seine Dokumentation helfen Anwendern mit einer Befehlsreferenz und einigen Anwendungsbeispielen.
Neben Ur-JTAG lässt sich JTAG unter Linux auch mit der Open-OCD-Software nutzen. Sie widmet sich primär ARM-Controllern und beherrscht im Gegensatz zu Ur-JTAG auch On-Chip-Debugging mit GDB. Auch dieses Projekt verfügt über detaillierte Erläuterungen verschiedener Chips und eine gute Einleitung [10].
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





