Zum Hauptinhalt Zur Navigation

Linux: Reverse Engineering unter Windows für Nouveau

Einer der Nouveau-Entwickler hat eine Bibliothek zum PCI-Zugriff auf Windows portiert. So kann er Informationen über Nvidia-Karten erlangen, die nur unter Windows zur Verfügung stehen.
/ Sebastian Grüner
18 Kommentare News folgen (öffnet im neuen Fenster)
Eine der ersten Tesla-Karten: Nvidias GT 8800 (Bild: Shockmac/Wikimedia)
Eine der ersten Tesla-Karten: Nvidias GT 8800 Bild: Shockmac/Wikimedia

Für den Nouveau-Entwickler Samuel Pitoiset war es problematisch, an Informationen über die Graphic Counter der Nvidia-Tesla-Architektur heranzukommen: Diese lassen sich nur unter Windows mit Nvidias NVPerfkit abgreifen. Um die gewohnten Werkzeuge zum Reverse Engineering zu nutzen, portierte Pitoiset deshalb einfach die Bibliothek Libpciaccess(öffnet im neuen Fenster) . Den Patch dazu stellt der Entwickler nun bereit.

Die Nouveau-Entwickler nutzen die Envytools(öffnet im neuen Fenster) für ihre Arbeiten. Diese wiederum basieren auf Libpciaccess(öffnet im neuen Fenster) , über die direkt auf den PCI-Bus und -Geräte zugegriffen werden kann. Allerdings ist die Bibliothek nur auf Posix-Plattformen verfügbar, weshalb Pitoiset diese nun auf Windows portierte und mittels Cygwin(öffnet im neuen Fenster) nutzt. Eine Verwendung von MinGW(öffnet im neuen Fenster) (Minimalist GNU for Windows) hält der Pitoiset ebenfalls für möglich.

Die Portierung hängt außerdem von dem Werkzeug WinIO(öffnet im neuen Fenster) ab, mit dem sich auf die Ein- und Ausgabeports sowie auf Speicher unter Windows zugreifen lässt. Eine kurze Anleitung(öffnet im neuen Fenster) zur Verwendung der Bibliotheken findet sich im Quellcode-Repository von Libpciaccess. Getestet hat Pitoiset seine Portierung bisher aber nur mit der 32-Bit-Ausgabe von Windows 7, eine Testphase auf einem 64-Bit-System steht noch aus.

Pitoiset arbeitete in Googles Summer of Code 2013 an dem Reverse Engineering von Nvidias Tesla. Die Dokumentation(öffnet im neuen Fenster) der dabei erzielten Ergebnisse ist im Github-Repository des Entwicklers verfügbar. Dort finden sich auch Anfänge zur Dokumentation von Fermi und Kepler - den neueren Chips von Nvidia.


Relevante Themen