libmem

Advanced Game Hacking Library for C, Modern C++, Rust and Python (Windows/Linux/FreeBSD) (Process/Memory Hacking) (Hooking/Detouring) (Cross Platform) (x86/x64/ARM/ARM64) (DLL/SO Injection) (Internal/External) (Assembler/Disassembler)

AGPL-3.0 License

Downloads
134
Stars
778
Committers
3

Bot releases are visible (Hide)

libmem - 5.0.0-pre6 Latest Release

Published by github-actions[bot] 5 months ago

libmem - 5.0.0-pre5

Published by github-actions[bot] 5 months ago

libmem - 5.0.0-pre4

Published by github-actions[bot] 6 months ago

libmem - 5.0.0-pre3

Published by github-actions[bot] 6 months ago

libmem - 5.0.0-pre1

Published by github-actions[bot] 8 months ago

libmem - 5.0.0-pre0

Published by github-actions[bot] 10 months ago

libmem - 4.4.0

Published by github-actions[bot] 10 months ago

libmem - 4.4.0-pre1

Published by github-actions[bot] 11 months ago

libmem - 4.4.0-pre0

Published by github-actions[bot] 11 months ago

libmem - libmem - v4.3.0

Published by rdbo 11 months ago

  • Added unit tests
  • Fixed multiple bugs and issues
libmem - libmem - v4.2.1

Published by rdbo about 1 year ago

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

libmem - libmem - v4.2.0

Published by rdbo about 1 year ago

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.

libmem - libmem - v4.1.0

Published by rdbo over 1 year ago

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.

libmem - libmem - v4.0.0

Published by rdbo over 1 year ago

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.

libmem - libmem - v4.0.0-p4

Published by rdbo almost 2 years ago

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

libmem - libmem v4.0.0-p3

Published by rdbo almost 2 years ago

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

libmem - libmem - 4.0.0-p2

Published by rdbo almost 2 years ago

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

libmem - libmem - 4.0.0-p1

Published by rdbo almost 2 years ago

Backup of the current state of libmem

libmem - libmem - v3.3.3

Published by rdbo over 3 years ago

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.

libmem - libmem - v3.3.2

Published by rdbo over 3 years ago

Fixed multiple warnings.

Package Rankings
Top 23.84% on Crates.io
Top 14.38% on Pypi.org