AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

hauptspeicher ab offset 0 auslesen?

Ein Thema von richard_boderich · begonnen am 5. Jul 2004 · letzter Beitrag vom 6. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

hauptspeicher ab offset 0 auslesen?

  Alt 5. Jul 2004, 23:31
hallo ich bins, wieder mal

ich moechte unter windowsxp den inhalt des hauptspeichers
ab offset $0 bis zum ende des erweiterungsspeichers lesen
um es in einen sringgrid darzustellen, unter dos mit Turbo pascal hab
ich das schon mal gemacht, aber wie geht das unter windows ???

ich hab mal gehoert,das windows den direkten zugriff auf den
haupspeicher nicht zulaesst.

waere dankbar für irgendwelche Vorschlaege, Ansatze und Ueberlegungen

bitte keine kompletten Loesungen, moechte das selbst machen und was lernen
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: hauptspeicher ab offset 0 auslesen?

  Alt 5. Jul 2004, 23:38
Such mal nach

\Device\PhysicalMemory und CreateFile!

EDIT: http://www.swissdelphicenter.ch/torr...ode.php?id=748
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#3

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 00:10
hallo neolithos,

danke erstmal für deine antwort.

"device\physical_memory\" ist das eine api funktion, hab nichts gefunden in der dephi sdk help ???
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 00:18
Moin!

Das ist keien WinAPI Funktion sondern ein Dateiname den du CreateFile (in ein wenig abgewandelter Funktion) übergeben musst umd damit dann darauf zu zu greifen.

Als Ansatz kannst du dir mal das hier anschauen.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#5

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 07:45
morgen leute


na schoen , jetz hab ich ein Handle :

Code:

#include <windows.h>
#include <stdio.h>

HANDLE hFile;
 
hFile = CreateFile(TEXT("myfile.txt"),    // file to create
                   GENERIC_WRITE,         // open for writing
                   0,                     // do not share
                   NULL,                  // default security
                   CREATE_ALWAYS,         // overwrite existing
                   FILE_ATTRIBUTE_NORMAL | // normal file
                   FILE_FLAG_OVERLAPPED,  // asynchronous I/O
                   NULL);                 // no attr. template

if (hFile == INVALID_HANDLE_VALUE)

    printf("Could not open file (error %d)\n", GetLastError());
    return 0;
}
aber wie lese ich daraus 1 oder mehrere bytes? es wird in der funktion doch nirgendwo eine indexposition uebergeben bzw. abgefragt ? die funktion muss ich doch bestimmt wie eine API Konvertieren(headerkonvertierung) oder ?
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 10:56
Moin!

Ich denk du willst den Hauptspeicher auslesen, aber warum gibst du dann myfile.txt an? Lies dir die MSDN Seite mal genauer durch, es gibt spezielle "Dateinamen" die du angeben kannst (z.B. \\.\PhyscialDrive0) um spezielle logische Geräte zu öffnen. Und nach dem Prinzip musst du es mit dem Hauptspeicher auch machen.

MfG
Muetze1
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#7

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 11:11
http://www.bendlins.de/nico/delphi/BiosHelp.zip
http://www.bendlins.de/nico/delphi/BiosHelp.tar.bz2

Nur als Hinweis, unter Windows XP x64 (Windows XP 64-Bit for 64-Bit Extended Systems (AMD64)) funktioniert die 16-Bit-Veriante nicht mehr. Und zudem ist offensichtlich nicht mehr der ganze Bereich ($00000000-$000FFFFF) über das 'Physical Memory'-Objekt erreichbar, sondern nur noch der obere Bereich (bei meinem System $00023000-$000FFFFF).

ps: habe gerade gelesen, dass Du keine komplette Lösung haben willst... nunja, die Lösung kannst Du im Quelltext nachlesen und versuchen es zu verstehen (ich glaube nicht, dass es 'hilfreich' ist sowas alleine herauszufinden zu müssen...)
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#8

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 18:46
hallo

Code:
matze schrieb: schau dir die MSDN an

@matze. da steht deshalb myfile.txt drin, weil das genau das beispiel aus der MSDN ist


@NicoDE gut dann hab ich ein handle auf dem speicherbereich, aber wie gehe ich an eine bestimmte
stelle im speicher und lese die aus??

ich hatte unter dos mit Turbo Pascal schon mal so ein programm geschrieben, das direkt in den
grafikspeicher schreibt. somit war es moeglich z. b . die sekunden der pc uhr als
sich aendernde hexwerte zu verfolgen. wenn de willst, kann ich dir auch ma das prog schicken
dann weiste was ungefaehr ich machen will. ist aber nur eine fruehe version ohne menu, nur mit tastatur shortcuts, da ich mal nen datenverlust
hatte(nicht durch das programm,sondern durch meine hdd)
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#9

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 19:30
Das geht, wie bei normalen Dateien mit SetFilePointer, ReadFile und WriteFile.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#10

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 19:56
Zitat von richard_boderich:
gut dann hab ich ein handle auf dem speicherbereich, aber wie gehe ich an eine bestimmte stelle im speicher und lese die aus?
Ich gehe mal davon aus, dass wir hier nur über die aufwendigere Methode unter Windows NT sprechen (MS-DOS und Win9x sind ja kein Problem)...

Unter WindowsNT:
- wird der für Dich interessante Speicherbereich nicht in den Adressraum von Prozessen gemappt
- dass heißt, dass kein Prozeß auf den Speicherbereich direkt zugreifen kann
- weiterhin gibt es keine Win32 API-Funktion um an den betreffenden Bereich zu kommen
(es können mit der Win32 API keine benannten Objekte mit '\' im Namen geöffnet werden...)
Was möglich ist:
- das benannte Kernel-Objekt '\Device\PhysicalMemory' mit Hilfe einer NT-internen Funktion zu öffnen
(das Objekt repräsentiert den physikalischen Speicher, geht nur als lokaler Admin)
- mit dem Handle kann nun ein Bereich aus dem 'physikalischen Speicher' in den Adreßraum Deines Prozesses gemappt werden
(diesen Bereich kannst Du nun lesen...)

NTVDM:
- der Speicherbereich wird vom '16-Bit Emulator' bereitgestellt

Win9x:
- der entspechende Speicherbereich wird in jedem Adressraum gemappt (direkter Zugriff möglich)


Gruss Nico

edit: wenn Du versuchen willst unter WinNT direkt in den Bildschirmspeicher zu schreiben: such Dir eine andere Herausforderung
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 Uhr.
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