docs.rs failed to build memory_utils-0.2.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
memory_utils
A simple and safe(ish) Rust library for reading and writing memory of external Windows processes. Useful for building tools like trainers, debuggers, and analyzers.
Please note that this is project is in its early stages so bugs may occur.
To get the cargo crate check out this link
A simple project I made using this library is a walk speed modifier. You can find it here
Features
- Read and write memory of external processes.
- Get process ID (PID) by process name.
- Suspend, resume, and terminate threads or processes.
- Read null-terminated strings from memory.
- Query memory pages using
VirtualQueryEx. - Built on top of WinAPI.
Changelogs
-
0.1.2:- Fixed Process::pid() error "STATUS_HEAP_CORRUPTION" which was caused by a bad conversion from cstring into rust string
-
0.1.4:- Fixed general pattern scanning ( added more protection checks, and fixed stuck in a loop or not finding it)
-
0.1.6:- Added
process.get_moduleandprocess.get_base_address, - Removed duplicated
mbi.Protect == PAGE_READWRITEcheck frompattern_scanwhich should speed it up a bit.
- Added
-
0.1.8:- Added every protection option to
ProtectOptions, Addedprocess.get_protection
- Added every protection option to
-
0.1.9 & 0.1.10:- Fixed accidental mistake of doing
addr as LPVOIDinstead ofaddr as LCPVOID
- Fixed accidental mistake of doing
-
0.1.11:- Fixed
process.get_threads()since it hadTH32CS_SNAPPROCESSinstead ofTH32CS_SNAPTHREAD
- Fixed
-
0.1.12:- Fixed
process.get_thread_context()error due to invalid handling of the returned error (?->is_err())
- Fixed
-
0.1.13:- Optimized
process.find_pattern_strandprocess.pattern_scanby using the Boyer-Moore-Horspool algorithm infind_pattern
- Optimized
-
0.1.14:- Fixed
process.read_stack, - Added
process.pe_headers
- Fixed
-
0.1.15:- Made
process.sanitize_bytespublic, - Added
process.get_modules, - Added
process.is_valid_address, - Added
process.allocate, - Added
process.trampoline_hook - Added
process.place_absolute_jmp
- Made
-
0.1.17:- Added
process.write_bytes
- Added
-
0.1.18:- Made
pidinProcesspublic - Added
handleto theProcessstruct (so that it doesn't open a new handle everytime. This is due to performance)
- Made
-
0.1.19:- The
Processstruct can now be safely shared between threads - Implemented
cloneforProcess
- The
-
0.2.2:- Added
process.read_bytes - Improved
process.read_stringby usingprocess.read_bytesinstead of going character-by-character
- Added
0.2.0- Added
DllLib(memory_utils::dll), seperate from the main process
- Added
Example
use Process;