
19.06.2023, 23:37
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от why ega
Как можно получить указатель на RakPeer, не хукая его методы?
RakNetInterface* - 3550
|
|
|

19.06.2023, 23:49
|
|
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами:
4609424
Репутация:
183
|
|
Сообщение от kin4stat
RakNetInterface* - 3550
но ракклиент точно не брать из cnetgame, ибо его могут подменить. бери из конструктора ракклиента
|
|
|

20.06.2023, 05:49
|
|
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами:
2614229
Репутация:
33
|
|
Can someone help me rewrite these snippets in C++? | Может ли кто-нибудь помочь мне переписать эти фрагменты на C++?
CLEO:
Код:
:get_samp_version_id
// 0AB1: @get_samp_version_id 0 _returned: ID 0@
30@
=
0
IF
0AA2:
31@
=
"samp.dll"
// IF and SET
THEN
31@
+=
0x128
0A8D:
29@
= read_memory
31@
size
4
virtual_protect
1
IF
29@
==
0x5542F47A
THEN
// 0.3.7 R1
30@
=
1
END
IF
29@
==
0x59C30C94
THEN
// 0.3.7 R2
30@
=
2
END
IF
29@
==
0x5A6A3130
THEN
// 0.3.DL
30@
=
3
END
31@
-=
8
// reading samp.dll + 0x120
0A8D:
29@
= read_memory
31@
size
4
virtual_protect
1
IF
29@
==
0x5C0B4243
THEN
// 0.3.7 R3
30@
=
4
END
IF
29@
==
0x5DD606CD
THEN
// 0.3.7 R4
30@
=
5
END
IF
29@
==
0x6094ACAB
THEN
// 0.3.7 R4 - v2
30@
=
6
END
IF
29@
==
0x6372C39E
THEN
// 0.3.7 R5
30@
=
7
END
END
0AB2:
ret
1
30@
CLEO:
Код:
:GetLocalPlayerName
{
0AB1: @GetLocalPlayerName 0 _Returned: NameInIntegerFormat 31@
}
IF
0AA2:
31@
=
"samp.dll"
THEN
0AB1:
@get_samp_version_id
0
_returned: ID
17@
IF
17@
>
0
THEN
IF
17@
==
1
// 0.3.7 R1
THEN
0A8E:
30@
=
31@
+
0x21A0F8
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3CD
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x18
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x13CD0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
2
// 0.3.7 R2
THEN
0A8E:
30@
=
31@
+
0x21A100
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3C5
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x13D90
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
3
// 0.3.DL
THEN
0A8E:
30@
=
31@
+
0x2ACA24
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x170C0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
4
// 0.3.7 R3
THEN
0A8E:
30@
=
31@
+
0x26E8DC
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x16EF0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
5
// 0.3.7 R4
THEN
0A8E:
30@
=
31@
+
0x26EA0C
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x17560
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
6
// 0.3.7 R4 - v2
THEN
0A8E:
30@
=
31@
+
0x26EA0C
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x4
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x175B0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
7
// 0.3.7 R5
THEN
0A8E:
30@
=
31@
+
0x26EB94
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x4
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x175B0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
0AA8:
call_function_method
29@
struct
30@
num_params
0
pop
0
_Returned: Name
28@
/// Returned value is in integer, convert integer to string to get string...
END
END
0AB2:
ret
0
|
|
|

20.06.2023, 14:40
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Сообщение от !Sam#0235
Can someone help me rewrite these snippets in C++? | Может ли кто-нибудь помочь мне переписать эти фрагменты на C++?
CLEO:
Код:
:get_samp_version_id
// 0AB1: @get_samp_version_id 0 _returned: ID 0@
30@
=
0
IF
0AA2:
31@
=
"samp.dll"
// IF and SET
THEN
31@
+=
0x128
0A8D:
29@
= read_memory
31@
size
4
virtual_protect
1
IF
29@
==
0x5542F47A
THEN
// 0.3.7 R1
30@
=
1
END
IF
29@
==
0x59C30C94
THEN
// 0.3.7 R2
30@
=
2
END
IF
29@
==
0x5A6A3130
THEN
// 0.3.DL
30@
=
3
END
31@
-=
8
// reading samp.dll + 0x120
0A8D:
29@
= read_memory
31@
size
4
virtual_protect
1
IF
29@
==
0x5C0B4243
THEN
// 0.3.7 R3
30@
=
4
END
IF
29@
==
0x5DD606CD
THEN
// 0.3.7 R4
30@
=
5
END
IF
29@
==
0x6094ACAB
THEN
// 0.3.7 R4 - v2
30@
=
6
END
IF
29@
==
0x6372C39E
THEN
// 0.3.7 R5
30@
=
7
END
END
0AB2:
ret
1
30@
CLEO:
Код:
:GetLocalPlayerName
{
0AB1: @GetLocalPlayerName 0 _Returned: NameInIntegerFormat 31@
}
IF
0AA2:
31@
=
"samp.dll"
THEN
0AB1:
@get_samp_version_id
0
_returned: ID
17@
IF
17@
>
0
THEN
IF
17@
==
1
// 0.3.7 R1
THEN
0A8E:
30@
=
31@
+
0x21A0F8
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3CD
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x18
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x13CD0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
2
// 0.3.7 R2
THEN
0A8E:
30@
=
31@
+
0x21A100
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3C5
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x13D90
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
3
// 0.3.DL
THEN
0A8E:
30@
=
31@
+
0x2ACA24
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x170C0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
4
// 0.3.7 R3
THEN
0A8E:
30@
=
31@
+
0x26E8DC
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x16EF0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
5
// 0.3.7 R4
THEN
0A8E:
30@
=
31@
+
0x26EA0C
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x8
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x17560
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
6
// 0.3.7 R4 - v2
THEN
0A8E:
30@
=
31@
+
0x26EA0C
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x4
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x175B0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
IF
17@
==
7
// 0.3.7 R5
THEN
0A8E:
30@
=
31@
+
0x26EB94
// SAMP_INFO_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x3DE
// SAMP_PPOOLS_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
30@
+=
0x4
// SAMP_PPOOL_PLAYER_OFFSET
0A8D:
30@
= readMem
30@
sz
4
vp
0
0A8E:
29@
=
31@
+
0x175B0
// SAMP_GET_LOCAL_PLAYER_NAME_OFFSET
END
0AA8:
call_function_method
29@
struct
30@
num_params
0
pop
0
_Returned: Name
28@
/// Returned value is in integer, convert integer to string to get string...
END
END
0AB2:
ret
0
Это не идеальный код но для примера сойдет. Другую функцию можно по аналогии сделать.
C++:
Код:
int
get_samp_version_id
(
void
)
{
DWORD version_current
=
0
;
DWORD samp_base
=
GetModuleHandle
(
"samp.dll"
)
;
if
(
samp_base
)
{
DWORD version_id
=
*
(
DWORD
*
)
(
samp_base
+
0x128
)
;
switch
(
version_id
)
{
case
0x5542F47A
:
// R1
version_current
=
1
;
break
;
case
0x59C30C94
:
// R2
version_current
=
2
;
break
;
case
0x5A6A3130
:
// DL
version_current
=
3
;
break
;
}
version_id
=
*
(
DWORD
*
)
(
samp_base
+
0x120
)
;
switch
(
version_id
)
{
case
0x5C0B4243
:
// R3
version_current
=
4
;
break
;
case
0x5DD606CD
:
// R4 - v1
version_current
=
5
;
break
;
case
0x6094ACAB
:
// R4 - v2
version_current
=
6
;
break
;
case
0x6372C39E
:
// R5
version_current
=
7
;
break
;
}
}
return
version_id
;
}
|
|
|

