| |
|
|
| Ich brauche mal etwas Brainstorming. Folgendes Problem: Ein Profanprogramm startet einen Treiber, der im Kernelmode bestimmte Daten auslesen soll. Diese Daten müssen dann an das Profanprogramm übermittelt werden. 1.) Der Treiber muß wissen, welche Daten er auslesen soll - es müssen also Daten vom Profanprogramm an den Treiber übermittelt werden.
2.) Die Ausgelesenen Daten sollen vom Profanprogramm angezeigt werden. Es müssen also Daten vom Treiber an das Profanprogramm übermittelt werden.
Dabei gibt es folgendes Problem: Der Treiber kann praktisch nur APIs aus der ntoskrnl.exe und der ntdll.dll benutzen, da in den Kernel die GDI32, USER32, KERNEL32.dll,... nicht geladen sind. Wie ließe sich das am besten bewerkstelligen? Nur Ideen gewünscht, Quelltext natürlich nicht unbedingt. |
|
|
| |
|
|
|
Michael Wodrich | Was steht denn an Möglichkeiten zur Verfügung? Message-Handling?
Irgendwo muß doch in den Treiber-Kits stehen wie man Daten an die Treiber leitet und empfängt. Genau dort würde ich nach den Infos suchen.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 05.11.2006 ▲ |
|
|
|
|
| [quote:77fcc8a5e9=Michael Wodrich]Was steht denn an Möglichkeiten zur Verfügung? Message-Handling? [/quote:77fcc8a5e9] Messages vom Profanprogramm an den Treiber kann ich auf keinen Fall senden. Andersherum wird es wohl auch sehr schwierig werden. Die Festplatte und die Registry stehen auf jeden Fall zur Verfügung.
[quote:77fcc8a5e9=Michael Wodrich] Irgendwo muß doch in den Treiber-Kits stehen wie man Daten an die Treiber leitet und empfängt. Genau dort würde ich nach den Infos suchen.
Schöne Grüße Michael Wodrich[/quote:77fcc8a5e9] Mal schauen... Es könnte aber durchaus sein, das ein solcher Austausch gar nicht vorgesehen ist und man selbst improvisieren muß. Davon gehe ich eigentlich sogar fast aus.... |
|
|
| |
|
|
|
Michael Wodrich | Nein brauchst Du nicht von ausgehen.
Auch unter DOS war es schon so, daß mit IOCTRL eine Schnittstelle da war, mit deren Hilfe man Daten in beide Richtungen leiten konnte.
Wie sonst kann man Daten an einen Druckertreiber senden und dieser den Druckerstatus zurückmelden?
Es gibt da mit Sicherheit einen Weg, der in den Treiberkits auch beschrieben wird.
Habe leider im Moment wenig Zeit für einen Treiber-Ausflug, aber Du wirst dort mit absoluter Sicherheit fündig.
ALLE Treiber müssen Daten senden und empfangen können, sonst ist ihre Existenz doch sehr Zweifelhaft.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 05.11.2006 ▲ |
|
|
|
|
| Besten Dank, das bringt mich schon etwas weiter. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| Mmmh... die Funktionen, die ich da kenne, kommen aus der Kernel32. Kann ja mal schauen, ob es in der NTDLL da was entsprechendes gibt. Ein direktes Schreiben in den Speicher des Profan-Prozesses wäre auch möglich. |
|
|
| |
|
|
|
| Hallöchen...
Das Schlagwort scheint hier Device Driver zu sein. Um das zu machen, was ich eigentlich vorhabe, werde ich mich da wohl komplett einarbeiten müssen . Ich werde also in der nächsten Zeit nur noch sporadisch hier sein und mir wirklich nur das durchlesen, was mir wichtig erscheint.
Was ich vorhabe, ist einen Memory-Scanner für Speicherbereiche oberhalb von 2GB zu entwickeln, in der Art wie das [...] zur Zeit für Speicherbereiche unterhalb von 2GB tun kann. Es würde damit die Möglichkeit geben, nach beliebiegen Objekten im Speicher zu suchen und diese bei Bedarf direkt zu ändern.
Beispiel: Ein als Treiber programmierter Virus hat einen Rechner befallen. Ein Virenscanner kann ihn nicht finden und durch bestimmte Methoden hat er sich für normale Treiberlistings unsichtbar gemacht. Mit einem solchen Tool könnte man dann zuerst nach der Liste der geladenen Module suchen und sich diese komplett anzeigen lassen. Sind hier bestimmte Veränderungen zu sehen, hat man schon mal dier Adresse (und Größe) des Treibers. Über diese Daten könnte man dann die entsprechende DRIVER_OBJECT Struktur des Virus ermitteln und den Treibernamen bekommen.
Da man mit dem Tool, das ich da bauen möchte, wie bei [...] nach beliebiegen Daten im Speicher suchen können soll, ließe sich alles möglich damit anstellen und man könnte quasi dem Betriebsystem Windows die Unterwäsche ausziehen.
Das ganze ist für jemanden wie mich, der weder großartig Ahnung von ASM noch von Treiberprogrammierung hat eine riesengroße Aufgabe, und ich bin schon sehr gespannt, wie weit ich damit komme .
Gruß
Andreas |
|
|
| |
|
|