Libmem

Latest version: v5.0.2

Safety actively analyzes 701370 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 27

4.3.0

- Added unit tests
- Fixed multiple bugs and issues

4.2.1

Fixed `LM_ReadMemoryEx` return value on Windows
Fixed `LM_FindSymbolAddressDemangled` return type
Added static linking for Rust

4.2.0

Added APIs related to demangled symbols:

LM_DemangleSymbol
LM_FreeDemangleSymbol
LM_EnumSymbolsDemangled
LM_FindSymbolAddressDemangled

Instead of working with normal symbols, these APIs first resolve the symbols.
For example, the symbol `_Z15_LM_EnumSymbolsP11lm_module_tPFiP11lm_symbol_tPvES3_` gets resolved to ` _LM_EnumSymbols(lm_module_t*, int (*)(lm_symbol_t*, void*), void*)`, which is significantly more readable.

4.1.0

This version does not have many improvements. The main thing that changed is that some Rust APIs are now declared as `unsafe` (they've always been `unsafe`, but they were not marked as such). Is this a good reason for a version bump? I think so, because it wouldn't make sense for libmem version `4.0.0` not to be compatible with libmem version `4.0.1`, for example. So I think `4.1.0` was necessary.
If you need Windows binaries, use version `4.0.0`. Nothing has changed in the C API, only in Rust.

4.0.0

Finally, version 4.0 has arrived.
This version has significant improvements when compared to the last release.
To name a few:
- Added Assembler/Disassembler
- Added VMT Hooking API
- Modulated libmem
- Added Rust support
- Simplified API
- Removed overkill features
- Fixed bugs
And much more stuff.

I believe this is as good as libmem has ever been, there are still going to be a few more updates but this project is getting to a happy ending.

4.0.0-p4
Backup before readding `lm_process_t` and storing the path, bits and name on it.
The same thing with `lm_module_t`.

4.0.0-p3
libmem has been modulated and cleaned up, APIs renamed etc.
Python support is broken in this version, because I haven't adapted the APIs yet.
This is a backup before switching to PID only calls, no more `lm_process_t`, just like it was before.
For more information, see: https://github.com/rdbo/libmem/issues/67

4.0.0-p2
Added a disassembler (capstone) and an assembler (keystone)
This is a backup before libmem's modulation

4.0.0-p1
Backup of the current state of libmem

3.3.3

This version is a backup. I plan on re-re-remaking libmem and make it as good as I possibly can on a 4.X version.
There are a few problems in the current version of libmem, which I think can be avoided. Some examples:
1. Forcing developers to free memory that they didn't allocate
2. Bad prefix MEM (already being used by Windows. For example, MEM_COMMIT)
3. Useless data and types, such as MEM_PAYLOADS, mem_asm_t, mem_load_t, etc.

The list goes on.

I need a memory library that comes close to perfection, and the current state of libmem is far from that.
Hopefully on the next version, there will be some major improvements.

Page 3 of 27

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.