hook_king 0.1.4

Low-level automated hooking library with detours, trampolines, and memory management. Supports internal/external process hooking with optional original code preservation.
1
2
3
4
5
6
7
8
9
10
11
12
13
use hook_king::*;

fn main() {
  // let process_id = HookKing::process_id("010Editor.exe").unwrap();
  let process_id = HookKing::process_id("NieRAutomata.exe").unwrap();
  let process = HookKing::process(process_id).unwrap();
  let module_base = HookKing::module_base(None, Some(process_id)).unwrap();

  let mut hook_king = HookKing::new(Some(process));
  let hook_info = HookInfo::new("health", module_base, HookType::Detour, assemble!(push rax;));

  unsafe { hook_king.hook(hook_info).unwrap() };
}