Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Sicherheitskritischer Befehl in XP gefunden!!
Gehe zu Seite Zurück  1, 2, 3
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 18.06.2007, 20:37    Titel: Antworten mit Zitat

Manuel hat Folgendes geschrieben:
Dafür mit einem "s" mehr Zunge rausstrecken zwinkern

Ich wollte es nicht gleich übertreiben grinsen
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 23.06.2007, 14:03    Titel: Antworten mit Zitat

Manuel hat Folgendes geschrieben:
Mal schauen, ob ich das Ding in VirtualBox raufhaue und es da mal teste... durchgeknallt

Ich Vermute, das die Virtuelle Maschine die CPU ganz real auslasten wird, weil das Gastsystem nicht meldet das es nix zu tun hat.

Echte Hardware wäre interresanter.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 23.06.2007, 14:10    Titel: Antworten mit Zitat

Michael Frey hat Folgendes geschrieben:
Manuel hat Folgendes geschrieben:
Mal schauen, ob ich das Ding in VirtualBox raufhaue und es da mal teste... durchgeknallt

Ich Vermute, das die Virtuelle Maschine die CPU ganz real auslasten wird, weil das Gastsystem nicht meldet das es nix zu tun hat.

Echte Hardware wäre interresanter.


Ich weiß nicht ob es schon gesagt wurde.

Aber
was wäre wenn Windows das Netzteil (geht ja bei ATX & Co) einfach ausschaltet? Oder mit einem BlueScreen sofort beendet?

Dann könnte/sollte da gar nichts schlimmes passieren.

Oder mal eine andere Frage:
Kann man die PID eines Prozesses verändern?
Wahrscheinlich nicht, aber wenn es ginge könnte man den Leerlaufprozess seine Rechte streitig machen, durch einen eigenen Thread/Prozess dem man die PID 0 zuweist.

Oder

Was passiert wenn man die TID (Thread-ID) auf 0 setzt?
Werden dadurch dem Thread vom Leerlaufprozess die Rechte an der HW streitig gemacht?

Viele Fragen...
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.06.2007, 14:35    Titel: Antworten mit Zitat

Die PID wird vom Betriebssystem zugwiesen und kann i.d.R. nicht verändert werden.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 23.06.2007, 15:02    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
Die PID wird vom Betriebssystem zugwiesen und kann i.d.R. nicht verändert werden.


Ja ich habe mir schon gedacht, dass es dafür keine API-Funktion gibt.

Irgendwo legt Windows ja auch diese Daten ab. Da das ja alles rein temoräre Daten sind, wird das wohl irgendwo im RAM liegen. Wahrscheinlich im RAM-Bereich vom Kernel. Und wenn man das verändert ... ?
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 23.06.2007, 15:23    Titel: Antworten mit Zitat

lol

Da passt Windows schon auf, da musst schon extremen Aufwand betreiben...
Musst dir ein richtiges Debuggingmodul baun um auf den RAM direkt zugreifen zu dürfen...
Deine normalen Progs laufen näml. abstrahiert in nem eignen Speicherbereich, haben da 4gb RAM (unter 32 Bit) mit dem sie tun und lassen können was sie wollen ohne dass was passiert... soweit ich weiß happy
Ich kann aber net erklärn wie das zusammen mit den WinAPI-Jumps arbeitet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.06.2007, 16:07    Titel: Antworten mit Zitat

