ib_shell/hook/dll.rs
1use ib_hook::inject::dll::app::DllApp;
2
3use crate::hook::{inject::ShellDll, set_hook};
4
5ib_hook::inject::dll::app::export_apply!(apply_hook, "ib_shell_apply");
6
7fn apply_hook(input: Option<<ShellDll as DllApp>::Input>) -> <ShellDll as DllApp>::Output {
8 if let Some(input) = &input {
9 ib_hook::inject::dll::dll::spawn_wait_and_free_current_module_once!(input.injector, || {
10 apply_hook(None);
11 0
12 });
13 }
14 set_hook(input.map(|i| i.config));
15}