Abo
  • Services:
Anzeige
Lüfter vor Analysetool
Lüfter vor Analysetool (Bild: Matthias Riegler)

Microsoft hilft mit

Grundsätzlich kann jede ausführbare Datei mit Hilfe eines Decompilers analysiert und in eine lesbare Programmiersprache zurückübersetzt werden. Bei .NET geht es sogar einen Schritt weiter: Der ursprüngliche Quellcode lässt sich mit Ausnahme der Kommentare fast vollständig wiederherstellen.

Ich entscheide mich, mein Glück mit dem .NET Decompiler ILSPY zu versuchen. Nach dem Öffnen der DLL in ILSPY werde ich mit einer Vielzahl an Klassen begrüßt - und lande einen Volltreffer: GridPlusControl. Das klingt nach dem, was ich suche!

Anzeige
  • NZXT Grid+ (Bild: Matthias Riegler)
  • Steuerplatine, Frontseite (Bild: Matthias Riegler)
  • Steuerplatine, Rückseite (Bild: Matthias Riegler)
  • ILSpy (Bild: Matthias Riegler)
ILSpy (Bild: Matthias Riegler)

Die Drehzahl steuern

Während ich den Quellcode überfliege, werde ich auf die Funktion SetGridPlusVoltage() aufmerksam. Es werden zwei Funktionen aus weiteren Klassen aufgerufen, die ich mir daraufhin anschaue. Was zunächst komplex aussieht, stellt sich als simpel heraus. Zunächst wird eine ID gesendet, darauf ein Index, gefolgt von dem Dezimalwert 192, gefolgt von zwei Null-Bytes. Warum 192 gesendet wird, ist mir nicht ganz klar, auch die beiden Null-Bytes irritieren mich. Anschließend wird eine Spannung übermittelt. Insgesamt ergibt sich also folgende Kette (hier für 12,4 Volt):


[ID, index ,192, 0, 0, 12, 40]

Die Eingangsspannung liegt in einem Intervall von 0 bis 12,4 Volt. Um diese zu übertragen, wird das vorletzte Byte auf den Wert vor dem Komma gesetzt. Das letzte Byte wird in zwei 4-Bit Blöcke unterteilt, welche die erste und zweite Nachkommastelle aufnehmen.

Die 0,01 Volt-Schritte verwerfe ich, so genau muss ich die Lüfter nicht steuern können. Sauber aufgeschrieben sieht die Prozedur in Python so aus:

  1. def set_voltage(index , voltage):
  2. vsteps = int(voltage*10)
  3. return [ID_SET_VOLTAGE, index
  4. , 192, 0, 0, (vsteps/10), ((vsteps % 10) << 4)]

Die Drehzahl auslesen

Die Drehzahl kann ich über die Spannung regeln. Wenn der Computer unter dem Schreibtisch steht, ist es mühselig, jedes Mal die Verkleidung zu öffnen und zu schauen, ob meine neuen Einstellungen übernommen wurden. Ich schaue mir wieder die Klasse an und finde die Funktion mit dem Namen GetAllRPM(). Das scheint genau das zu sein, was ich brauche. Eine zwei Byte lange Anfrage resultiert in einer fünf Byte langen Antwort.

Die Anfrage:


[ID_GET_RPM, 1]

Drei der fünf Byte scheinen fix zu sein - 60 Prozent Überschuss ist schon eine Leistung! Auswertung der Antwort:

  1. def get_rpm_cmd(index):
  2. return [138, index]
  3. def get_rpm_response(response):
  4. return (int(response[3]) << 8) + int(response[4])

 NZXT: Lüfter auch unter Linux steuernDas Programm testen 

eye home zur Startseite
lespocky 04. Apr 2017

Der scheinbar komische Wert 192, der fest mitgegeben werden muss, ist vermutlich ein Byte...

captain_spaulding 27. Mär 2017

Da dieses Teil einen ganz normalen Serial Port benutzt, macht zumindest dieser Teil keine...

aha47 26. Mär 2017

Welche jetzt konkret? Stimmt, leider sind die "meisten Linux User" offenbar aus der...

scheuerseife 25. Mär 2017

Eine Alternative Java Software für das NZXT Grid+ Hat RoelGo schon 2016 unter der MIT...

1ras 24. Mär 2017

Ja, kenne ich. Von den USB nach RS-232 Wandlern gibt es leider ziemlich viele...



Anzeige

Stellenmarkt
  1. über Mentis International Human Resources GmbH, Nordbayern
  2. Spheros GmbH, Gilching bei München
  3. PTV Group, Karlsruhe
  4. VITRONIC Dr.-Ing. Stein Bildverarbeitungssysteme GmbH, Wiesbaden


Anzeige
Blu-ray-Angebote
  1. 39,99€ (Vorbesteller-Preisgarantie)
  2. (u. a. The Revenant 7,97€, James Bond Spectre 7,97€, Der Marsianer 7,97€)
  3. (u. a. The Big Bang Theory, The Vampire Diaries, True Detective)

Folgen Sie uns
       


  1. Service

    Telekom verspricht kürzeres Warten auf Techniker

  2. BVG

    Fast alle U-Bahnhöfe mit offenem WLAN

  3. Android-Apps

    Rechtemissbrauch ermöglicht unsichtbare Tastaturmitschnitte

  4. Electro Fluidic Technology

    Schnelles E-Paper-Display für Video-Anwendungen

  5. Heiko Maas

    "Kein Wunder, dass Facebook seine Vorgaben geheim hält"

  6. Virtual Reality

    Oculus Rift unterstützt offiziell Roomscale-VR

  7. FTP-Client

    Filezilla bekommt ein Master Password

  8. Künstliche Intelligenz

    Apple arbeitet offenbar an eigenem AI-Prozessor

  9. Die Woche im Video

    Verbogen, abgehoben und tiefergelegt

  10. ZTE

    Chinas großes 5G-Testprojekt läuft weiter



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Debatte nach Wanna Cry: Sicherheitslücken veröffentlichen oder zurückhacken?
Debatte nach Wanna Cry
Sicherheitslücken veröffentlichen oder zurückhacken?
  1. Sicherheitslücke Fehlerhaft konfiguriertes Git-Verzeichnis bei Redcoon
  2. Hotelketten Buchungssystem Sabre kompromittiert Zahlungsdaten
  3. Onlinebanking Betrüger tricksen das mTAN-Verfahren aus

Sphero Lightning McQueen: Erst macht es Brummbrumm, dann verdreht es die Augen
Sphero Lightning McQueen
Erst macht es Brummbrumm, dann verdreht es die Augen

Quantencomputer: Nano-Kühlung für Qubits
Quantencomputer
Nano-Kühlung für Qubits
  1. IBM Q Mehr Qubits von IBM
  2. Quantencomputer Was sind diese Qubits?
  3. Verschlüsselung Kryptographie im Quantenzeitalter

  1. Re: Ich weiß nicht ob ihr nur reiche Leute kennt

    chithanh | 00:27

  2. Liquivista

    maxule | 00:24

  3. Re: Meine Erfahrung als Störungssucher in Luxemburg

    AndyWeibel | 00:18

  4. Re: Erster!!!

    Shik3i | 00:17

  5. Re: Wofür ist das BVG-WiFi gut?

    chithanh | 00:05


  1. 12:31

  2. 12:15

  3. 11:33

  4. 10:35

  5. 12:54

  6. 12:41

  7. 11:44

  8. 11:10


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel