9个版本
0.1.5 | 2023年10月2日 |
---|---|
0.1.4 | 2022年12月26日 |
0.1.1-dev4 | 2022年10月21日 |
0.1.1-dev1 | 2022年9月18日 |
#42 in #process-memory
7KB
147 行
Poggers
一个用于与内存、进程以及类似工具交互的库,主要用于游戏作弊目的。
使用poggers你可以做到以下事情
- 轻松创建DLL的入口点,panic解包已为你处理
- 轻松读取和写入外部进程的内存
- 使用IDA签名在进程中进行指令扫描。
- 以合理的方式使用CreateToolhelp32Snapshot,并支持迭代进程和模块的第一类支持
- 跨Windows和Linux兼容,代码更改最少
添加到你的项目中
[dependencies]
poggers = "1"
# if you need to use the entrypoint macro
poggers_derive = "0.1.5"
外部示例
如何查找进程并将其写入内存的一个简单示例
use poggers::structures::process::Process;
use poggers::traits::Mem;
fn main() {
let process = Process::find_name("csgo.exe").unwrap();
unsafe {
process.write(0x1000,&1).unwrap()
}
}
内部示例
如果你在制作内部程序,你可能希望创建一个入口点并对当前进程进行操作。
use poggers::structures::process::implement::utils::ProcessUtils;
use poggers::structures::process::Process;
use poggers::traits::Mem;
// automatically create an entry point for your dll! (crate type must be cdylib)
// you also do not need to worry about panic unwinding yourself as it is already done.
#[poggers_derive::create_entry]
fn entry() {
let this_proc = Process::this_process();
unsafe {
let bleh : i32 = this_proc.read(0x1000).unwrap();
println!("{}",bleh);
let base_mod_name = this_proc.get_base_module().unwrap().get_name();
println!("{}",base_mod_name);
}
}
许可证
依赖
~3MB
~56K SLoC