#可执行文件 #删除 #运行 #Unix #Windows #发布 #获取

houdini

一个允许你在程序运行时删除可执行文件的库

4 个稳定版本

2.0.0 2023年3月24日
1.0.2 2021年11月14日
1.0.1 2021年8月31日

#403Unix API

MIT 许可证

16KB
285

Houdini

Houdini 是一个 Rust 库,允许你在程序运行时删除你的可执行文件。

对于 Unix 系统,这相对简单,因为可执行文件在映射到内存后才会释放。我们只需要找到它并将其解除链接。

在 Windows 上,我们使用 @jonasLyk 发现的方法。我的实现大量参考了 @byt3bl33d3rOffensiveNim 中的 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