4 个稳定版本
2.0.0 | 2023年3月24日 |
---|---|
1.0.2 | 2021年11月14日 |
1.0.1 | 2021年8月31日 |
#403 在 Unix API
16KB
285 行
Houdini
Houdini
是一个 Rust 库,允许你在程序运行时删除你的可执行文件。
对于 Unix 系统,这相对简单,因为可执行文件在映射到内存后才会释放。我们只需要找到它并将其解除链接。
在 Windows 上,我们使用 @jonasLyk 发现的方法。我的实现大量参考了 @byt3bl33d3r 在 OffensiveNim 中的 Nim 实现,以及 LloydLabs 的初始 C
PoC。
用法
// With a default placeholder value on windows (`svcmsrpc`)
use houdini;
fn main() {
match houdini::disappear() {
Ok(_) => println!("Pulled a Houdini!!"),
Err(e) => println!("Nope! => {}", e),
};
}
// With a placeholder you provide
use houdini::disappear;
fn main() {
#[cfg(target_os = "windows")]
match houdini::disappear_with_placeholder("temporary") {
Ok(_) => println!("Pulled a Houdini!!"),
Err(e) => println!("Nope! => {}", e),
};
}
依赖项
~0–38MB
~525K SLoC