• 14.07.2025, 19:01
  • Registrieren
  • Anmelden
  • Du bist nicht angemeldet.

 

Man_In_Blue

Moderator

Re: Editor/Tool zum offnen von Treiber Dateien

Montag, 12. April 2004, 22:20

So. Nachdem das geklärt wäre (oder auch nicht ;D :P ) können wir uns ja dem eigentlichem Problem zuwenden...


Ich will die Treiberdaten erstmal öffnen können um mal überhaupt die strukturierung zu "verstehen" und zu sehen wie genau die Werte für die Settings gespeichert werden... ect. ...


Man In Blue
A sinking ship is still a ship!

saUerkraut

unregistriert

Re: Editor/Tool zum offnen von Treiber Dateien

Montag, 12. April 2004, 22:25

Also bidde bidde lieber Onkel Blue erzähl uns mehr von deiner 9800 maxx.Wenn du mit den Treibern nicht zurecht kommst gib mir einfach die GraKa und überlasse das mir. ;D



P.S. Mach doch einen neuen Threat alleine für deine GraKa :D ;D ;D


MFG saUerkraut

fliegenduennschiss

God

Re: Editor/Tool zum offnen von Treiber Dateien

Montag, 12. April 2004, 22:35

Zitat von »saUerkraut«

P.S. Mach doch einen neuen Threat alleine für deine GraKa :D ;D ;D

hat er doch schon
http://forum.aqua-computer.de/index.php?…d&threadID=7769
;)


cu

LaNcom

Senior Member

Re: Editor/Tool zum offnen von Treiber Dateien

Montag, 12. April 2004, 22:40

@Man_In_Blue

Nochmal langsam, zum mitmeißeln:
Treiber sind compiliert, also Maschinensprache. Es ist völlig unmöglich, die irgendwie wieder in die Urform zu verwandeln. Nur den Assemblercode kann man auslesen. Dazu verwendet man Disassembler wie IDA pro. Das Ergebnis wäre dann ein viele tausend Zeilen langer Code, der in etwa so aussieht:
0000000000400e08 <_init>:
 400e08:       48 83 ec 08             sub    $0x8,%rsp
 400e0c:       e8 5b 02 00 00          callq  40106c <call_gmon_start>
 400e11:       e8 ca 02 00 00          callq  4010e0 <frame_dummy>
 400e16:       e8 d5 21 00 00          callq  402ff0 <__do_global_ctors_aux>
 400e1b:       48 83 c4 08             add    $0x8,%rsp
 400e1f:       c3                      retq
Disassembly of section .plt:

0000000000400e20 <.plt>:
 400e20:       ff 35 62 2e 10 00       pushq  1060450(%rip)        # 503c88 <_GLOBAL_OFFSET_TABLE_+0x8>
 400e26:       ff 25 64 2e 10 00       jmpq   *1060452(%rip)        # 503c90 <_GLOBAL_OFFSET_TABLE_+0x10>
 400e2c:       90                      nop
 400e2d:       90                      nop


Dazu noch ein riesiger Stapel hiervon:
1eda0 ef031f49 0500004c 041f291e 00004d04  ...I...L..)...M.
1edb0 1fc40000 004e041f d10d0000 4f041f75  .....N......O..u
1edc0 0a000050 041f3616 00005104 1f041600  ...P..6...Q.....
1edd0 0052041f 7c100000 53041f47 08000054  .R..&#124;...S..G...T
1ede0 041f5b15 00005504 1f0a0b00 0056041f  ..[...U......V..

Und nur, wenn Du mit diesem Salat etwas anfangen kannst, solltest Du Dir überhaupt weiter Gedanken darüber machen (mein Beispiel hinkt ein wenig, das ist 64bit Assembler - sieht man an den Registern, die beginnen bei mir mit 'r', bei Dir mit 'e')... ;-)

Nachtrag: die Datei mit dem disassemblierten Plaintext ist midestens 20 bis 30 mal so groß wie die Ursprungsdatei, um mal eine Vorstellung von der Größe zu bekommen...
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Kristian Wilson, Nintendo, Inc, 1989.

Man_In_Blue

Moderator

Re: Editor/Tool zum offnen von Treiber Dateien

Montag, 12. April 2004, 22:59

Hmmmmmmmmmmmmmm.

Mist.

OK.

Wie bekomm ich denn raus wo besagte Treibereinstellungen ect. ect. ect. gespeichert werden? (Regesty hab ich schon durchforstet und nur wenig brauchbares gefunden ( für obrige Screen Shots hats aber immerhin gereicht ;D ))

Man In Blue
A sinking ship is still a ship!

LaNcom

Senior Member

Re: Editor/Tool zum offnen von Treiber Dateien

Montag, 12. April 2004, 23:07

Nachdem sicher die Treibereinstellungen irgendwo in der Registrierung liegen, solltest Du mal regmon versuchen (von SysInternals, wenn ich mich nicht irre). Dann mal irgendetwas im Controlpanel verändern, und in regmon prüfen, wo sich in der Registrierung was geändert hat. Das wäre eine Lösung, die mir spontan einfallen würde.
Aber gleich noch eine Warnung, Windows pfuscht selbst schon bei jedem Mausklick in der Registrierung 'rum, die Liste in regmon wird also ziemlich lang werden, Du solltest also Geduld mitbringen...
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Kristian Wilson, Nintendo, Inc, 1989.

Man_In_Blue

Moderator

Re: Editor/Tool zum offnen von Treiber Dateien

Dienstag, 13. April 2004, 01:17

Zitat von »LaNcom«

Nachdem sicher die Treibereinstellungen irgendwo in der Registrierung liegen, solltest Du mal regmon versuchen (von SysInternals, wenn ich mich nicht irre). Dann mal irgendetwas im Controlpanel verändern, und in regmon prüfen, wo sich in der Registrierung was geändert hat. Das wäre eine Lösung, die mir spontan einfallen würde.
Aber gleich noch eine Warnung, Windows pfuscht selbst schon bei jedem Mausklick in der Registrierung 'rum, die Liste in regmon wird also ziemlich lang werden, Du solltest also Geduld mitbringen...



Danke! HAt gefuntzt...

Nu muss ich nur noch wissen wie ich diese Werte von außen heraus ändern kann.

:)


Man In Blue
A sinking ship is still a ship!

x-stars

God

Re: Editor/Tool zum offnen von Treiber Dateien

Dienstag, 13. April 2004, 16:28

Zitat von »LaNcom«

@Man_In_Blue

Nochmal langsam, zum mitmeißeln:
Treiber sind compiliert, also Maschinensprache. Es ist völlig unmöglich, die irgendwie wieder in die Urform zu verwandeln.


Nein, nicht der Treiber ist compiliert, die ganzen DLLs und die restlichen Dateien, die direkt die Befehle für die Karte umwandeln. Die .inf-dateien sind zum Beispiel reine Textdateien, in denen du angezeigt Infos (wie die Hyper-Dupa-Radeon) oder auch die Unterstützten Karten ändern kannst (dass du zum Beispiel selbst ne Monitor-Treiber-Datei schreiben kannst, die Windows auch direkt akzeptiert, statt den Standart-Treiber zu verlangen ;)).

Mib will also neue Karten in den Treiber einbinden - dass in in soweit möglich, als dass die DLLs und die restlichen Dateien die Karte unterstützen (er die eigentluichen Treiberdateien also nicht verändern braucht, also auch nicht disassimblieren muss), sonder nur die neue Karte in die DLL einbinden und die alten DLLs weiterverwendet - bestes Beispiel sind hier die Universal-WDM-Treiber für TV-Karten (BT-878- basierende Karten). Von diesen TV-Karten gabs die DLLs von Conexeant (den herstellern vom BT8x8-Chip), die Entwickler der Universal-Treiber haben dazu die DLLs für den Tuner besorgt (Temnic, Phillips und Co.) und eine .inf-Datei dazu geschrieben, in der zum Beispiel auch verschiedene Karten (mit verschiedenen Tuner-Modellen und Herstellern) unterstützt wurden - fertig ist der Universal-Treiber.

Treiber bestehen also zusammengefasst nur aus
-compilierten Dateien, die Anweisungen entahlten, mit der die Hardware angesprochen werden kann

-.inf-Dateien, die die Infos enthalten wie zum Beispiel, Name, unterstützte Hardware und den jeweils zu verwendenen DLLs.

@MiB: Wenn du jetzt zum Beispiel den aktuellen Catalyst hast, und eine Karte mit Radeon 9800-Chip (r360??), die Karte wird nicht direkt vom Catalyst unterstützt, dann kannst du die arte einbiunden, indem du die inf-Dateien änderst, da die DLLs ja passen (siond halt für andere r9800-Chip-basierenden Karten geschrieben). Wenn du aber einen ganz neuen Chip einbinden wills (den MiB-Super-Radeon, den du dir vielleicht zusammengelötest hat ;D ;)) und nun testen willst, geht das nicht, weil die DLLs nicht passen (da kannst du an den Infs Basteln solange du willst, es wird nicht klappen, in diesem Punbkt muss du eigene DLLs haben oder die ATi-Dlls decompillieren, wie oben geschreben wurde.

Wenn du dir angucken willst, wie ein Treiber aufgebaut ist, damit du dass ändern kannst, was du willst, würde ich die empfehlen, erstmal den Universal-BT878-Treiber von www.iulabs.com anzugucken, die sind recht übersichtlich, sodass du schnell die Zusammenhänge erkennen kannst.

cya
x-stars

Edit: Registry ist wieder ein anderes Kapitel, da kannst du Textdateien, die auf .reg änden erstellen und so den Inhalt per Dppelklick ändern (richtige Syntax vorrausgesetzt, die kann man ja über google rauskriegen).
"Live free or die: Death is not the worst of evils."

LaNcom

Senior Member

Re: Editor/Tool zum offnen von Treiber Dateien

Dienstag, 13. April 2004, 18:41

@x-stars

Nö.
Der Treiber selbst ist entweder eine DLL oder VXD Datei, also compiliert, assembliert und gelinkt. Die INF ist je nach Aufbau des Treibers unwichtig, zumindest was im Falle der ATI-Treiber die Identifikation und die Unterstützung von Chips angeht. Das sind nur INFormationen...

Wenn ich den Namen oder die ID eines Geräts in der INF ändere passiert noch lange nichts. Bestes Beispiel dafür sind SoftQuadro und SoftFireGL, die patchen den Treiber und nicht die INF. Wenn Du in der INF angibst, das die ID Deiner Radeon eine FireGL sein soll, steht zwar FireGL in den Hardwareinformationen, die Karte wird vom Treiber aber trotzdem als Radeon angesprochen. Die Features sind im Treiber hardcoded, und die Identifikation der Karte zum Freischalten der Features wird vom Treiber selbst erledigt. Die INF kannst Du dann ändern wie Du willst, das hat aber nur kosmetische Effekte, dem Treiber selbst ist das völlig egal...
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Kristian Wilson, Nintendo, Inc, 1989.

Man_In_Blue

Moderator

Re: Editor/Tool zum offnen von Treiber Dateien

Dienstag, 13. April 2004, 18:43

Zitat von »x-stars«



Nein, nicht der Treiber ist compiliert, die ganzen DLLs und die restlichen Dateien, die direkt die Befehle für die Karte umwandeln. Die .inf-dateien sind zum Beispiel reine Textdateien, in denen du angezeigt Infos (wie die Hyper-Dupa-Radeon) oder auch die Unterstützten Karten ändern kannst (dass du zum Beispiel selbst ne Monitor-Treiber-Datei schreiben kannst, die Windows auch direkt akzeptiert, statt den Standart-Treiber zu verlangen ;)).

Mib will also neue Karten in den Treiber einbinden - dass in in soweit möglich, als dass die DLLs und die restlichen Dateien die Karte unterstützen (er die eigentluichen Treiberdateien also nicht verändern braucht, also auch nicht disassimblieren muss), sonder nur die neue Karte in die DLL einbinden und die alten DLLs weiterverwendet - bestes Beispiel sind hier die Universal-WDM-Treiber für TV-Karten (BT-878- basierende Karten). Von diesen TV-Karten gabs die DLLs von Conexeant (den herstellern vom BT8x8-Chip), die Entwickler der Universal-Treiber haben dazu die DLLs für den Tuner besorgt (Temnic, Phillips und Co.) und eine .inf-Datei dazu geschrieben, in der zum Beispiel auch verschiedene Karten (mit verschiedenen Tuner-Modellen und Herstellern) unterstützt wurden - fertig ist der Universal-Treiber.

Treiber bestehen also zusammengefasst nur aus
-compilierten Dateien, die Anweisungen entahlten, mit der die Hardware angesprochen werden kann

-.inf-Dateien, die die Infos enthalten wie zum Beispiel, Name, unterstützte Hardware und den jeweils zu verwendenen DLLs.

@MiB: Wenn du jetzt zum Beispiel den aktuellen Catalyst hast, und eine Karte mit Radeon 9800-Chip (r360??), die Karte wird nicht direkt vom Catalyst unterstützt, dann kannst du die arte einbiunden, indem du die inf-Dateien änderst, da die DLLs ja passen (siond halt für andere r9800-Chip-basierenden Karten geschrieben). Wenn du aber einen ganz neuen Chip einbinden wills (den MiB-Super-Radeon, den du dir vielleicht zusammengelötest hat ;D ;)) und nun testen willst, geht das nicht, weil die DLLs nicht passen (da kannst du an den Infs Basteln solange du willst, es wird nicht klappen, in diesem Punbkt muss du eigene DLLs haben oder die ATi-Dlls decompillieren, wie oben geschreben wurde.

Wenn du dir angucken willst, wie ein Treiber aufgebaut ist, damit du dass ändern kannst, was du willst, würde ich die empfehlen, erstmal den Universal-BT878-Treiber von www.iulabs.com anzugucken, die sind recht übersichtlich, sodass du schnell die Zusammenhänge erkennen kannst.

cya
x-stars

Edit: Registry ist wieder ein anderes Kapitel, da kannst du Textdateien, die auf .reg änden erstellen und so den Inhalt per Dppelklick ändern (richtige Syntax vorrausgesetzt, die kann man ja über google rauskriegen).


Jo. Klar soweit. Das einbinden der Karten in den treiber scheint auch (mehr oder minder) zu funtzen...

Nun aber mal aber was komlizirteres... und zwar:

Mal angenommen ich möchte einen weiteren Registerreiter in die Grafikoptionen packen (wie es zB. auch bei Rage 3D Tweak geschiet)... mit was schreib ich die Register? Kann ich dazu Delphi verwenden? Und wie bind ich diese Karteien dann ein?

Man In Blue
A sinking ship is still a ship!

x-stars

God

Re: Editor/Tool zum offnen von Treiber Dateien

Dienstag, 13. April 2004, 19:13

Zitat von »LaNcom«

@x-stars

Nö.
Der Treiber selbst ist entweder eine DLL oder VXD Datei, also compiliert, assembliert und gelinkt. Die INF ist je nach Aufbau des Treibers unwichtig, zumindest was im Falle der ATI-Treiber die Identifikation und die Unterstützung von Chips angeht. Das sind nur INFormationen...

Wenn ich den Namen oder die ID eines Geräts in der INF ändere passiert noch lange nichts. Bestes Beispiel dafür sind SoftQuadro und SoftFireGL, die patchen den Treiber und nicht die INF. Wenn Du in der INF angibst, das die ID Deiner Radeon eine FireGL sein soll, steht zwar FireGL in den Hardwareinformationen, die Karte wird vom Treiber aber trotzdem als Radeon angesprochen. Die Features sind im Treiber hardcoded, und die Identifikation der Karte zum Freischalten der Features wird vom Treiber selbst erledigt. Die INF kannst Du dann ändern wie Du willst, das hat aber nur kosmetische Effekte, dem Treiber selbst ist das völlig egal...


Ich hab doch geschrieben, dass man den treiber selbst nicht verändern kann, wohl kann man den Treiber aber für andere Karten umschreiben (so sie zum Beispiel denselben Chip haben) - an dem Treiber (also der DLL) wird ja nichts verändert, jediglich die .inf-Datei muss dann für die neue Karte angepasst werden, im Falle der TV-Karte kannman sich so zum Beispiel seinen eigenen Zusammenschustern (passende DLLs suchen und eine inf. schreiben, die die "neuen" DLLs zusammenhält.
Ich glaube, irgendwie reden wiraneinander vorbei ::) - mir ist kalr, dass man die eigenlichenm DLLs (oder vxds bei Windows 98 und früher) nicht ändern kann - aber mit anderen kombinieren/für andere Karten umbasteln geht schon.

cya
x-stars
"Live free or die: Death is not the worst of evils."

LaNcom

Senior Member

Re: Editor/Tool zum offnen von Treiber Dateien

Dienstag, 13. April 2004, 19:46

Aber nur, wenn die Karte über die INF identifiziert wird, was bei Grafikkarten aber nicht üblich ist. Wie ich schon sagte, eine Radeon und eine FireGL sind baugleich (Layout und Chips), so wie jede GeForce eine baugleiche, korrespondierende Quadro hat. Es ist aber durch Manipulation der INF Dateien nicht möglich, den Treiber dazu zu bewegen, eine GeForce3 als QuadroDCC anzusprechen. Dazu musst Du den Treiber selbst patchen, und die Patches zu entwickeln ist extrem schwer (bei UDA) bis unmöglich (bei nicht-UDA).
In diesen Fällen fragt der Treiber (VXD, DRV oder DLL) selbst BIOS, Register, Brücken, Chip IDs oder sonstwas in der Karte ab, entscheidet danach selbst, was für eine Karte Du hast, und schaltet entsprechende Features frei.

Das man über die INF eine Mange machen kann ist mir schon klar, als ich noch Windows benutzte habe ich auf diese Weise 3COM Treiber für meinen No-Name Bluetooth Dongle zum laufen gebracht.
Aber hier scheint es um Grafikkarten (und um Treiberfeatures) zu gehen, und da wird's ein klein wenig komplizierter...
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music." -- Kristian Wilson, Nintendo, Inc, 1989.