Autor Thema: Grafikkarteninformationen aus Windows-Treibern  (Gelesen 3081 mal)

ST-225

  • Beiträge: 43
    • Profil anzeigen
Gespeichert
« am: 21. August 2006, 11:52 »
Natürlich sind alle VGA-Treiber für Microsoft strengstens Closed-Source, klickt man jedoch im Gerätemanager auf die Grafikkarte und dann aus Ressourcen, erhalte ich z.B für meine Radeon X1600XT folgende Informationen:

Zitat

Speicherbereich  C0000000 - CFFFFFFF
Speicherbereich  D1000000 - D100FFFF
E/A-Bereich        C000 - C0FF
IRQ                    18
E/A-Bereich        03B0 - 03BB
E/A-Bereich        03C0 - 03DF
Speicherbereich  000A0000 - 000BFFFF


Könnte man mit diesen Werten irgendetwas anfangen ?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #1 am: 21. August 2006, 12:49 »
Nein, diese Werte kannst du PCI Configurations Space der Grafikkarte rauslesen & auch ändern. Für nen Treiber müsstest du viel mehr wissen, was du an welche dieser Ports senden musst um irgendeine Aktion (Videomodus setzen, Bitblt, ...) zu erhalten, aber das /*könntst*/ du nur durch disassemblen und debuggen des Treibers rausfinden. Aber dazu braucht man wahrscheinlich einiges an Wissen über die Windowstreiberarchitektur. Ich hab vor langem mal einen Treiber disassembliert und da war iirc kein in/out drin, d.h. das wird über irgendwelche Syscall/Funktionsaufrufe gemacht.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 21. August 2006, 14:09 »
@bluecode: welchen treiber hast du durch nen disassembler gejagt? Viele Treiber bereiten nur andere Infos auf... Ansonsten, in/out ist in nem Windowstreiber ohne weiteres direkt möglich.

Wer sich näher damit beschäftigen will, www.rootkit.com hat etliche Beispiele, und das Buch das man da auf der ersten Seite direkt sieht gibts auch auf Deutsch wenn man Englisch nicht so sehr mag *g*. Da steht im prinzip ALLES drin was man irgendwo fürs Treiberdev braucht (ich habs ;)  Sehr schön geschrieben, sehr informativ, und bei grundlegenden C-Kenntnissen sogar mit gelungenen Beispielen auf denen man aufbauen kann).

@topic: Mit den Werten selbst kann man garnichts anfangen, das zeigt lediglich an welche Bereiche Windows da nun zugewiesen hat...
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #3 am: 21. August 2006, 15:52 »
ok, NOOB, du hast Recht. Ich habs grad nochmal probiert. Da das letzte mal schon _sehr_ lang her ist weiß ich nicht welche Datei ich da disassembliert hab. Ich habs diesmal mit system32/nv4_disp.dll versucht. Da sind einige outs, etc. drin, aber das disassembly ist mit objdump mit Option -d ganze 44Mb groß :shock: , also kein zuckerschlecken wenn man es reverse engineeren will...
Kannst ja mal bei NVidia nachfragen, ob du unter ner NDA evtl. die Dokumentation zu den Grafikkarten kriegst.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 21. August 2006, 17:17 »
W32DASM war glaub ich ein sehr gutes Reverse Engineering Tool für Windows. Hab ich mal vor Jahren benutzt. Und das mit den I/O Ports bei NVidia Grakas: leider sind die nur der geringste Teil -> das meiste geht über MemoryMappedIO, d.h. jedes MOV, STOxx, und eigentlich (fast) jeder Befehl kann die Graka ansprechen, da dauert das rausfinden natürlich etwas länger.
Agieren statt Konsumieren!

 

Einloggen