Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Manipulation von Prozess-Speicher. (https://www.delphipraxis.net/189541-manipulation-von-prozess-speicher.html)

delphinub23 22. Jun 2016 15:49


Manipulation von Prozess-Speicher.
 
Hallo zusammen!

Ich möchte gern aus dem Speicher eines Prozesses bestimmte Adressen vom Typ String finden, welche den Wert "Default" enthalten. Wenn ich diese Adressen habe, würde ich gern deren Inhalt ändern, also z.B. in "NichtMehrDefault".
Bisher bin ich mit ProcessMemory-Manipulation nur wenig in Berührung gekommen und hoffe somit auf Tipps oder Beispiele, wie das richtig gemacht wird :stupid:

Momentaner Gedankengang:
  • OpenProcess
  • ReadProcessMemory, aber von wo bis wo und wie durchsuche nach Typ String mit Wert "Default"?
  • WriteProcessMemory, Typ String mit Wert "NichtMehrDefault"
  • CloseHandle

Ich bedanke mich schon mal im Voraus!

Neutral General 22. Jun 2016 16:05

AW: Manipulation von Prozess-Speicher.
 
Als allererstes: Adressen haben keinen Typ. Was im Speicher steht ist reine Interpretationssache.
Zweitens: Einen String im Speicher eines fremden Prozesses zu verlängern kann bzw. wird wahrscheinlich schief gehen, denn du weißt nicht ob das Byte hinter dem aktuellen String überhaupt verfügbar ist.
Und wenn es verfügbar ist dann besteht die Chance dass du damit andere (wichtige) Daten oder vllt. sogar Maschinencode überschreibst. Hinter dem "Default"-String sind ja nicht nur für dich 10-20 Extra-Bytes reserviert für den Fall dass jmd. den String verlängern will.

Den Wert im Speicher zu finden ist möglich. Aber wenn du absolut keinen Ansatzpunkt hast musst du im Prinzip mehr oder weniger den kompletten virtuellen Adressraum des anderen Prozesses durchsuchen, was sehr aufwendig sein kann und dann dementsprechend lange dauert.

Was hast du überhaupt vor?

bra 22. Jun 2016 16:25

AW: Manipulation von Prozess-Speicher.
 
Zitat:

Zitat von Neutral General (Beitrag 1340794)
Was hast du überhaupt vor?

Einen Delphi-Virus schreiben? :stupid:

Neutral General 22. Jun 2016 16:29

AW: Manipulation von Prozess-Speicher.
 
Zitat:

Zitat von bra (Beitrag 1340797)
Zitat:

Zitat von Neutral General (Beitrag 1340794)
Was hast du überhaupt vor?

Einen Delphi-Virus schreiben? :stupid:

Hört sich nicht wirklich nach Virus an. Darum gehts mir auch nicht.
Es geht mir darum ob es nicht eine bessere Alternative gibt. bzw. was er mit dieser Stringmanipulation erreichen will.

p80286 22. Jun 2016 16:56

AW: Manipulation von Prozess-Speicher.
 
Zitat:

Zitat von Neutral General (Beitrag 1340794)
Als allererstes: Adressen haben keinen Typ. Was im Speicher steht ist reine Interpretationssache.

Als wir noch clever waren, sind wir auch oft über diese Wahrheit gestolpert. Da gab es mal einen Copyright-Vermerk der war ums Verrecken nicht zu entfernen. Nach dem disassemblieren haben wir ihn dann als Base64-Array gefunden.:stupid:
Wir hatten die ganze Zeit einen Honeypott im Blick.

Gruß
K-H

delphinub23 22. Jun 2016 19:08

AW: Manipulation von Prozess-Speicher.
 
Zitat:

Zitat von bra (Beitrag 1340797)
Zitat:

Zitat von Neutral General (Beitrag 1340794)
Was hast du überhaupt vor?

Einen Delphi-Virus schreiben? :stupid:

...solch ein Gefasel. Eines möchte ich klar stellen: Ich möchte keinen Virus schreiben.

@Neutral General: Erstmal vielen dank für die Informationen. Das habe ich gar nicht bedacht :roll:
Es geht um ein Spiel - StarCitizen. Es wird online gespielt, aber die Performance ist aufgrund von schwachen Servern eher mäßig. Auf Reddit wurde eine Lösung präsentiert mit der man das Spiel offline spielen kann - und somit viel bessere FPS erreicht. Das ist sehr förderlich für den Spielspass. Das wird u.a. über Prozess-Manipulation via CheatEngine erreicht. Und nun zur Idee: Anstatt den Umweg händisch zu machen, würde ich es lieber über eine Anwendung laufen lassen. Das soll als Erklärung erst mal reichen.

Da es durch händische Manipulation machbar ist, dürfte es doch auch automatisiert via einer kleinen Anwendung funktionieren, oder?

Neutral General 22. Jun 2016 19:36

AW: Manipulation von Prozess-Speicher.
 
Ist irgendwo dokumentiert was man genau tun muss, bzw. was CheatEngine genau tut?

delphinub23 22. Jun 2016 19:49

AW: Manipulation von Prozess-Speicher.
 
Ja, hier findest du das Tutorial

Namenloser 22. Jun 2016 20:14

AW: Manipulation von Prozess-Speicher.
 
CheatEngine ist doch sogar in Delphi geschrieben. Der Source Code ist auch öffentlich: https://github.com/cheat-engine/cheat-engine

delphinub23 23. Jun 2016 08:43

AW: Manipulation von Prozess-Speicher.
 
Zitat:

Zitat von Namenloser (Beitrag 1340828)
CheatEngine ist doch sogar in Delphi geschrieben. Der Source Code ist auch öffentlich: https://github.com/cheat-engine/cheat-engine

Tatsächlich, vielen Dank für den Link. Da muss ich mich erstmal reinlesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Seite 1 von 2  1 2      

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