BlackBoard » Design, Programmierung & Entwicklung » Programmieren » tastatur sperren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen tastatur sperren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
scr!pTk!d scr!pTk!d ist männlich
Member


Dabei seit: 10.11.2002
Beiträge: 276

tastatur sperren       Zum Anfang der Seite springen

hi!

weiß irgendjmd welche speichersektoren im ram für tastatureingaben vorgesehen sind? (wenn man diese dauerhaft überschreibt, würde dadurch doch die komplette tastatur geperrt oder?)

mfg scr!pTk!d

__________________
ceterum censeo carthaginem esse delendam
26.12.2002 13:50 scr!pTk!d ist offline E-Mail an scr!pTk!d senden Beiträge von scr!pTk!d suchen
Lektor
gesperrt


Dabei seit: 27.07.2001
Beiträge: 298

      Zum Anfang der Seite springen

Also der Datentransport der Tastatur läuft über
das Interruptsystem. Das heist, wenn Daten von oder zu einem Speichermedium oder einer Schnittstelle transportiert werden müssen, muß der PC seine aktuelle Arbeit unterbrechen. Obwohl diese Unterbrechungen nur millionstel Sekunden betragen, ist man bemüht, solche Unterbrechungen auf ein Mindestmaß zu beschränken. So sollen zum Beispiel unnötige Wartepausen, die ein ständiges Überprüfen der Schnittstelle bzw. des Speichermediums erfordern würde, vermieden werden. Um das zu vermeiden, führt der Rechner nur dann Unterbrechungen ein, wenn auch wirklich Bedarf dafür besteht. Deshalb meldet die Controller-Karte dem Hauptprozessor eine Art Unterbrechungs-anforderung, einen Interrupt Request ( IRQ ) wenn ein solcher Bedarf besteht.

Jeder Kommunikationspartner eines PCs bekommt eine eigene Interrupt-Nummer. Für jede dieser Nummern gibt es im PC eine Signalleitung. Hierbei ist zu beachten, dass jedes in Frage kommende Teil eine eigene und freie Interrupt-Nummer hat bzw. bekommt. Gäbe es eine Doppel- belegung, so würden zwei unterschiedliche Erweiterungen oder Systemkomponenten auf die Anforderung reagieren, und es käme zu einer Art Kollision auf dem Datenbus, so dass keine der beiden Komponenten richtig funktionieren würde. Fordert eine Karte oder eine Baugruppe eine Unterbrechung ( Interrupt ) an, so erkennt der Prozessor anhand der Nummer, welche Komponente diese Unterbrechung angefordert hat.

Eine Reihe von Interrupt-Nummern sind im System bereits fest vergeben : Sie werden von unverzichtbaren Funktionsgruppen wie etwa Festplatte, Diskettenlaufwerk, Tastatur usw. genutzt. Andere Nummern sind frei geblieben und dürfen mit Hilfe von Treibern bzw. Jumpern auf den Karten an zusätzlich eingebaute Erweiterungen vergeben werden.

So weit ist uns das ja allen klar.
Jetzt liegt der Tastaturpuffer standartmäßig auf IRQ 1.
Die vom I/O-Bereich verwendeten Adressen sind im MS-DOS-Standart festgeschrieben.

Systeminterne Nutzung
0000h bis 00FFh

Diese I/O-Bereiche befinden sich bereits am Anfang des Hauptspeichers und umfassen meistens nur einige Bytes.

Windows benutzt meisten 0060-00064. (E/A-Bereich)
Wenn man jetzt ein treibervergleichbares Tool beim Systemstart mitstartet, was die selben Speicheradresssen, wie der Interrupt 01 belegt,
müßte es theoretisch zu einem Speicherkonflikt kommen oder scr!pTk!d(dy)?

Auf so eine Frage kann nur jemand mit Assembler-Programmierungserfahrung antworten, was Du genau weist. Also sollte der, der die Frage stellt, eine sehr hohe Assemblerprogrammiererfahrung haben, sonst seh ich das als Provo-Verarschung an. Also können wir beide uns ja auf nem dezenten Hex-Edit-Level unterhalten oder?

Grüßle

Lektor

_________________
Wrecking Crew
07.02.2003 02:14 Lektor ist offline Beiträge von Lektor suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Lektor hat recht:

Normalerweise kann man so etwas nur erreichen indem man sich an einen Interrupt hängt. Wenn Du genaueres darüber wissen willst empfehle ich dir dokumentierte (DOS)Viren sourcecodes. Die benötigten nämlich um Dateien zu infizieren den allseits bekannten INT21-Hook mit dem der Virus die Request zum öffnen von Dateien abfangen konnte. Das aber nur so am Rande.

Win32 bietet dafür einige nette Funktionen wie z.B.
BlockInput(BOOL bBlock);

Wenn auch Strg+Alt+Entf blockiert werden soll, muß man zu einem kleinen Trick greifen. Man setzt den Systemparameter für den Bildschirmschoner so, das Windows glaubt, daß der Bildschrimschoner läuft. Dann wird Strg+Alt+Entf deaktiviert.

Zum blockieren:
SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, 1, 0);

Zum Aufheben der Blockierung:
SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, 1, 0);
07.02.2003 16:36 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

Da muss ich jemanden enttäuschen *g*
Zitat:
- How can i restrict CTRL+ALT+DEL,ALT+TAB+CTRL+ESC keys ?

invoke SystemParametersInfo,SPI_SCREENSAVERRUNNING,1,NULL,NULL
; Windows98 only 1 disables 0 enables

<TOP>

das steht zwar nicht in der Microsoftdoku (da steht nur, dass dieser Befehl nur zu internen Zwecken benötigt wird)
Aber auf einer infoffiziellen Doku irgendwo auf meiner Platte. Überprüft hab ich das allerdings noch net.

Zitat:

Auf so eine Frage kann nur jemand mit Assembler-Programmierungserfahrung antworten, was Du genau weist. Also sollte der, der die Frage stellt, eine sehr hohe Assemblerprogrammiererfahrung haben, sonst seh ich das als Provo-Verarschung an. Also können wir beide uns ja auf nem dezenten Hex-Edit-Level unterhalten oder?


Lektor: woher willst du wissen, dass er das genau gewusst hat? Außerdem ist seine formulirung halb so wild...
Assemblerkenntnisse hin oder her, ring0 Zugriff unter win2k/XP zu bekommen (um die Interrupts zu blockieren) dürfte viel,viel Spass und Spannung bereiten *g*

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CDW: 07.02.2003 19:37.

07.02.2003 19:35 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

@CDW: wo wild ist das nicht. Zumindest nicht, wenn man als Administrator angemeldet ist. Man lädt einfach einen kleinen Kernel-Mode-Treiber und schon hat man ring0 Zugriff.
08.02.2003 15:47 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

@Compuholic: irgendwo hab ich ja auch einen (von Icz-Seite), aber ich würde es trotzdem mal gerne selber versuchen.
Außerdem muss man dann Ralfs Interrupt liste herauskramen und ich hab die nicht mal vollständig.Jedoch würden mich schon die ring0 experimente reizen (Die Abstürze,die man dann produziert *g*)
08.02.2003 19:28 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
scr!pTk!d scr!pTk!d ist männlich
Member


Dabei seit: 10.11.2002
Beiträge: 276

Themenstarter Thema begonnen von scr!pTk!d
      Zum Anfang der Seite springen

@lektor: wie kommst du darauf, dass ich mich gut mit assembler auskenne? ich kenne damit überhauptnicht aus. warum sollte die frage denn deshalb eine "Provo-Verarschung" sein???

__________________
ceterum censeo carthaginem esse delendam
12.02.2003 16:12 scr!pTk!d ist offline E-Mail an scr!pTk!d senden Beiträge von scr!pTk!d suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » tastatur sperren

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH