kin4stat
11.02.2021, 19:50
Делать было нехер, сделал хукер на ассемблере :D
Умеет подменять вызов, если адрес который вы передаете указывает на опкод вызова (E8)
Тоже самое произойдет с прыжком, если на месте хука стоит опкод прыжка (E9)
Пример использования:
C:
typedef
void
(
__cdecl
*
CTimer_Update
)
(
)
;
CTimer_Update TimerHookTrampoline
;
void
__cdecl
HOOK__CTimer__Update
(
)
{
return
TimerHookTrampoline
(
)
;
}
InstallHook
(
reinterpret_cast
(
0x561B10
)
,
&
HOOK__CTimer__Update
,
6
,
reinterpret_cast
(
&
TimerHookTrampoline
)
)
;
Если трамплин не требуется:
C:
void
__cdecl
HOOK__CTimer__Update
(
)
{
return
;
}
InstallHook
(
reinterpret_cast
(
0x561B10
)
,
&
HOOK__CTimer__Update
,
6
,
0
)
;
Исходник на гитхабе:
GitHub - kin4stat/ASMHook (https://github.com/KiN4StAt/ASMHook)
Contribute to kin4stat/ASMHook development by creating an account on GitHub.
github.com
Умеет подменять вызов, если адрес который вы передаете указывает на опкод вызова (E8)
Тоже самое произойдет с прыжком, если на месте хука стоит опкод прыжка (E9)
Пример использования:
C:
typedef
void
(
__cdecl
*
CTimer_Update
)
(
)
;
CTimer_Update TimerHookTrampoline
;
void
__cdecl
HOOK__CTimer__Update
(
)
{
return
TimerHookTrampoline
(
)
;
}
InstallHook
(
reinterpret_cast
(
0x561B10
)
,
&
HOOK__CTimer__Update
,
6
,
reinterpret_cast
(
&
TimerHookTrampoline
)
)
;
Если трамплин не требуется:
C:
void
__cdecl
HOOK__CTimer__Update
(
)
{
return
;
}
InstallHook
(
reinterpret_cast
(
0x561B10
)
,
&
HOOK__CTimer__Update
,
6
,
0
)
;
Исходник на гитхабе:
GitHub - kin4stat/ASMHook (https://github.com/KiN4StAt/ASMHook)
Contribute to kin4stat/ASMHook development by creating an account on GitHub.
github.com