Ram auslesen?

BcksteinForelle  23.01.2022, 12:30

wofür brauchst du das gibt mehrere methoden

Ficus4893191 
Beitragsersteller
 23.01.2022, 12:32

Reines Interesse

communicator9  23.01.2022, 12:32

Willst du das bei einem PC oder bei einem Mikrocontroller auslesen?

Ficus4893191 
Beitragsersteller
 23.01.2022, 12:33

gaming pc...was ist dis andere

3 Antworten

Ein Programm dafür kenne ich nicht.

Das würde meiner Meinung nach auch nicht funktionieren, denn in dem Moment in dem das Programm läuft würde vim Programm selbst ein Teil des RAM benutzt werden und dadurch die Daten die du eigentlich auslesen willst verfälschen.

Das kannst du nur über einen Debugger machen oder über Hardware mit z.B. einem Logicanalyzer.


Palladin007  23.01.2022, 13:41

Da wird nichts verfälscht.
Nur weil Du ein weiteres Programm startest, ändern sich nicht plötzlich die Daten der anderen Programme.

0
Palladin007  23.01.2022, 13:49
@communicator9

Da wo Platz ist.

Der RAM ist nicht sortiert, das Zeug liegt irgendwo, wo halt gerade Platz ist.
Und wenn ein neues Programm da ist, legt das seine Daten irgendwo anders ab, wo halt gerade Platz ist.
Die Programme, die schon liefen, interessiert das nicht.

0
communicator9  23.01.2022, 13:55
@Palladin007

Gilt aber nur wenn noch Platz ist für das neue Programm.

Evtl. könnte man auch das Programm nur auf der Festplatte laufen lassen über DMA oder wenn es ganz klein ist im Cache.

0
Palladin007  23.01.2022, 14:04
@communicator9

Wenn kein Platz für das neue Programm da ist, dann ist der RAM voll und Windows steht still.

Ob man Windows anweisen kann, ein Programm über die SSD laufen zu lassen, weiß ich nicht, aber das wäre auch ziemlich sinnlos, denn dann könnte man es nicht vernünftig nutzen, dafür ist selbst die schnellste SSD noch viel zu langsam.

Windows kann das aber in jedem Fall, denn es lagert auf HDD/SSD aus, wenn der RAM voll ist.

Und nochmal: Es ist egal.
Solange das neue Programm die Daten der anderen Programme nicht aktiv manipuliert, macht das keinen Unterschied.

0
communicator9  23.01.2022, 14:10
@Palladin007

Ja klar man kann ja virtuellen RAM auf HDD/SSD auslagern.

Ein Programm das die Daten der einzelnen Speicherzellen des RAM´s ausliest und dann auf die HDD spiegelt muss gar nicht gross sein, wenn man sowas in Assembler programmiert hat das nur einige Kilobyte.

Man muss halt nur über DMA von Prozessor direkt auf die HDD/SSD schreiben können.

0
Palladin007  23.01.2022, 14:16
@communicator9
Ja klar man kann ja virtuellen RAM auf HDD/SSD auslagern.

Weiß ich, die Frage war, ob man ein einzelnes Programm *vor* dem Start auch darauf beschränken kann.

Ein Programm das die Daten der einzelnen Speicherzellen des RAM´s ausliest und dann auf die HDD spiegelt

Könnte möglich sein, aber vermutlich nicht einfach. Denn wenn man die üblichen Schnittstellen von Windows nutzt, landen die Daten erst im Cache (also RAM) und Windows gibt sie dann "irgendwann" später zum Datenträger.

Und selbst wenn, dann hilft das nichts, denn man kann sie sich nicht anschauen, ohne sie in den RAM zu laden.
Man könnte den Datenträger in einen anderen PC einbauen und dort die Daten anschauen, allerdings sieht man dann nur den alten Stand, der sich seit dem garantiert wieder geändert hat.

Und selbst wenn das alles möglich wäre: Warum sollte man das tun?
Es ist absolut sinnlos...

0
communicator9  23.01.2022, 14:24
@Palladin007