Hehe. Wie gesagt, bei Intel und sogar bei MS saßen keine Anfänger am Entwurf der Schutzmechanismen bzw. des Betriebssystems. zwinkern
Es gibt in den x86 CPU's (und eigentlich auch in den meisten anderen Architekturen) eine MMU, die dafür sorgt, dass wenn sie richtig eingerichtet wurde, ein Programm nur auf seinen eigenen Speicherbereich zugreifen kann. (Im ProtectedMode, 32-Bit, sind das nunmal 4GB, auch wenn im Bestfall unter Windows nur 3GB benutzt werden können. Normal-Konfiguration "nur" 2GB pro Task.) Für diese Verwaltung gibt es verschiedene Privilegierungsstufen, Ringe. Ring 0, 1, 2 und 3. Ring 0 ist dabei der höchstprivilegierte, Ring 3, der, der am wenigsten darf. zwinkern Alles was dazwischen angesiedelt ist, sind Abstufungen, die in Windows bzw. Linux imho nicht verwendet werden. Ring 0 ist also für den Kernel, für Teile vom Windows-Kernel selbst, sowie Treiber (kann Sicherheitsproblem sein). Ring 3 wird für normale Anwendungen benutzt.
Treiber laufen wie gesagt im Ring 0 und können so bei fehlerhafter Programmierung das System abstürzen lassen (sollte denk ich mal fast jeder schon mit Bekanntschaft gemacht haben).
B2t...versucht nun ein Code aus dem Ring-3 (2, oder 1) auf einen anderen, ihm nicht gehörenden Datenblock aus dem gleichen oder einem höheren Ring zuzugreifen, wird ein CPU-Exception ausgelöst. Die wird i.d.R. vom OS abgefangen, normalerweise wird das Programm dann mit einer Fehlermeldung beendet (Unter Windows doch sehr bekannt: "Konnte Vorgang Read/Write auf Adresse 0x000..."
Hingegen kann ein Code aus einem beliebigen Ring auf Code-/Daten eines darunter liegenden Rings zugreifen.
Sache des Betriebssystems ist es nun, sicherzustellen, dass alles korrekt eingerichtet wird, um optimalen Schutz zu garantieren.
Nichtsdestotrotz gibt es mit genügend Zeit, Langeweile und Geschick trotzdem Möglichkeiten...

Um das ganze jetzt ein Stückchen näher auf die PID's zu beziehen...du müsstest erstmal den entsprechenden Speicherbereich finden...viel Spaß. Zunge rausstrecken
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 23.06.2007, 17:05    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
Hehe. Wie gesagt, bei Intel und sogar bei MS saßen keine Anfänger am Entwurf der Schutzmechanismen bzw. des Betriebssystems. zwinkern
Es gibt in den x86 CPU's (und eigentlich auch in den meisten anderen Architekturen) eine MMU, die dafür sorgt, dass wenn sie richtig eingerichtet wurde, ein Programm nur auf seinen eigenen Speicherbereich zugreifen kann. (Im ProtectedMode, 32-Bit, sind das nunmal 4GB, auch wenn im Bestfall unter Windows nur 3GB benutzt werden können. Normal-Konfiguration "nur" 2GB pro Task.) Für diese Verwaltung gibt es verschiedene Privilegierungsstufen, Ringe. Ring 0, 1, 2 und 3. Ring 0 ist dabei der höchstprivilegierte, Ring 3, der, der am wenigsten darf. zwinkern Alles was dazwischen angesiedelt ist, sind Abstufungen, die in Windows bzw. Linux imho nicht verwendet werden. Ring 0 ist also für den Kernel, für Teile vom Windows-Kernel selbst, sowie Treiber (kann Sicherheitsproblem sein). Ring 3 wird für normale Anwendungen benutzt.
Treiber laufen wie gesagt im Ring 0 und können so bei fehlerhafter Programmierung das System abstürzen lassen (sollte denk ich mal fast jeder schon mit Bekanntschaft gemacht haben).
B2t...versucht nun ein Code aus dem Ring-3 (2, oder 1) auf einen anderen, ihm nicht gehörenden Datenblock aus dem gleichen oder einem höheren Ring zuzugreifen, wird ein CPU-Exception ausgelöst. Die wird i.d.R. vom OS abgefangen, normalerweise wird das Programm dann mit einer Fehlermeldung beendet (Unter Windows doch sehr bekannt: "Konnte Vorgang Read/Write auf Adresse 0x000..."
Hingegen kann ein Code aus einem beliebigen Ring auf Code-/Daten eines darunter liegenden Rings zugreifen.
Sache des Betriebssystems ist es nun, sicherzustellen, dass alles korrekt eingerichtet wird, um optimalen Schutz zu garantieren.
Nichtsdestotrotz gibt es mit genügend Zeit, Langeweile und Geschick trotzdem Möglichkeiten...

Um das ganze jetzt ein Stückchen näher auf die PID's zu beziehen...du müsstest erstmal den entsprechenden Speicherbereich finden...viel Spaß. Zunge rausstrecken


Ahh wieder was dazugelernt... ich nehm mal an das windows gut wache schiebt vor den ringportalen happy

man müsste doch eigtl __nurrr__ nach den PIDs suchen. die werden wohl in einem Zusammenhängenden Speicherbereich sein...


nichtsdesdotrotz wäre das ein extremer aufwand...
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Manuel



Anmeldungsdatum: 23.10.2004
Beiträge: 1271
Wohnort: Bayern

BeitragVerfasst am: 23.06.2007, 17:46    Titel: Antworten mit Zitat

Bei 16bit-Betriebssystemen ist es by the way mit entsprechenden Programmen problemlos möglich, direkt im Speicher und auf Hardware zuzugreifen... Besonders lustig ist es mit einem C++-Compiler, wenn man einen Quellcode debuggen muss, der mit Pointern arbeitet (da kann man bei fehlerhaftem Verhalten schonmal das OS zerschießen <- /me hats mal bei Win311 geschafft^^.)
_________________
DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 23.06.2007, 18:22    Titel: Antworten mit Zitat

Manuel hat Folgendes geschrieben:
Bei 16bit-Betriebssystemen ist es by the way mit entsprechenden Programmen problemlos möglich, direkt im Speicher und auf Hardware zuzugreifen... Besonders lustig ist es mit einem C++-Compiler, wenn man einen Quellcode debuggen muss, der mit Pointern arbeitet (da kann man bei fehlerhaftem Verhalten schonmal das OS zerschießen <- /me hats mal bei Win311 geschafft^^.)


Naja


16-Bit OSse kennen meistens nicht das Ring-System. Kenne selber keins bei dem das der Fall wäre.

Und diese OSse können dann meistens auch die MMU nicht ansprechen, geschweige denn damit richtig umgehen zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 23.06.2007, 19:57    Titel: Antworten mit Zitat

Dein Halbwissen ist ganz nett, aber nicht vollständig. zwinkern

Das hat nix mit "nicht ansprechen" zutun.
Es gibt strikte Trennungen zwischen 16Bit, 32Bit und 64Bit-Befehlen.
Befehle für das Laden spezieller Tabellen, die die MMU braucht, sind aber erst ab dem PM verfügbar (32Bit). Zum Beispiel LGDT und LIDT. Direkten Zugriff auf die MMU bekommst du nicht. zwinkern

csderats hat Folgendes geschrieben:

16-Bit OSse kennen meistens nicht das Ring-System.

Das hat nichts mit nicht kennen zu tun.
Diese Sachen können nunmal nur ab dem 32Bit-Mode angesprochen werden.
16Bit-Betriebssysteme sind RealMode-Systeme.
csderats hat Folgendes geschrieben:

Und diese OSse können dann meistens auch die MMU nicht ansprechen, geschweige denn damit richtig umgeh

Hat auch nix mit "nicht können" zu tun.

Lies dich in den PM ein, dann verstehst du's.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 24.06.2007, 11:01    Titel: Antworten mit Zitat

Man muss aber dazusagen, dass Mao's Ring-System etwas x86er-spzifisches ist. Bei vielen gibts AFAIK nur ein Supervisor-User-Modell.
_________________
Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 24.06.2007, 11:42    Titel: Antworten mit Zitat

Naja, ich hab mich mit anderen Architekturen (noch) nicht wirklich auseinander gesetzt. Zudem wird ja in den meisten Betriebssysteme ohnehin nur Ring 0 und 3 verwendet, was dem Prinzip ja eigtl. recht nahe kommt.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3
Seite 3 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz