1 Punkte von GN⁺ 2024-02-24 | 1 Kommentare | Auf WhatsApp teilen

Versteckte Fähigkeiten des ThinkPad freischalten: USB-Geräte-Emulation

  • Es wurde ein Weg gefunden, ein ThinkPad X1 Carbon der 6. Generation in ein programmierbares USB-Gerät zu verwandeln.
  • Durch das Aktivieren des xDCI-Controllers lassen sich beliebige USB-Geräte emulieren, etwa Tastaturen oder Speicherlaufwerke.
  • Mit RawGadget und syzkaller kann man USB-Hosts fuzzing unterziehen oder Facedancer ausführen.
  • All das ist ohne externe Hardware möglich.

Einführung

  • Raw Gadget ist ein Linux-Kernel-Modul zur Emulation hochgradig anpassbarer USB-Geräte.
  • Um USB-Geräte zu emulieren, wird eine spezielle Hardware-Komponente namens USB Device Controller (UDC) benötigt.
  • Normalerweise verfügen PCs nicht über einen UDC; stattdessen ist er in Single-Board-Computern wie dem Raspberry Pi integriert.

Untersuchung

  • Bei der Untersuchung des Linux-Kernel-Codes rund um den xHCI-Controller wurde festgestellt, dass xHCI-Geräte einen Rollenwechsel unterstützen.
  • Durch eine Online-Recherche wurden Diskussionen über den Rollenwechsel von xHCI-Geräten gefunden.
  • ACPI wurde überprüft, um festzustellen, ob xDCI dort aktiviert ist.

xDCI aktivieren

  • In den BIOS-Einstellungen konnte zunächst keine xDCI-bezogene Option gefunden werden.
  • Durch direkte Untersuchung des BIOS-Images wurde entdeckt, dass die xDCI-bezogene Einstellung verborgen ist.

xDCI verwenden

  • xDCI wurde über die BIOS-Einstellung Advanced aktiviert.
  • Es wurde bestätigt, dass das xDCI-Gerät in lspci erscheint.

Zusammenfassung

  • Es wurde ein Weg gefunden, die versteckte Funktion eines USB Device Controllers im ThinkPad X1 Carbon der 6. Generation zu aktivieren.
  • Dadurch kann das Notebook verschiedene USB-Geräte emulieren.

Fazit

  • Durch die Aktivierung von xDCI wurden neue Einsatzmöglichkeiten des Notebooks erschlossen.

Meinung von GN⁺

  1. Dieser Artikel eröffnet neue Möglichkeiten für Hardware-Hacking und Anpassbarkeit, indem er zeigt, wie sich die versteckte Funktion eines ThinkPad-Notebooks zur Emulation von USB-Geräten aktivieren lässt.
  2. Aufgaben, für die bisher separate Hardware nötig war, lassen sich nun mit einem einzigen Notebook erledigen, was für Entwickler und Forschende sehr hilfreich sein kann.
  3. Der Beitrag bietet technisch Neugierigen eine spannende Herausforderung und hilft dabei, Wege zu erkunden, das Potenzial vorhandener Geräte maximal auszuschöpfen.

1 Kommentare

 
GN⁺ 2024-02-24
Hacker-News-Kommentare
  • Es gibt einen Kommentar, der sich fragt, warum man einen Laptop nicht als Tastatur und Monitor für einen anderen Computer verwenden kann. Bei der Wartung kopfloser Maschinen übernimmt der Laptop bereits die Rolle von Tastatur und Monitor, daher wirkt es töricht, noch etwas Neues zu kaufen.
  • Ein Kommentar erinnert an Fälle, in denen Smart-TVs Firmware-Updates über Dateien auf einem USB-Stick erhalten. Dabei sendet ein Gerät, das sich als USB-Speicher ausgibt, zunächst die Firmware-Datei des Herstellers und anschließend inoffizielle Firmware.
  • Es gibt eine interessante Diskussion über den Versuch, einen NAS-Server zu nutzen. Untersucht wurde, wie sich NAS-Speicher für PS5 und Xbox bereitstellen lässt; dabei wurde festgestellt, dass man NAS-Freigaben über iSCSI oder NFS mounten und mit dem Modul g_mass_storage Speicher einem USB-Host bereitstellen kann. Die Bandbreite ist jedoch das größte Hindernis, weil der Geschwindigkeitsgewinn für das System nicht besonders groß ist.
  • Es gibt einen Kommentar über den Versuch, mit einem Raspberry Pi HDI zu emulieren. Beschrieben wird die Suche nach einer anderen Methode, nachdem die bisherige Vorgehensweise, Tastatureingaben an einen Windows-Prozess zu senden, beim Senden von Modifikatortasten Probleme verursachte.
  • Ein Kommentar macht Hoffnung, dass sich eine Konfiguration wie Synergy oder Mouse Without Borders auch ohne Netzwerk allein über ein USB-Kabel umsetzen lässt. Das wäre nützlich für Menschen, die mehrere Computer gleichzeitig betreiben müssen.
  • Ein Kommentar erwähnt den Versuch, allein mit einem USB-C-Kabel eine 10-Gbps-Verbindung zwischen zwei Maschinen herzustellen. Dabei wird angemerkt, dass die meisten Ryzen-Boards weiterhin kein Thunderbolt unterstützen und „Dual-Role“-USB-Controller selten sind. Erwähnt wird auch, dass es unter USB 3.2/4.0 möglich ist, die Unterstützung jedoch unzuverlässig bleibt.
  • Es gibt einen Kommentar, dass die Fähigkeit, einen PC als USB-Gerät zu verwenden, interessante Möglichkeiten eröffnet. Bedauert wird jedoch, dass die benötigte xDCI-Option zwar in der Hardware vorhanden ist, aber nur über Firmware-Hacks zugänglich ist.
  • Ein Kommentar fragt, ob Lenovo diese Technik verwendet, um ein ThinkPad mit einem anderen ThinkPad zu debuggen. Enthalten sind ein Link zu Intels Debug-Technik und ein Link zu einem passenden YouTube-Video.
  • Ein Kommentar empfindet die Arbeit mit einem Raspberry Pi als umständlich. Vorgeschlagen wird, USB OTG zu konfigurieren und Mounts sowie Befehle per SSH einzurichten. Außerdem wird dazu ermutigt, das eigene Gerät zu verstehen, den Kernel zu lesen und Probleme selbst zu lösen.
  • Ein Kommentar berichtet, dass der xDCI-Schalter im BIOS aktiviert wurde, aber kein UDC-Geräteknoten erscheint, sodass tiefer gegraben werden muss. Erwähnt wird, dass der ursprüngliche Beitrag zu weiteren Untersuchungen inspiriert hat.