Der Moment der Wahrheit ist gekommen! Nach vier Jahren Research und davon fast einem Jahr Entwicklungszeit darf ich nun endlich eine Beta-Version meines bis dato ambitioniertesten Projekts vorstellen,
BenchMate. BenchMate ist eine Software für Windows 7 aufwärts, die Sicherheit und Verlässlichkeit von Benchmarks gewährleisten soll. Zusätzlich wird der Workflow des Benchens an sich stark vereinfacht. Das Ziel von BenchMate ist: Client herunterladen, starten und
sofort verifizierte Benchmark-Resultate erhalten, die anschließend zum Vergleichen auf HWBOT hochgeladen werden können.
Download: benchmate.org"Warum?". Ja, das ist eine Frage, die ich mir in den letzten Monaten auch immer wieder gestellt habe. Die Idee für so eine Software kam eigentlich schon bei der Entwicklung von
GPUPI und hat sich dann bei
TimerBench bestätigt: Benchmarks sind derart leicht zu beeinflussen, dass die vorhandenen
Messergebnisse von Firmen, Reviewern und Übertaktern prinzipiell in Frage gestellt werden müssen. Resultate von vielen Benchmarks werden auch heute noch ausschließlich per Screenshot und händisch eingegebenen Daten "verifiziert". Dabei geht es nicht nur ums klassische Schummeln, Ergebnisse können auch unabsichtlich verfälscht sein, indem die Zeitmessung eines Benchmarks in Kombination mit einer Windows-Version und/oder einer Hardware-Plattform fehlerhaft ist.
Zum Beispiel ist das berühmte SuperPi in Kombination mit Windows 10 auf Intel- und AMD-CPUs anfällig für Zeitverzerrungen bei Schwankungen des Bustakts. Selbiges gilt für CINEBENCH R15, der durch den Multicore-Wahnsinn von Threadripper und Co gerne zur Vermarktung der Performance herangezogen wird. "6231 Punkte" können wir dann von einem Screenshot oder einem händisch erstellten Graphen der Lieblings-Webseite ablesen. Meiner Meinung nach eine ungerechtfertigte Aussage, weil schlicht und ergreifend die notwendigen Daten nicht vorhanden sind, um eine sinnvolle Aussage zur Gültigkeit des Resultats zu treffen.
Wer noch ein bildhafteres Beispiel braucht: Stellt euch vor ihr könnt in WoW, LoL, CS:GO und wie sie alle heißen einfach bei einem öffentlichen Wettbewerb eure Punktezahl oder Kills mit einem 0815-Cheat Tool verändern und als Beweis, dass alles sauber gelaufen ist, macht ihr dann einen Screenshot von dem geschummelten Ergebnis und tragt es anschließend händisch in die Ranglisten ein.
Wie man es auch dreht und wendet, der aktuelle Stand der Dinge fürs Benchmarken ist grauenhaft. Wir sind einfach mit Abstand technisch hinten nach, wenn man es mit Online-Gaming, Formel 1, Schirennen und und und vergleicht. Deshalb BenchMate.
GPUPI 3.3 und BenchMate 0.7 So sieht ein Screenshot für die Verifizierung eines Scores in Geekbench 3 aus (Ausschnitt für bessere Optik im Artikel) Mit einem Klick können auch mehrere Resultate gleichzeitig auf HWBOT publiziert werden Features:- Verlässliche, Betriebssystem-unabhängige Zeitmessung mit High Precision Event Timer Support per Kernel Driver (keine Aktivierung in Windows notwendig)
- Automatisiertes und sicheres Abgreifen von Resultaten per DLL-Injection direkt in den Benchmark-Prozess
- Ausführliche Messung von Hardware-Sensoren während des gesamten Benchmark-Runs (Taktfrequenzen, Temperaturen, CPU-Spannung, ...)
- Integrierte Screenshot-Funktion mit zahlreichen Analysedaten zum Benchmark-Run
- Absicherung des Prozess-Speichers, um zu verhindern, dass Resultate direkte über den Speicher verändert werden können (zB per Cheat Engine)
- Schutz vor gängigen DLL-Injections, die WIN32 API-Funktionen überschreiben, um zB die Zeitmessung zu verlangsamen oder Ergebnisse verändern
- Analysefunktionen zum Vergleichen von erzielten Resultaten (interessant fürs Overclocken und Tweaken)
- Ein Sicherheitskonzept, das aus einem Launcher, einem System-Service, einem Kernel Driver und einer Client-Applikation besteht, die sich gegenseitig absichern
- Darstellung von Datei-Prüfsummen der beteiligten Benchmark-Executables
- Verifizierung der eigenen Programmkomponenten inklusive zahlreicher Anti-Debugging-Mechanismen für BenchMate und den laufenden Benchmark-Prozess
- Verifizierung der Systemeinstellungen, um ein gewisses Mindestmaß an Sicherheit zu gewährleisten (keine aktiven Debugger, kein Kernel Debugging, Code Integrity Checks aktiv, globaler Debug Modus deaktiviert, keine Virtual Machine aktiv, ...)
- Zahlreiche Optimierungen damit BenchMate einen möglichst geringen Einfluss auf die Messung von Ergebnissen hat (komplett Event-basierend, Inverted Call Model für die Kommunikation vom Driver zu den Userland-Komponenten)
- Keine Installation notwendig
- Integriertes Benchmark-Bundle, CPU-Z und GPU-Z
Unterstützte Benchmarks:- SuperPi
- GPUPI
- wPrime
- pifast
- 7-Zip
- CINEBENCH R11.5
- CINEBENCH R15
- CINEBENCH R20
- 3DMark 03
- 3DMark 05
- 3DMark 06
Allgemeines zum Thema Sicherheit:Es ist natürlich vollkommen klar, dass es keine hundertprozentige Absicherung geben kann. Selbst das Blut, der Schweiß und die Tränen, die in die Entwicklung von BenchMate gegangen sind, können das nicht garantieren. Sobald Code auf eurer physischen Hardware ausgeführt wird, ist das Spiel quasi verloren. Das macht aber gar nichts, denn bei BenchMate geht es prinzipiell darum, endlich einen Schritt in die richtige Richtung zu machen und die Latte für Sicherheit und Zuverlässigkeit ein schönes Stück nach oben zu legen. Wichtig ist dabei die Relation zwischen Aufwand und Nutzen, die stimmen muss. Solange ein BenchMate-verifizierter Weltrekord nicht viel Geld wert ist, wird sich die Motivation in Grenzen halten, BenchMate zu knacken. Und je nachdem, was die Zukunft bringt, könnte man entweder eine laufende Bounty Hunt veranstalten oder überhaupt das gesamte Projekt Open-Source machen.
Einschränkungen und bekannte Probleme:- Kernel Driver ist noch nicht von Microsoft validiert worden (Attestation Signing), daher startet der Driver auf OEM-Systemen nicht, die Windows 10 1607 oder neuer vorinstalliert haben.
- Der Upload von Ergebnissen auf HWBOT funktioniert derzeit nur mit GPUPI! Andere Benchmarks müssen erst offiziell von HWBOT integriert werden.
Die Zukunft:- Vorerst konzentriert sich BenchMate auf die Schnittstelle zu HWBOT, langfristig soll eine eigene Plattform mit einer Fülle von Systeminformationen, Ranglisten, Vergleichs-Features (Graphen!) und zusätzlichen Sicherheitsfunktionen enstehen, die auch wirklich meinen Vorstellungen entsprechen.
- Spezielle Engine für Overclocking-Wettbewerbe (Online und Offline)
- Direkte Integration des BenchMate-Drivers in Benchmarks (kommt zuerst für GPUPI 4)
- Integrierte Benchmark-Automatisierung a la Rebench
- Benchmark-Downloads inklusive Updates ähnlich wie bei Steam
- Livedaten des Systems auf einer Webseite darstellen können
- Augmented Reality Support
- Overclocking direkt innerhalb von BenchMate
Wie immer freue ich mich über euer Feedback und eure Bug Reports! Was würde ich eigentlich ohne euch machen?
» Beitrag diskutieren (122 Kommentare)