AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ReadProcessMemory von 32 bit auf 64 bit Prozess?
Thema durchsuchen
Ansicht
Themen-Optionen

ReadProcessMemory von 32 bit auf 64 bit Prozess?

Ein Thema von Zacherl · begonnen am 26. Apr 2011 · letzter Beitrag vom 26. Apr 2011
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

ReadProcessMemory von 32 bit auf 64 bit Prozess?

  Alt 26. Apr 2011, 02:26
Hallo,

MSDN-Library durchsuchenReadProcessMemory schlägt ja von einem 32 bit Prozess aus auf einen 64 bit Prozess bekannterweise fehl. Meine Frage ist, ob ich irgendwie durch eine native API eventuell doch Daten aus einem 64 bit Prozess lesen kann?

Hintergrund ist, dass ich alle Modulnamen eines 64 bit Prozesses auflisten möchte.

Meine letzte Rettung sah ich im Auslesen des PEBs mit abschließenden manuellen parsen der ModulList. Allerdings scheint auch MSDN-Library durchsuchenNtReadVirtualMemory den Dienst zu verweigern. Mache ich da was falsch oder gibt es wirklich keine Möglichkeit Daten aus einem 64 bit Prozess zu lesen.

Viele Grüße
Zacherl
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#2

AW: ReadProcessMemory von 32 bit auf 64 bit Prozess?

  Alt 26. Apr 2011, 06:20
Irgendwo im Embarcadero-CodeCentral hatte ich mal soeine 32/64-Bit-Code-Brücke gesehn, womit man von einer 32-Bit-EXE auf eine 64-Bit-DLL zugreifen können soll,

Dort könnte man jamal reinsehn?
Entweder es gibt direkt in dem Code etwas, was dir hierbei hilft,
oder du erstellst dir eine 64-Bit-DLL (z.B. FPC/Lazarus können das ja schon), ließt dort deine gewünschten Daten aus und nutzt diese Brücke, um dieses von deiner 32-Bit-EXE aus aufrufen zu können.

Ansonsten wirst du wohl doch nicht um eine weitere 64-Bit-EXE herumkommen, wobei dort die 64-Bit-Version mit der 32-Bit-Version via IPC miteinander reden uns dich gegenseitig die Daten des Anderen schicken/abrufen können.
Und ein 64-Bit-OutOfProcess-Server sollte auch noch möglich sein.

Daß das normale ReadProcessMemory nicht funktioniert istauch irgendwie klar, denn in deinem 32-Bit-Prozess hat es nur eine 32-Bit-Speicheradressierung (der Adress-Parameter ist ja nur 32 Bit), was für den rießigen Adressraum des 64-Bit-Prozesses nicht ausreicht
und wenn es da keine Version mit einer 64-Bit-Adressierung gibt, dann war's das wohl, mit einem direkten Zugriff.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Apr 2011 um 07:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: ReadProcessMemory von 32 bit auf 64 bit Prozess?

  Alt 26. Apr 2011, 07:06
Irgendwo im Embarcadero-CodeCentral hatte ich mal soeine 32/64-Bit-Code-Brücke gesehn, womit man von eimer 32-Bit-EXE auf eine 64-Bit-DLL zugreifen können soll,

http://cc.embarcadero.com/item/27667
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:45 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