buesingniklas icon

detour

buesingniklas | PRO | 03/16/19 02:54:50 AM UTC | 0 ⭐ | 2645 👁️ | Never ⏰ | []
text |

1.11 KB

|

None

|

0 👍

/

0 👎

type OnLevelAddedPlayerFn = fn(*mut LevelC, *mut PlayerC) -> bool;
 struct FunctionPtrAddress {
    addy: OnLevelAddedPlayerFn
}
 lazy_static! {
    static ref fn_ptrs: FunctionPtrAddress = FunctionPtrAddress {
        addy: unsafe {
            std::mem::transmute::<usize, OnLevelAddedPlayerFn>(0x10111790)
        }
    };
}
 static_detours! {
    struct CreateMoveDetour: fn(*mut LevelC, *mut PlayerC) -> bool;
}
  pub fn init_hooks() {
     let closure_for_on_level_added_player = |level, player| {
        ui::toast("Not original", "lol");
         return (fn_ptrs.addy)(level, player);
    };
     let mut hook = unsafe {
        CreateMoveDetour.initialize(on_level_added_player_hook, closure_for_on_level_added_player).unwrap()
    };
     unsafe {
        hook.enable().unwrap();
    }
     on_level_added_player_hook(std::ptr::null_mut(), std::ptr::null_mut());
    hook.call(std::ptr::null_mut(), std::ptr::null_mut());
}
 fn on_level_added_player_hook(level: *mut LevelC, player: *mut PlayerC) -> bool {
    ui::toast("Original", "lol");
     return (fn_ptrs.addy)(level, player);
}

Comments