21.06.2023, 02:01
|
|
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами:
3022568
Репутация:
68
|
|
Кто сможет помочь, почему не может установится хук, выводит мне: Ошибка установки хука: 1428, запускаю от имени администратора, антивируса нету, в чем может быть проблема? мб настройка проекта
C++:
[CODE]
#include
#include
#include
using
namespace
std
;
LRESULT CALLBACK
HookProcedure
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
nCode
==
HSHELL_WINDOWCREATED
)
{
HWND hwnd
=
(
HWND
)
lParam
;
char
title
[
1024
]
;
GetWindowTextA
(
hwnd
,
title
,
sizeof
(
title
)
)
;
cout
другие хуки работают, особенно те которые не требуют прав администратора, к примеру этот код работает
C++:
[CODE]
#include
#include
#include
using
namespace
std
;
LRESULT CALLBACK
HookProcedure
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
nCode
==
HC_ACTION
)
{
switch
(
wParam
)
{
case
WM_LBUTTONDOWN
:
cout
😒😢
|
|
|

21.06.2023, 02:13
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
[QUOTE="ччбчлчлчъ ччччшчьпьппзвжв"]
Кто сможет помочь, почему не может установится хук, выводит мне: Ошибка установки хука: 1428, запускаю от имени администратора, антивируса нету, в чем может быть проблема? мб настройка проекта
C++:
[CODE]
#include
#include
#include
using
namespace
std
;
LRESULT CALLBACK
HookProcedure
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
nCode
==
HSHELL_WINDOWCREATED
)
{
HWND hwnd
=
(
HWND
)
lParam
;
char
title
[
1024
]
;
GetWindowTextA
(
hwnd
,
title
,
sizeof
(
title
)
)
;
cout
#include
#include
using
namespace
std
;
LRESULT CALLBACK
HookProcedure
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
if
(
nCode
==
HC_ACTION
)
{
switch
(
wParam
)
{
case
WM_LBUTTONDOWN
:
cout
|
|
|

21.06.2023, 12:58
|
|
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами:
3022568
Репутация:
68
|
|
Сообщение от ARMOR
Я конечно не уверен, но почему у тебя HWND это просто скащеный lParam? HWND является же первым аргументом wndProc'а
это не решает проблему
C++:
[CODE]
#include
#include
#include
using
namespace
std
;
HHOOK hHook
;
LRESULT CALLBACK
HookProcedure
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
cout
изменил прогу, теперь при запуске проги, пишет что хук установлен, только при запуске программ ничего не выводится в консоль, и отладочная строчка не появляется cout
|
|
|

25.06.2023, 23:25
|
|
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами:
3022568
Репутация:
68
|
|
[QUOTE="ччбчлчлчъ ччччшчьпьппзвжв"]
это не решает проблему
C++:
[CODE]
#include
#include
#include
using
namespace
std
;
HHOOK hHook
;
LRESULT CALLBACK
HookProcedure
(
int
nCode
,
WPARAM wParam
,
LPARAM lParam
)
{
cout
|
|
|

26.06.2023, 19:55
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от ччбчлчлчъ ччччшчьпьппзвжв
ап
Это у тебя консоль? Там вроде есть фигня, что с консолями такое криво работает.
|
|
|

22.06.2023, 20:17
|
|
Новичок
Регистрация: 08.10.2022
Сообщений: 10
С нами:
1895177
Репутация:
3
|
|
Как выделить активные кнопки в ImGui?
То есть когда я нажимаю на кнопку она становится другого цвета, типо активная, нажимаю второй раз она уже не другого цвета, то есть не активная
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|