Werte manipulieren

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Werte manipulieren

Beitrag von Kmitska » Mi Apr 25, 2012 9:50 pm

Hallo Leute,

da fällt mir gerade eine Frage ein...

Ich hatte mal versucht durch Adressen von andere Variablen die Werte zu ändern, eigentlich von so einem Spiel.

Wie ich das gemacht habe?
Habe meinen Zeiger eine Adresse zugewiesen und danach 2 Threads gestartet.
Thread 1: Eine for-Schleife die eine Position nach "unten" geht also: --Zeiger.
Thread 2: Das Gleiche mit: ++Zeiger.

Daraufhin habe ich gewartet bis ein auffäliger Wert wie z. B. "12345678" gefunden wurde (Habs natürlich im Spiel z. B. mein Geld so eingestellt)

Als ich versucht habe diesen Wert zu ändern in diesem Fall "manipulieren" hat es nicht geklappt.
also: *Zeiger = 1;

Ich weiß, dass jedes Programm einen "Speicherbereich" zugewiesen bekommt vom OS, aber wie könnte man das nun durchsetzen?

Danke im Voraus,

Kind regards,
Kmitska

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Werte manipulieren

Beitrag von Bebu » Do Apr 26, 2012 6:05 am

Hast du den Wert manipuliert? Oder wie du gerade geschrieben hast, die Position des Zeigers? Hast du einen Mutex gesetzt, bevor die Threads in dem Speicherbereich geschrieben haben?
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Werte manipulieren

Beitrag von cloidnerux » Do Apr 26, 2012 6:08 am

Ich weiß, dass jedes Programm einen "Speicherbereich" zugewiesen bekommt vom OS, aber wie könnte man das nun durchsetzen?
Ich muss sagen, ich hab keine Ahnung. Nicht weil ich kein C++ kann, sondern weil alle großen OS entsprechende Schutzmechanismen haben, die eben solche Manipulativen Zugriffe erstmal verbieten, und wenn es sein muss mit einer Page-Exception oder ähnlichem.
Folglich musst du dich in dein System, ich nehme mal an du hast Windows, einarbeiten. Darfst dich mit der WinAPI und wie Windows funktioniert vertraut machen und dann kannst du anfangen bestimmte Dinge auszunutzen.
Das kann so ein halbes bis ein ganzes Jahr dauern, Windows ist nicht das einfachste zu lernen.

Es tut mir zwar leid, aber du wirst das wohl kaum auf die Schnelle hinbekommen, weil es eben zu sehr OS-spezifisch ist.

MfG cloidnerux
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Werte manipulieren

Beitrag von Xin » Do Apr 26, 2012 9:33 am

Kmitska hat geschrieben:Ich hatte mal versucht durch Adressen von andere Variablen die Werte zu ändern, eigentlich von so einem Spiel.
Sollte Tools waren auf Rechnern ohne Speicherschutz sehr beliebt. Da funktioniert das auch.
Rechner ohne Speicherschutz stürzen aber auch komplett ab, wenn ein Programm Mist baut.
Darum gibt es heute keine Betriebsysteme ohne Speicherschutz mehr.

Zwei Threads braucht man dafür aber nicht.
Kmitska hat geschrieben:Ich weiß, dass jedes Programm einen "Speicherbereich" zugewiesen bekommt vom OS, aber wie könnte man das nun durchsetzen?
Gar nicht, Du bekommst den Speicherbereich Deines Spiels nie zu sehen, denn die MMU (Memory Management Unit), die jede heute CPU besitzt, lotst Dich um die Speicherbereiche aller anderen Programme herum.

Du müsstest Dich in den Kernel einklinken. Und hier gehen die Probleme los, die vermutlich dafür verantwortlich sind, dass ich auf modernen OS solche Tools nicht mehr gesehen habe.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Kmitska
Beiträge: 349
Registriert: Fr Sep 23, 2011 8:49 pm
Wohnort: Karlsruhe, Pforzheim

Re: Werte manipulieren

Beitrag von Kmitska » Do Apr 26, 2012 9:01 pm

Ich glaube ich muss mich jetzt langsam für einen OS entscheiden, oder?
Ich habe mich immer geweigert die Befehle von anderen Systeme zu lernen...

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Werte manipulieren

Beitrag von cloidnerux » Do Apr 26, 2012 9:07 pm

Ich glaube ich muss mich jetzt langsam für einen OS entscheiden, oder?
Ich habe mich immer geweigert die Befehle von anderen Systeme zu lernen..
Du musst dich nicht entscheiden, du kannst nur nicht alles können, weil es da eine sehr große Auswahl an verschiedenen OS hast.
Und es gibt keine "Befehle von einem System". Es gibt nur die Funktionsweise eines Systems und seine API. Und wenn du irgendetwas auf einem System machen willst, musst du dich irgendwann damit auseinender setzten.
Im Endeffekt ist es nur eine Frage der Zeit, die du bereit bist zu Investieren.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Werte manipulieren

Beitrag von Xin » Fr Apr 27, 2012 8:49 am

Kmitska hat geschrieben:Ich glaube ich muss mich jetzt langsam für einen OS entscheiden, oder?
Ich habe mich immer geweigert die Befehle von anderen Systeme zu lernen...
Ich habe mich bisher nicht entschieden.
Ich benutze Linux, Mac und Windows. Allerdings habe ich mit Linux angefangen und halte das nicht für die schlechteste Wahl, um mit der Programmierung einzusteigen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten