Skip to content

WCG847/winmem

Repository files navigation

WinRAM

The honest Python-to-Windows interface

Introduction

WinRAM is a Python library dedicated to exposing raw access to the user-mode memory on Windows. Before you ask, no, i will not support backwards compatibility. It will be in line with bleeding edge standards. Follow or be left behind.

Features

  • Virtual Memory: No more of that kiddy Unix-inspired stuff from mmap, instead you call vm = VirtualMemory(addr, size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE) and watch as virtual memory gets handed down on a silver platter, wrapped in a buffer-supported memoryview.
  • Constants: Yes. Constants are supported, so you can do MEM_COMMIT instead of fiddling with bitflags.
  • Executable Memory: Yes, the widely recognisable RWX is supported. JIT developers would be happy, even though Python is slower than eight C++ hot loops.
  • Security: For security-obessesed people, W^X is supported (even though you have to flip flags like a maniac).

Comparison with mmap:

Scale is 0.4, because i said so.

  • Can allocate and free memory: Both support it. Boring, but useful.
  • Mark down specific regions of memory with flags: WinRAM supports it. mmap does not.
  • Query full regions: Another point to WinRAM.
  • Commit and decommit?: WinRAM again. mmap dropping the ball here.

Result:

WinRAM: 1.6

mmap: 0.4

Call for Action

CPython devs... Show love for NT. POSIX is too overrepresented.

Conclusion

Get this library if you are sick and tired of constant-less ctypes binding, sick of baby abstractions, and sick of mmap and POSIX culture as a whole.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages