![]() |
Speicher ändern
Ich denke zwar, dass die lösung schon im forum steht, ich habe es aber nicht gefunden.
also ich habe eine speicheradresse (Hex: 26A1FF1, Dez: 40509425), aber wie kann ich die jetzt ändern. wie kann man das z.B. WriteProcessMemory machen, oder geht das auch anders??? |
Re: Speicher ändern
Adressen sind doch nur Schall und Rauch. Denn deren Gültigkeit hängt stark von deren Kontext (auch Prozess genannt) ab.
Und ja, mit der genannten Funktion geht so einiges. Aber das ist alles wundervoll bei MSDN oder im Platform SDK dokumentiert. |
Re: Speicher ändern
Das du WriteProcessMemory nicht im Forum findest halte ich für eine Lüge ;)
Das Problem an den Speicheradressen ist vielseitig. Es kann sein das die Adressen durch DMA geschützt sind. Das bedeutet dass sich die Adresse bei jedem Neustart des Prozesses dynamisch neu zusammensetzt. Durch einen Debugger wie z.B. SoftIce lässt sich das bei manchen Prozessen allerdings noch hinbiegen. Wenn kein DMA benutzt wird, wird die Adresse auf deinem PC immer gleich bleiben. Es kann aber gut sein dass die Adresse im Speicher einer DLL Datei liegt. Der Speicher ein DLL Datei wird aber über eine API Funktion reserviert (siehe Virtualalloc), und wird deshalb von PC zu PC verschieden liegen. Die Materie in die duch dich einarbeiten willst ist extrem vielschichtig und auch relativ kompliziert. Meistens sind umfangreiche Assemblerkenntnisse Grundvoraussetzung. |
Re: Speicher ändern
Zitat:
Zitat:
Zitat:
Und so kompliziert ist das garnicht, wenn man sich die abgegrenzten Prozesse irgendwie versinnbildlicht und immer daran denkt, daß jeder Prozess seinen eigenen Adressraum hat. |
Re: Speicher ändern
Seit 32 Bit Windows ist ein direkter Speicherzugriff auf den Adressraum eines anderen Prozess nicht mehr so einfach möglich. Auch mit
![]() ![]() |
Re: Speicher ändern
Luckie meint (Hervorhebung Mephisto): Auch mit ![]() |
Re: Speicher ändern
Das stimmt, nur ist die Frage, welche Prozesse diese Rechte bekommen können. Ich befürchte das sind nur Prozesse unter dem Administrator Konto mit Debuggrechten.
|
Re: Speicher ändern
Zitat:
Auch über VirtualAllocEx() heißt es: Im Platform SDK steht: You must have PROCESS_VM_OPERATION access to the process. If you do not, the function fails. Wo war also der Bezug? Ich stehe wohl aktuell auf der Leitung ... |
Re: Speicher ändern
Folgendes:
Wenn man mit VirtualAllocEx sich Speicher im fremden Prozess alloziiert, dann sind diese Rechte nicht nötig, um in diesen Speicherbercih mit WrteProcessMemory zu schreiben. Da es VirtualAllocEx aber nur unter NT basierenden Systemen gibt, ist unter Win9x ein Hack nötig. Und wenn man doch mit WriteProcessMemory wild in fremden Adressräumen rumschreiben könnte, dann würde ich vom Glauben abfallen. Ich hege immer noch die Hoffnung, dass nur ganz spezielle Prozesse die sich die nötigen Rechte (PROCESS_VM_WRITE und PROCESS_VM_OPERATION) beschaffen können. Ich dachte da an so was wie Dienste oder Treiber. Wobei mir Dienste schon wieder unheimlich wären. |
Re: Speicher ändern
Zitat:
Zitat:
Fuer alle diejenigen die jetzt schon wieder auf dumme gedanken kommen, einen Treiber/Dienst zu laden/installieren erfordert auch erst mal bestimmte rechte ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz