Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

1

07.11.2007, 14:04

Erfahrungsbericht - Spielere mit Arbeisspeicher

Hi,

hab vor einiger Zeit mal ein programm geschrieben, welches eine bestimmte anzahl bytes im Ram reservieren kann die adresse ausgeben zur eingabe einer speicheradresse auffordern kann, dort lesen und schreiben etc. Ein Miniprojekt zum ausprobieren eben. SO hab dann gleich mal 2 instanzen vom proggie gestartet. bei der ersten einfach etwas speicher reserviert dort ein bissl text hinterlassen. dann bei der 2. instanz die adresse des speichers eingegeben, der durch die erste reserviert wurde und versucht dort zu lesen. Dann kam ein zugriffsfehler. Für mcih bedeutet das folgendes: Windows überprüft JEDEN Speicherzugriff, und schmeisst mit fehlern, wenn ein programm etwas aus dem ihm zugeteilten speicher raus ist.

Das ganze ist inzwischen 2 monate (wenn nicht sogar noch mehr) her.
Habe das nur aus folgendem grund gepostet:
Ich hab gestern einen dienst entdeckt, der geschützter Speicher(oder so ähnlich hieß). Jetzt würde mich interessieren, ob diese fehlermeldungen und damit auch die speicherzugriffsüberprüfungen abgeschaltet werden, wenn ich den dienst beende. das würde ja gerade beim gaming leistungsvorteile bringen, wenn nicht mehr jeder speicherzugriff überprüft wird, oder nciht? Habs noch nicht einfach ausprobiert, was beim beenden passiert, weil es kann ja sein, dass ich mir mein system damit zerschiesse.
Kennt sich jemand näher damit aus?

Socke

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.11.2007, 14:07

du solltest dich mal mit den konzepten "prozess" und "virtueller arbeitsspeicher" auseinandersetzen ;)

Anonymous

unregistriert

3

07.11.2007, 15:01

Hi, das schützen des Arbeitsspeichers (und jeder Art von Buffern) ist ein wichtiger Prozess der dem System ermöglicht "stabil" zu laufen. Zwar wäre es rein theoretisch Möglich das zu umgehen, das Resultat wären aber PCs die keine 5 Minuten laufen würden ohne fatale Super Crashs. Ein Punkt dabei ist auch das Windows alle Daten und Adressen im Blick hat um die Auslagerung der Dateien zu managen (Swapfile).

Eine Möglichkeit (wie dot scho andeutet) um solche Sachen zu umgehen (und noch andere böse Sachen anzustellen) sind virtuelle Maschinen. Dabei bleibt das Muttersystem sicher und die Fehler können abgefangen werden.

cu

Sicaine

unregistriert

4

07.11.2007, 18:59

Du kannst aber mit ner WinApifunktion auf den Speicherbereich eines anderen Prozesses zugreifen. Wie genau? Ka ich kenn das aber von nem Kumpel und diesem Gamecheatingtool. BZw. was halt darauf ausgelegt ist, Werte zur Laufzeit zu aendern(Geld etc.)

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

5

08.11.2007, 14:40

Sicaine ich nehme an du meinst diese trainer. hat mich schon immer mal interessiert, wie man sowas schreibt. ist denke ich net ganz einfach und trotzdem gibbet die dienger free im internet. da werde ich mich mal schlau machen glaube ich weil das finde ich interessant(variablen zur laufzeit von aussen verändern klingt gut). Falls jemand schon links nur her damit.

Naja der Thread(und auch meine intelligenz) wurden gestern im irc ziemlich durch den dreck gezogen, deshalb werde ich mich hier im forum warscheich erstmal etwas zurückziehen.

Das Thema an sich finde ich jedoch sehr interessant. Eine frage hätte ich noch. Rein theoretisch müsste man doch keinen speicher reservieren(mit new), sondern könnte sich einfach ne adresse raussuchen und dort seine daten hintun.(das geht natürlich nur ohne win also zb mit dos etc). Stimmt das? Also was ich damit frage will ist: Ist new nur für betriebssysteme gedacht und wenn man ohne eins proggen würde(oder eben dos nimmt etc) dann würde es nichts bewirken?

Socke

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

6

08.11.2007, 21:07

Zitat von »"Faule Socke"«

Rein theoretisch müsste man doch keinen speicher reservieren(mit new), sondern könnte sich einfach ne adresse raussuchen und dort seine daten hintun.(das geht natürlich nur ohne win also zb mit dos etc). Stimmt das?


Im Prinzip Ja. Bei DOS bin ich mir nicht 100% sicher aber z.B. beim Commodore 64 nutzt Du einfach alle Aressen die Du willst. Es gab weder Virtual Memory noch Multitasking. Wenn Du z.B. eine wichtige Betriebssystemvariable überschrieben hast, warst Du eben selber Schuld. Beim Amiga dagegen gab es Multitasking und daher musste man Speicher allozieren.
"Games are algorithmic entertainment."

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

7

08.11.2007, 21:10

Re: Erfahrungsbericht - Spielere mit Arbeisspeicher

Zitat von »"Faule Socke"«

das würde ja gerade beim gaming leistungsvorteile bringen, wenn nicht mehr jeder speicherzugriff überprüft wird, oder nciht?


Nein, die Überprüfung läuft in Hardware "neben" den anderen Aufgaben der CPU mit. Der Amiga z.B. hatte keine solche Hardware und hat daher Zugriffe nicht überprüft.
"Games are algorithmic entertainment."

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

8

09.11.2007, 21:26

was mich in diesem Zusammenhang interessiert ist, wie kann ich als Spieleprogger mein Programm schützen, insbesondere bei Multiplayer-Spielen gibts ja Leute die es nötig haben so zu cheaten...

Kontroll-Variabeln etc anlegen und ab und zu kontrollieren ? (teuer), oder ist der einzige sinnvolle Weg wirklich spiellogik nur über Server zu machen ?
(so wirds zumindest bei den meisten MMORGs gemacht, oder ?)

Werbeanzeige