
09.07.2022, 21:06
|
|
Участник форума
Регистрация: 28.07.2021
Сообщений: 138
С нами:
2524529
Репутация:
163
|
|
Сообщение от ANZR
Как это сделать .-.
Хук Present'a
Present -> 17 VTable
Reset -> 16 VTable
Нажимай на ссылку "исходника", тебе перекинет на Github или Gitlab с указанной функцией
1. Искать по паттерну -> "C7 06 ?? ?? ?? ?? 89 86 ?? ?? ?? ?? 89 86"
1.1 Из гайда Работа с рендером и Directx9 [4] bykin4stat
C++:
Код:
std
::
uintptr_t
find_device
(
std
::
uint32_t
Len
)
{
static
std
::
uintptr_t base
=
[
]
(
std
::
size_t Len
)
{
std
::
string
path_to
(
MAX_PATH
,
'\0'
)
;
if
(
auto
size
=
GetSystemDirectoryA
(
path_to
.
data
(
)
,
MAX_PATH
)
)
{
path_to
.
resize
(
size
)
;
path_to
+=
"\\d3d9.dll"
;
std
::
uintptr_t dwObjBase
=
reinterpret_cast
(
LoadLibraryA
(
path_to
.
c_str
(
)
)
)
;
while
(
dwObjBase
++
(
dwObjBase
+
0x00
)
==
0x06C7
&&
*
reinterpret_cast
(
dwObjBase
+
0x06
)
==
0x8689
&&
*
reinterpret_cast
(
dwObjBase
+
0x0C
)
==
0x8689
)
{
dwObjBase
+=
2
;
break
;
}
}
return
dwObjBase
;
}
return
std
::
uintptr_t
(
0
)
;
}
(
Len
)
;
return
base
;
}
void
*
get_function_address
(
int
VTableIndex
)
{
return
(
*
reinterpret_cast
(
find_device
(
0x128000
)
)
)
[
VTableIndex
]
;
}
1.2 Из исходника Alpha Chat bykin4stat
C++:
Код:
DWORD
FindDevice
(
DWORD Len
)
{
DWORD dwObjBase
=
0
;
char
infoBuf
[
MAX_PATH
]
;
GetSystemDirectoryA
(
infoBuf
,
MAX_PATH
)
;
strcat_s
(
infoBuf
,
MAX_PATH
,
"\\d3d9.dll"
)
;
dwObjBase
=
(
DWORD
)
LoadLibraryA
(
infoBuf
)
;
while
(
dwObjBase
++
(
VTable
[
VTableIndex
]
)
;
}
;
2. По гташному адресу
2.1 Из исходника Alpha Chat bykin4stat
C++:
Код:
DWORD pDevice
=
*
reinterpret_cast
(
0xC97C28
)
;
void
*
*
vTable
=
*
reinterpret_cast
(
pDevice
)
;
2.2 Из исходника ultra wallhack bysc6ut
|
|
|