Naja ich programmiere seit über 30 Jahren Mikrocontroller und Embedded Systeme, meistens Echtzeitanwendungen, da schiebt man wirklich noch einzelne Bits von Speicherzellen in die ALU des Prozessors usw.

Programmieren in C oder gar C++ wäre da schon viel zu langsam. Da man hier alles "zu Fuss" macht ist man auch nicht von einem Betriebssystem eigeschränkt und man kann sozusagen alles machen.

Deshalb tue ich mich auch schwer sowas auf einem PC mit Windows umzusetzen.

Aber dafür gibts ja Debugger.

0
Palladin007  23.01.2022, 14:28
@communicator9

Du kannst Windows aber nicht mit Mikrocontrollern vergleichen :D
Man könnte vielleicht noch Daten im CPU-Cache behandeln, aber das müsste - nach deiner Logik - ja erst recht andere Programme beeinflussen.

Und da sind wir wieder beim Anfang:
Ein Programm, das nicht aktiv manipuliert, beeinflusst keine anderen Programme.
Oder es ist scheiße programmiert, aber das würde ich auch unter "Manipulation" laufen lassen.

Wenn man die Daten verstehen will, muss man natürlich unterscheiden können, welche Daten zu welchem Programm gehören, aber da wird nichts verfälscht.

0
communicator9  23.01.2022, 14:33
@Palladin007

Naja im Endeffekt ist es auch nur ein Computer auf dem Windows läuft und der funktioniert genauso wie ein Mikrocontroller, nur etwas grösser :)

1
Palladin007  23.01.2022, 14:37
@communicator9

Nur, dass eben Windows drauf läuft und mitmischen will.

Und hier geht es um das Auslesen von RAM-Daten. Selbst wenn Du die Daten auf die HDD bekommen könntest, ohne auch nur ein einziges Byte in einem Cache oder dem RAM abzulegen, hättest Du immer noch das Problem, dass Du sie nicht anzeigen kannst. Ergo: Aufgabe verfehlt.

Und nochmal: Warum sollte man das tun?
Es ist absolut sinnlos...

0

Es gibt keine "Dateien" im RAM.

Jedes Programm allokiert so viel Platz, wie es gerade für ein Stück Daten braucht und das liegt dann irgendwo.

Diese Daten kann aber der HxD auslesen. Zurecht sortieren musst Du das aber selber.


Ficus4893191 
Beitragsersteller
 23.01.2022, 13:41

Wie jtz?

Und was meinst du mit HxD?

0
Palladin007  23.01.2022, 13:42
@Ficus4893191
Wie jtz?

Es gibt keine Dateien im RAM.

Und was meinst du mit HxD?

HxD ist ein Programm.

0
Ficus4893191 
Beitragsersteller
 23.01.2022, 13:43
@Palladin007

"Es gibt keine Dateien im RAM."

Und was ist dann im RAM?

Zb. beim zocken?

0
Palladin007  23.01.2022, 13:43
@Ficus4893191

Habe ich doch geschrieben:

Jedes Programm allokiert so viel Platz, wie es gerade für ein Stück Daten braucht und das liegt dann irgendwo.
0
Ficus4893191 
Beitragsersteller
 23.01.2022, 13:45
@Palladin007

aber dann sind ja doch daten im ram!?!
hä? sorry bin zu dimm dafür

0
Palladin007  23.01.2022, 13:48
@Ficus4893191

Ja, aber nicht als "Dateien", wie man "Dateien" so kennt.

Es gibt kein Anfang oder Ende und dazwischen sind alle Daten. Und es gibt auch keine Namen oder irgendwelche Informationen dazu.

Die Daten sind unsortiert, nur das Programm weiß, wo was liegt - oder jemand, der sich die riesige Arbeit macht, alles abzusuchen und zu analysieren. Und der muss dann auch damit umgehen können, dass sich die Position der Daten ständig ändern können.

1

wenn du hacks für spiele programmieren iwllst lern erstmal c++ und dann fang es erst an eindeutiger geht fast nichtmehr

Woher ich das weiß:Hobby – Programmiere seid 6 Jahren Modifikationen für Spiele

Ficus4893191 
Beitragsersteller
 23.01.2022, 12:44

ich will überhaubt nichts programieren

0