Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi LPT-Port steuern (https://www.delphipraxis.net/45023-lpt-port-steuern.html)

Mephistopheles 29. Apr 2005 11:29

Re: LPT-Port steuern
 
Zitat:

Zitat von runger
Das von mir gelieferte Codebeispiel benutzt einen Treiber. ( Hatte ich beschrieben ).
Es wird also der ganz normale Weg durch Windows genommen, so wie das der Printer und alle anderen Geräte auch tun. Der Treiber wird beim ersten Versuch die IO.dll zu benutzen installiert.

Das hier ist kein Peek oder Poke wie du es vielleicht von Basic gewohnt bist.

Irrtum! Dank des Treibers ist es wie Poke oder Peek. Auch wenn eine Schicht (Transition deines Calls von U-Mode in K-Mode) dazwischen existiert.
Der Treiber wird nur installiert, wenn der Benutzer Admin ist - was dir zu denken geben sollte. Admin ist die höchste Instanz im System und darf prinzipiell mehr als SYSTEM (nämlich Netzwerkzugriffe) - und kann sich eben auch SYSTEM-Rechte verschaffen.

Und nein, dies ist nicht der Weg den Drucker und andere Geräte gehen. Als wertvolle Informationsquelle darf ich dir das DDK andienen.

Zitat:

Zitat von NicoDE
Es spricht nichts gegen die Verwendung eines Treibers. Es gibt erst dadurch ein 'Problem', wenn die Nutzung des Treiber keiner Einschränkung unterliegt.

Z.B. ACLs und andere Mechanismen.

Zitat:

Zitat von NicoDE
In diesem Falle wird es sich wohl um einen generischen Treiber handeln, der Zugriff auf alle Ports erlaubt.

Soll ich IDA mal anwerfen? Habe hier noch keine anderen Treiber gesehen als generische. Und einige Threads zu diesem Thema gibt's schon.

Zitat:

Zitat von NicoDE
Zwar wird dadurch sein Problem auf eine sehr allgemeine Weise gelöst, aber andere Software wird nicht daran gehindert unbeabsichtigte Dinge mit dem System anzustellen.

Nicht nur die Software (also die unseres Fragestellers), sondern jegliche Software die mal eben probiert ob ein generischer Porttreiber installiert ist. Soviele gibt's nicht und die meisten "basieren auf" (lies: "sind Plagiate von") dem generischen Porttreiber aus dem DDK. Das heißt in vielen Fällen, daß man mal die entsprechenden IOCTLs testen kann *grins*

Zitat:

Zitat von NicoDE
Sicherheit ist eine Frage des Vertrauens. Wenn er damit leben kann, dass jede Software auf seinem System potentiell alle Ports verwenden kann, dann ist dies seine Entscheidung. Ich persönlich würde dieses Risiko auf Dauer nicht eingehen (und schon gar nicht für Produktionssysteme).

Pah, Sicherheit? :zwinker:
Übrigens wäre dies ein Grund für große Firmen den Einsatz solcher Software abzulehnen. Insofern natürlich vom Autor ehrlich angegeben wird, wo der Haken liegt.

runger 29. Apr 2005 12:18

Re: LPT-Port steuern
 
Hallo,

ich bin's echt leid!
Hier kann man reinstellen was man will, immer gibt's irgendjemand der ein Haar in der Suppe findet.
Ich wollte doch dem guten Menschen nur helfen.

Die Windows - Betriebssysteme sind so unsicher, dass es hier wohl auf meinen Beitrag für dies eine spezifische Lösung nicht ankommt.

Rainer

Mephistopheles 29. Apr 2005 12:42

Re: LPT-Port steuern
 
Zitat:

Zitat von runger
ich bin's echt leid!

1. Ist das nicht gegen dich gerichtet (ich erwähnte andere gleichartige Threads; s.o.).

Zitat:

Zitat von runger
Hier kann man reinstellen was man will, immer gibt's irgendjemand der ein Haar in der Suppe findet.
Ich wollte doch dem guten Menschen nur helfen.

2. Kann ich verstehen und finde ich auch gut.
Aber eine Frage: wenn dich jemand an einer Tankstelle (natürlich gibt's dort ein paar Benzinlachen in meiner Geschichte) nach Feuer für eine Zigarette fragt, was machst du? Feuer geben und schleunigst wegfahren (Vgl. dein obiger Ansatz) oder ihm erklären, daß man an einer Tankstelle nicht mit Feuer spielt und ggf. andere Leute auf das Problem aufmerksam machen (Vgl. mein Ansatz)?

Zitat:

Zitat von runger
Die Windows - Betriebssysteme sind so unsicher,

???
Kannst du das mit irgendetwas begründen? Weißt du, wann die letzten Löcher gefunden wurden, die Ring0-Zugriff erlaubten und außerhalb administrativer Rechte funktionierten?
Es ist ja ein Allgemeingut, daß Windows unsicher wäre. Ich bin davon überzeugt, daß es das nicht ist (NT-Plattform).
Aber lassen wir die Diskussion über Windows. Manche finden es halt nicht gut und arbeiten dennoch damit - ich finde es super und arbeite auch damit.

Zitat:

Zitat von runger
dass es hier wohl auf meinen Beitrag für dies eine spezifische Lösung nicht ankommt.

Schlechte Einstellung, denke ich. Wenn du willst, kann ich dir Code geben, mit dem du deinen CRT-Monitor zum Pfeifen (oder wenn er gut ist, zum Abschalten) bringst. Ich muß nur die entsprechenden Registerwerte aus meinem VGA-Buch raussuchen. Dies sind die Implikationen deines generischen Porttreibers, wenn ich es mal anhand eines krassen Beispiels betrachte.

xstream 29. Apr 2005 14:46

Re: LPT-Port steuern
 
hei man kriegt euch wieder ein...

1. wird die software NIE verbreitet

2. brauch ich die software dort, wo nur programme hinkommen wo ich weiss was es ist, bzw. kein internet

3. wird die software wahrscheindlich nur auf einer zeitspanne von 2 bzw. 3 monaten gebraucht und nicht für immer

DGL-luke 29. Apr 2005 18:35

Re: LPT-Port steuern
 
@crt zum rauchen bringen: wer hat denn jemals vom vga-port ansteuern gesprochen? nur so kleine zwischenfrage... zur not kann man ja diesen treiber so modifizieren, dass er genau dafür nicht mehr zu gebrauchen ist.

Mephistopheles 29. Apr 2005 18:39

Re: LPT-Port steuern
 
Zitat:

Zitat von DGL-luke
@crt zum rauchen bringen: wer hat denn jemals vom vga-port ansteuern gesprochen? nur so kleine zwischenfrage... zur not kann man ja diesen treiber so modifizieren, dass er genau dafür nicht mehr zu gebrauchen ist.

Der Witz ist ja gerade, daß das Gros dieser Treiber eben so ausgelegt ist, daß man nicht nur den LPT ansteuern kann. Daher dieses Beispiel, welches durchaus machbar ist. Willst du dich dafür auch als Tester zur Verfügung stellen? ;)

supermuckl 30. Apr 2005 01:35

Re: LPT-Port steuern
 
der code der diese zugriffe durch den porttreiber ausübt existiert doch garnicht in dem projekt!

ausserdem wenn du auf solche kleinigkeiten die deinen lieben ring0 belästigen KÖNNTEN reagierst, dann solltest du dich mal aufrichten und schauen das man auch mit einem einzigen befehl die festplatte formatieren kann. da brauch ich keinen ring0 zugriff und das hat mindestens genausoviel schaden

BLABLABLA
ey leute wird hier nun geholfen oder um jede klitzekleine sicherheitslücke, die nichtmal existiert, weil der code dazu fehlt und die verbreitung erstrecht, hochgepusht ? dann kann ich gleich mal bei den unzähligen chatprojekten die sich hier angesammelt haben mal ein paar exploits rausfinden.. gibts ja immerhin bei den meisten auch gleich die soße dazu..

MENSCH kriegt euch mal wieder ein O_o

/ extrem offtopic und aufregung ende

dragi 30. Apr 2005 08:28

Re: LPT-Port steuern
 
@ supermuckl

ich finde es gerade in einem Forum, in dem es um die Entwicklung von Software geht, sehr wichtig auf solche Gefahren hinzuweisen. Auch wenn diese nicht sehr akkut sind sollte es doch zumindest erwähnt werden und jeder der sich Softwareentwickler nennt und sich diesen Thread ansieht weil er selbst gerade versucht auf den LPT zuzugreifen kann nicht genug gewarnt werden bevor er etwas entwickelt das er kommerziell vertreibt und dann potentiell unsicher sein könnte.

Nur meine Meinung...aber sichere Software ist ehute das A und O. Und ausseredem zeigt ja Mephistopheles das er nicht nur daher redet. Er hat ja in einem anderen Thread ein Projekt ins Leben gerufen das sich genau damit beschäftigt.

Gruss

Dragi

runger 30. Apr 2005 09:00

Re: LPT-Port steuern
 
Hallo Mephistopheles,

ich glaub ich hab dir unrecht getan! Ich hab erst im Laufe der Diskussion gecheckt was euch stört.
In dieser Beziehung gebe ich euch völlig recht.

Bemerkung zu dem Windows-Murks:
Ich bin Systemadministrator und verbringe meine Zeit zu 40% damit Updates Servicepacks und Sicherheitslückenschliesser zu installieren.

Das war alles was ich dazu zu sagen habe!

Rainer

Mephistopheles 30. Apr 2005 10:05

Re: LPT-Port steuern
 
Zitat:

Zitat von supermuckl
der code der diese zugriffe durch den porttreiber ausübt existiert doch garnicht in dem projekt!

Tatsache? Er existiert aber im Treiber. Wahlfreier Zugriff auf I/O-Ports nämlich.

Zitat:

Zitat von supermuckl
ausserdem wenn du auf solche kleinigkeiten die deinen lieben ring0 belästigen KÖNNTEN reagierst, dann solltest du dich mal aufrichten und schauen das man auch mit einem einzigen befehl die festplatte formatieren kann. da brauch ich keinen ring0 zugriff und das hat mindestens genausoviel schaden

Lustigerweise setzt dieser Befehl (FORMAT) viel höher an als ein IN oder OUT zu einem beliebigen I/O-Port. Versuche mal die Systemplatte im laufenden System zu formatieren - und jetzt versuche das mal mit einem Low-Level Disk Driver :mrgreen: im laufenden System.

Der Punkt ist folgender: der Code im Treiber existiert! Deine Kommentare hin oder her. Wirf einen Disassembler an (Download siehe meine Signatur) und schau es dir selber an, wenn du es nicht glauben kannst. Jetzt kommt natürlich xstream, der Orginalposter, (lt. eigenem Bekunden noch sehr jung - 15? -, deshalb ist ihm der folgende Punkt vermutlich noch nicht bewußt) und nimmt einen der o.g. Treiber, der eine Lücke in die Systemsicherheit reißt. Heute sagt er noch: hey, das ist nur für ein Projekt usw. usf.
In 5 Jahren hat er dann vielleicht einen Job als Systemprogrammierer. Wie's der Zufall so will, fragt ihn sein Chef, ob er da nicht was hätte ... man bräuchte in einem gewissen Programm die Möglichkeit einzelne Pins am LPT anzusteuern. xstream denkt kurz nach und denkt sich: man, das hast du doch schon mal gemacht. *kram* *kram* ... voila, Code gefunden.
Und schneller als man es sich versieht, ist der Code trotz aller Bekundungen in einer Produktivumgebung im Einsatz. ... und dieses Szenario spricht noch nichtmal von den dutzenden Lesern, die hier mitlesen und damit auf die gleiche Spur geleitet werden. :zwinker:

Hallo Rainer,

Zitat:

Zitat von runger
Ich hab erst im Laufe der Diskussion gecheckt was euch stört.

Das freut mich, denn es war mein Ansinnen.

Zitat:

Zitat von runger
Ich bin Systemadministrator und verbringe meine Zeit zu 40% damit Updates Servicepacks und Sicherheitslückenschliesser zu installieren.

Wow. Das ist viel. Dank SUS und selektiver Freigabe von einzelnen Updates hat sich bei uns der Aufwand speziell für Updates in den letzten 3 Jahren minimiert. Am Anfang (1999) hatten wir noch NT4 (nur Workstations, kein Server), was aber ab ca. 5 Rechnern untragbar wird und noch in 1999 mit einem Server aufgestockt wurde.
Aktuell versuchen wir etwas Geld für einen neuen Server rauszuleiern. Wahrscheinlich überall das gleiche ;)

Kleine Bitte:
Wenn jemand von euch sinnvollen Code mit IN/OUT hat, mit dem ein DOS-fähiger Drucker angesteuert werden kann, möge er mir den bitte per PN oder hier zukommen lassen. Mein aktuelles Problem ist nicht, wie man den schon vorhandenen Treiber anspricht, sondern wie man ihn so anspricht, daß er was sinnvolles tut ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz