wraith/manipulation/inline_hook/hook/
mod.rs1pub mod chain;
14pub mod eat;
15pub mod hotpatch;
16pub mod iat;
17pub mod inline;
18pub mod mid;
19pub mod veh;
20pub mod vmt;
21
22pub use chain::HookChain;
23pub use eat::{EatHook, EatHookBuilder, EatHookGuard, EatEntry, enumerate_eat_entries, find_eat_entry, find_eat_entry_by_ordinal};
24pub use hotpatch::HotPatchHook;
25pub use iat::{IatHook, IatHookGuard, IatEntry, enumerate_iat_entries, find_iat_entry, hook_import, hook_import_all};
26pub use inline::InlineHook;
27pub use mid::MidFunctionHook;
28pub use veh::{VehHook, VehHookType, DebugRegister, BreakCondition, BreakLength, get_available_debug_register};
29pub use vmt::{VmtHook, VmtHookGuard, VmtHookBuilder, ShadowVmt, VmtObject, get_vtable, get_vtable_entry, estimate_vtable_size};
30
31use crate::error::Result;
32
33pub trait Hook: Sized {
35 type Guard;
37
38 fn install(self) -> Result<Self::Guard>;
40
41 fn target(&self) -> usize;
43
44 fn detour(&self) -> usize;
46}