Skip to main content

Python library for Windows giving live access to a program's memory

Project description

Python library for Windows giving live access to a program’s memory.

Usage

memaccess exposes one main class to use for memory inspection: MemoryView. It will request all necessary data from Windows to be able to access memory of another application. Just pass to the class the process-id of the application you want to observe:

from memaccess import MemoryView

view = MemoryView(5555)
# Read memory...
view.close()

It’s safer to use the context-manager variant of MemoryView:

from memaccess import MemoryView

with MemoryView(5555) as view:
    pass  # Read memory...

NOTE

Accessing another program’s memory requires elevated privileges, otherwise instantiation of MemoryView will fail.

To read content, memaccess exposes the read function. It takes the number of bytes to read and the address where to start reading.

# Read 8 bytes of memory at address 0x01234560
view.read(8, 0x01234560)

For convenience, MemoryView exposes read methods that convert values in memory to respective C/C++ types.

view.read_int(0x01234560)
view.read_float(0x01234564)
# ... and many others.

You can also write to memory. Note that you have to open the MemoryView in write-mode:

with MemoryView(5555, 'rw') as view:
    view.write_int(33, 0x01234560)
    view.read_int(0x01234564)

Please inspect the MemoryView class for details on all of those functions.

Exceptions

Some exceptions are raised due to internal Windows API errors and show an error code.

>>> from memaccess import MemoryView
>>> MemoryView(5555)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ...
RuntimeError: Can't open process with pid 5555, error code 87

You can read up on those error codes here:

https://msdn.microsoft.com/de-de/library/windows/desktop/ms681381(v=vs.85).aspx

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memaccess-0.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memaccess-0.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file memaccess-0.2.tar.gz.

File metadata

  • Download URL: memaccess-0.2.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for memaccess-0.2.tar.gz
Algorithm Hash digest
SHA256 0827c857ce23f7ce7f0397f7afc7368368bdff40dd6e0a9f305e1abc55d4da0e
MD5 e202f1d64533228ec869f210503d5d1e
BLAKE2b-256 83cc30587ab71e06329cbaae61676474f971fc6f43be936e84bab20d719ab8cc

See more details on using hashes here.

File details

Details for the file memaccess-0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for memaccess-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 24b34f602cca9ba81c9f8a7226e2b09522c76d41258402edf3e119a5b441ec25
MD5 4cf0d6233eb0227173b743db2f3f3778
BLAKE2b-256 b6e19356dd3cc14130b1aafdbbe0feceec2d7c1283529243063ab36640e5ae18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page