 |
|

01.03.2021, 21:37
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
Сообщение от SC6UT
так я тебе блять и написал код не для модуля, емае.
где блин

|
|
|

01.03.2021, 21:40
|
|
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами:
3174020
Репутация:
213
|
|
ты хотя бы читал, что я пишу. я написал, что если функция НЕ ЯВЛЯЕТСЯ частью модуля, то ВОТ ТАК.
|
|
|

01.03.2021, 21:54
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
Сообщение от SC6UT
так я тебе блять и написал код не для модуля, емае.
а ок извини
не обратил внимание на код выше, думал процитировал моё сообщение и все
|
|
|

01.03.2021, 22:27
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
@SC6UT, а как быть с фасткаллом, сможешь привести пример?
|
|
|

01.03.2021, 22:33
|
|
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами:
3174020
Репутация:
213
|
|
Сообщение от anticoder
@SC6UT, а как быть с фасткаллом, сможешь привести пример?
тебе надо хукнуть именно fastcall функцию или все же thiscall?
|
|
|

01.03.2021, 22:34
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
Сообщение от SC6UT
тебе надо хукнуть именно fastcall функцию или все же thiscall?
thiscall, но на минхуке использовал fastcall
|
|
|

01.03.2021, 23:31
|
|
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами:
3174020
Репутация:
213
|
|
Сообщение от anticoder
thiscall, но на минхуке использовал fastcall
покажу на примере функции гташки CWeapon::Fire
Код:
bool CWeapon::Fire(CEntity *, CVector *, CVector *, CEntity *, CVector *, CVector *)
я не проверял, так как не могу сейчас, но вроде как вот так:
C++:
Код:
urmem
::
hook hkCWeapon_Fire
;
bool
__stdcall
HOOK_CWeapon_Fire
(
void
*
firingEntity
,
void
*
origin
,
void
*
muzzlePosn
,
void
*
targetEntity
,
void
*
target
,
void
*
originForDriveBy
)
{
// берем указатель на класс из регистра ecx
void
*
dis
;
__asm mov dis
,
ecx
// вызываем оригинальную функцию
return
urmem
::
call_function
(
hkCWeapon_Fire
.
get_original_addr
(
)
,
dis
,
firingEntity
,
origin
,
muzzlePosn
,
targetEntity
,
target
,
originForDriveBy
)
;
}
hkCWeapon_Fire
.
install
(
0x742300
,
urmem
::
get_func_addr
(
&
HOOK_CWeapon_Fire
)
,
urmem
::
hook
::
type
::
jmp
,
5
)
;
|
|
|

01.03.2021, 23:35
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от SC6UT
покажу на примере функции гташки CWeapon::Fire
Код:
CWeapon::Fire(CEntity *, CVector *, CVector *, CEntity *, CVector *, CVector *)
я не проверял, так как не могу сейчас, но вроде как вот так:
C++:
Код:
urmem
::
hook hkCWeapon_Fire
;
bool
__stdcall
HOOK_CWeapon_Fire
(
void
*
firingEntity
,
void
*
origin
,
void
*
muzzlePosn
,
void
*
targetEntity
,
void
*
target
,
void
*
originForDriveBy
)
{
// берем указатель на класс из регистра ecx
void
*
dis
;
__asm mov dis
,
ecx
// вызываем оригинальную функцию
return
urmem
::
call_function
(
hkCWeapon_Fire
.
get_original_addr
(
)
,
firingEntity
,
origin
,
muzzlePosn
,
targetEntity
,
target
,
originForDriveBy
)
;
}
hkCWeaponFire
.
install
(
0x742300
,
urmem
::
get_func_addr
(
&
HOOK_CWeapon_Fire
)
,
urmem
::
hook
::
type
::
jmp
,
5
)
;
не проще фастколл и EDX? да и stdcall вроде только через стек передает если это не функция класса явно объявленная как stdcall
|
|
|

01.03.2021, 23:40
|
|
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами:
3174020
Репутация:
213
|
|
Сообщение от KiN4StAt
не проще фастколл и EDX? да и stdcall вроде только через стек передает если это не функция класса явно объявленная как stdcall
а какая разница как реализовать? через аргументы получил все что идёт в стеке, а потом достал указатель на класс вручную.
|
|
|

01.03.2021, 23:40
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от SC6UT
а какая разница как реализовать? через аргументы получил все что идёт в стеке, а потом достал указатель на класс вручную.
inline asm ломает оптимизатор компилятора
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|