User:S3lph/Screamer M.2: Difference between revisions

From CCC Basel Wiki
Jump to navigation Jump to search
No edit summary
 
(One intermediate revision by the same user not shown)
Line 33: Line 33:
** Variiert sehr stark von Mainboard zu Mainboard
** Variiert sehr stark von Mainboard zu Mainboard
** Mit den Details kenne ich mich hier nicht aus
** Mit den Details kenne ich mich hier nicht aus
* Thunderbolt 3: Bei vielen Geräten sind defaultmässig nur USB und DP erlaubt, für PCIe müssen die angeschlossen Geräte dann erst zugelassen werden.


==== Erfahrungen ====
==== Erfahrungen ====
Line 60: Line 61:
# DMA testen
# DMA testen
## <code>sudo ./pcileech testmemread -device FPGA</code>
## <code>sudo ./pcileech testmemread -device FPGA</code>
# Weitere Verwendung: Siehe [PCILeech-Doku https://github.com/ufrisk/pcileech/wiki]
# Weitere Verwendung: Siehe [https://github.com/ufrisk/pcileech/wiki PCILeech-Doku]


== Links ==
== Links ==

Latest revision as of 22:42, 31 August 2020

Usageask.png

Nur mit Erlaubnis

Dieses Gerät ist Privateigentum, das nur mit der expliziten Erlaubnis der Eigentümer verwendet werden darf. Frage vor der Verwendung bitte eine der folgenden Personen um Erlaubnis:

  • s3lph

Wenn du zu uns kommst, weil du dieses Gerät benutzen willst, kannst du uns auch kontaktieren und fragen, ob eine dieser Personen während deinem Besuch anwesend sein wird.


Screamer M.2, Banana for scale™

Der Screamer M.2 ist ein FPGA-basiertes Board, um mit dem PCIe-Bus eines Computers zu interagieren. Das Gerät kostet in der Anschaffung (Stand 2020, Modell M.2 R04) etwas über CHF 300. Das Board hat den Formfaktor einer M.2-Steckkarte (zum Einstecken in den Zielcomputer) und verfügt über einen USB-3.1-Anschluss (zum Anschliessen an den Kontrollcomputer).

Lieferumfang

  • Screamer M.2
  • Adapter auf PCIe CEM x1, nur minimal Grösser als der Screamer selbst
  • Adapter auf PCIe CEM x4, mit Bracket zur (semi-) permanenten Installation in einem Computer
  • USB-3.1-Kabel
  • Adapter USB-C/USB-A

Verwendung

Hotplug

Auch wenn Hotplugging mit PCIe prinzipiell möglich ist, hängt es doch von sehr vielen Faktoren ab, ob eine im Betrieb eingestecktes Gerät auch ohne Power Cycle funktioniert.


Warnung.png

Achtung

Wenn du die Kontrolle über einen laufenden Computer übernehmen willst, z.B. weil du das Passwort für deine Festplattenverschlüsselung vergessen hast, ist dieses Gerät nur in manchen Fällen die richtige Wahl. Das Einstecken eines PCIe-Geräts in einen der CEM-Steckkartenplätze auf dem Mainboard des Zielgeräts kann funktionieren, es kann aber auch ebenso gut das Zielgerät zum Absturz bringen. ExpressCard- oder Thunderbolt-Anschlüsse sollten da hingegen schon deutlich risikofreier sein.


Anforderungen

  • Das Gerät muss hotplugfähig sein
    • Screamer M.2 ist hotplugfähig. Eventuell muss man den Resetbutton auf dem Gerät drücken, aber grundsätzlich: ja
  • Wenn mit dem Kernel interagiert werden soll, muss der Kernel das neue Gerät enumerieren können
  • Das Mainboard muss hotplugfähig sein
    • Variiert sehr stark von Mainboard zu Mainboard
    • Mit den Details kenne ich mich hier nicht aus
  • Thunderbolt 3: Bei vielen Geräten sind defaultmässig nur USB und DP erlaubt, für PCIe müssen die angeschlossen Geräte dann erst zugelassen werden.

Erfahrungen

Ich habe bei meinen Hotplug-Tests je nach Gerät eins der drei folgenden Ergebnisse feststellen können:

  • Hotplug funktioniert, Gerät wird vom Kernel erkannt und kann ab dann DMA-Zugriffe machen
  • Gerät wird weitestgehend ignoriert, teilweise kommen einzelne Ereignisse (NMI) durch.
    • Teilweise hilft ein echo 1 > /sys/bus/pci/rescan, teilweise braucht es einen Power Cycle
  • Der Zielcomputer geht in einen HCF-Zustand.

Verwendung mit PCILeech

  1. FT60x-Treiber installieren
    1. git clone https://github.com/lambdaconcept/ft60x_driver
    2. cd ft60x_driver
    3. make
    4. sudo insmod ft60x.ko
  2. PCILeech installieren
    1. Neueste Version herunterladen
    2. Archiv entpacken
    3. chmod +x pcileech
  3. Hardware in Betrieb nehmen
    1. Screamer M.2 am Zielgerät anschliessen
    2. Zielgerät starten (wenn kein Hotplug)
    3. Resetbutton auf dem Screamer M.2 drücken
    4. USB-Kabel im Kontrollgerät einstecken
  4. DMA testen
    1. sudo ./pcileech testmemread -device FPGA
  5. Weitere Verwendung: Siehe PCILeech-Doku

Links