2个版本
0.1.1 | 2022年12月25日 |
---|---|
0.1.0 | 2022年12月21日 |
#710 in 内存管理
24次每月下载
在shellexec中使用
7KB
89 行
virtual-memory
用于Unix和Windows上分配RWX内存的库。
有关更多详细信息,请参阅https://github.com/StackOverflowExcept1on/shellexec
示例
use virtual_memory::*;
let buf = &[
//mov eax, 1337
0xb8, 0x39, 0x05, 0x00, 0x00,
//ret
0xc3,
];
let mut memory = VirtualMemory::new(buf.len()).expect("failed to allocate rwx memory");
memory.copy_from_slice(buf);
let f: extern "C" fn() -> u32 = unsafe { std::mem::transmute(memory.as_ptr()) };
assert_eq!(f(), 1337);
lib.rs
:
用于Unix和Windows上分配RWX内存的库
use virtual_memory::*;
let buf = &[
//mov eax, 1337
0xb8, 0x39, 0x05, 0x00, 0x00,
//ret
0xc3,
];
let mut memory = VirtualMemory::new(buf.len()).expect("failed to allocate rwx memory");
memory.copy_from_slice(buf);
let f: extern "C" fn() -> u32 = unsafe { std::mem::transmute(memory.as_ptr()) };
assert_eq!(f(), 1337);
依赖项
~0–13MB
~97K SLoC