ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Hook d3d9::reset (https://forum.antichat.xyz/showthread.php?t=1398715)

Dark_Knight 19.08.2021 01:59

Доброго времени суток граждане алкоголики, туниядцы и хулиганы. Есть ли у кого-то решение хукнуть ЧИСТОотдельный метод d3d9::reset? Акцент в плане вопроса сделан именно на том, чтобы хукнуть именно один метод.

kin4stat 19.08.2021 02:45

Цитата:

Сообщение от Dark_Knight

Доброго времени суток граждане алкоголики, туниядцы и хулиганы. Есть ли у кого-то решение хукнуть ЧИСТОотдельный метод d3d9::reset? Акцент в плане вопроса сделан именно на том, чтобы хукнуть именно один метод.

Так не ставь хук на пресент и все

BulletTracer/fast/D3D/d3dhook.h at e20189b1d42ba0426807a16fd0dfbf31ee01f492 · kin4stat/BulletTracer

Contribute to kin4stat/BulletTracer development by creating an account on GitHub.

github.com

loganhackerdff 19.08.2021 03:27

Цитата:

Сообщение от kin4stat

Так не ставь хук на пресент и все

BulletTracer/fast/D3D/d3dhook.h at e20189b1d42ba0426807a16fd0dfbf31ee01f492 · kin4stat/BulletTracer

Contribute to kin4stat/BulletTracer development by creating an account on GitHub.

github.com


Я когда юзал FindDevice жаловались что на семёрке крашит, с вмт хукером такого нет

kin4stat 19.08.2021 03:35

Цитата:

Сообщение от loganhackerdff

Я когда юзал FindDevice жаловались что на семёрке крашит, с вмт хукером такого нет

vmt hook govno

(в gta:sa можно хукать по адресу девайса)

loganhackerdff 19.08.2021 03:36

Цитата:

Сообщение от kin4stat

vmt hook govno
(в gta:sa можно хукать по адресу девайса)

Но он не крашит на семёрке, а finddevice этот крашит

Cake_ 19.08.2021 05:13

хукер urshadow

C++:





Код:

#define __RwD3DDevice                0x00C97C28
#define DIRECTX_VT_FUNC(offset)        (reinterpret_cast(*reinterpret_cast(*reinterpret_cast(__RwD3DDevice)))[offset])
HRESULT __stdcall
hkReset
(
IDirect3DDevice9
*
pDevice
,
D3DPRESENT_PARAMETERS
*
pPresentationParameters
)
{
HRESULT hres
=
hook_d3dReset
.
call

(
pDevice
,
pPresentationParameters
)
;
return
hres
;
}
hook_d3dReset
.
install
(
urmem
::
get_func_addr
(
DIRECTX_VT_FUNC
(
16
)
)
,
urmem
::
get_func_addr
(
&
hkReset
)
)
;


kin4stat 19.08.2021 05:19

Цитата:

Сообщение от Cake_

Код:





Код:

#define __RwD3DDevice 0x00C97C28
#define DIRECTX_VT_FUNC(offset) (reinterpret_cast(*reinterpret_cast(*reinterpret_cast(__RwD3DDevice)))[offset])



C++:





Код:

constexpr
auto
__RwD3DDevice
=
0x00C97C28
;
void
*
DIRECTX_VT_FUNC
(
unsigned
int
offset
)
{
unsigned
long
Device
=
*
reinterpret_cast

(
__RwD3DDevice
)
;
return
*
reinterpret_cast

(
Device
)
[
offset
]
;
}



UPD:

C++20:

C++:





Код:

constinit
auto
__RwD3DDevice
=
0x00C97C28
;
void
*
DIRECTX_VT_FUNC
(
unsigned
int
offset
)
{
unsigned
long
Device
=
*
reinterpret_cast

(
__RwD3DDevice
)
;
return
*
reinterpret_cast

(
Device
)
[
offset
]
;
}


SR_team 19.08.2021 05:26

Цитата:

Сообщение от kin4stat

C++:





Код:

constexpr
auto
__RwD3DDevice
=
0x00C97C28
;
constexpr
void
*
DIRECTX_VT_FUNC
(
unsigned
int
offset
)
{
unsigned
long
Device
=
*
reinterpret_cast

(
__RwD3DDevice
)
;
return
*
reinterpret_cast

(
Device
)
[
offset
]
;
}



UPD:
C++20:

C++:





Код:

constinit
auto
__RwD3DDevice
=
0x00C97C28
;
consteval
void
*
DIRECTX_VT_FUNC
(
unsigned
int
offset
)
{
unsigned
long
Device
=
*
reinterpret_cast

(
__RwD3DDevice
)
;
return
*
reinterpret_cast

(
Device
)
[
offset
]
;
}



consteval - выполнение строго во время компиляции. Что оно у тебя во время компиляции из 0x00C97C28; прочитает?

Dark_Knight 19.08.2021 12:48

Цитата:

Сообщение от Cake_

хукер urshadow

C++:





Код:

#define __RwD3DDevice                0x00C97C28
#define DIRECTX_VT_FUNC(offset)        (reinterpret_cast(*reinterpret_cast(*reinterpret_cast(__RwD3DDevice)))[offset])
HRESULT __stdcall
hkReset
(
IDirect3DDevice9
*
pDevice
,
D3DPRESENT_PARAMETERS
*
pPresentationParameters
)
{
HRESULT hres
=
hook_d3dReset
.
call

(
pDevice
,
pPresentationParameters
)
;
return
hres
;
}
hook_d3dReset
.
install
(
urmem
::
get_func_addr
(
DIRECTX_VT_FUNC
(
16
)
)
,
urmem
::
get_func_addr
(
&
hkReset
)
)
;



Вот это прям то что я искал. Спасибо. Я просто пробовал хукнуть по адрессу 0x6FFE0 для р1 и ловил краши. Тему можно закрыть.


Время: 06:19