HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 02.07.2022, 16:12
RedHolms
Постоянный
Регистрация: 04.06.2020
Сообщений: 620
С нами: 3127813

Репутация: 133


По умолчанию

Вопрос прост, как захукать появление диалога без SF, только sampapi

Пробовал захукать Receive у RakClientInterface'а, но поскольку все RPC забирает RakPeer, хукаются только пакеты

Прошу гуру подсказать
 
Ответить с цитированием

  #2  
Старый 02.07.2022, 16:39
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

0x6B9C0 r1

__thiscall:





Код:
uintptr_t pThis, int nId, int nType, const char *szCaption, const char *szText, const char *szLeftButton, const char *szRightButton, BOOL bServerside
 
Ответить с цитированием

  #3  
Старый 02.07.2022, 16:40
RedHolms
Постоянный
Регистрация: 04.06.2020
Сообщений: 620
С нами: 3127813

Репутация: 133


По умолчанию

Цитата:
Сообщение от legendabrn  

0x6B9C0 r1

__thiscall:





Код:
uintptr_t pThis, int nId, int nType, const char *szCaption, const char *szText, const char *szLeftButton, const char *szRightButton, BOOL bServerside

Пробовал, результата не дало
 
Ответить с цитированием

  #4  
Старый 02.07.2022, 16:41
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

Цитата:
Сообщение от RedHolms  

Пробовал, результата не дало
покажи как хукал
 
Ответить с цитированием

  #5  
Старый 02.07.2022, 16:47
RedHolms
Постоянный
Регистрация: 04.06.2020
Сообщений: 620
С нами: 3127813

Репутация: 133


По умолчанию

C++:





Код:
using
CDialog__Show_t
=
void
(
__thiscall
*
)
(
samp
::
CDialog
*
,
int
,
int
,
const
char
*
,
const
char
*
,
const
char
*
,
BOOL
)
;
#if defined(BUILD_R3)
#define CDialog__Show 0x6F8C0
#else
#define CDialog__Show 0x6B9C0
#endif
static
kthook
::
kthook_signal

show_dialog_hook
;
static
bool
OnShowDialog
(
const
kthook
::
kthook_signal

&
hk
,
samp
::
CDialog
*
,
int
nId
,
int
,
const
char
*
,
const
char
*
,
const
char
*
,
BOOL
)
{
_DebugPrn
(
"Show dialog %d"
,
nId
)
;
return
false
;
}
void
drugstimer_Init
(
)
{
nlohmann
::
json
&
settings
=
getSubSettings
(
"drugstimer"
,
DefaultSettings
)
;
drugstimer_Key
=
settings
[
"key"
]
;
show_dialog_hook
.
set_dest
(
sampapi
::
GetAddress
(
CDialog__Show
)
)
;
show_dialog_hook
.
before
.
connect
(
OnShowDialog
)
;
}
 
Ответить с цитированием

  #6  
Старый 02.07.2022, 17:58
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

C++:





Код:
typedef
bool
(
__thiscall
*
ShowDialog
)
(
int
*
,
int
,
int
,
const
char
*
,
const
char
*
,
int
,
int
,
const
char
*
)
;
ShowDialog oShowDialog
=
nullptr
;
bool
hkDialog
(
int
*
pThis
,
int
a2
,
int
a3
,
const
char
*
a4
,
const
char
*
a5
,
int
a6
,
int
a7
,
const
char
*
a8
)
{
printf
(
"[hkDialog] id: %d\n"
,
a2
)
;
return
false
;
//return oShowDialog(pThis, nId, nType, szCaption, szText, szLeftButton, szRightButton, bServerside);
}
.
.
.
DWORD hook_addr
=
(
DWORD
)
GetModuleHandleW
(
L
"samp.dll"
)
+
0x6B9C0
;
MH_CreateHook
(
(
void
*
)
hook_addr
,
&
hkDialog
,
(
void
*
*
)
&
oShowDialog
)
;
MH_EnableHook
(
(
void
*
)
hook_addr
)
;
.
.
.




Кстати это не showdialog, а draw

 
Ответить с цитированием

  #7  
Старый 02.07.2022, 18:38
sizeoftrickster
Участник форума
Регистрация: 28.07.2021
Сообщений: 138
С нами: 2524529

Репутация: 163
По умолчанию

Цитата:
Сообщение от legendabrn  

0x6B9C0 r1

__thiscall:





Код:
uintptr_t pThis, int nId, int nType, const char *szCaption, const char *szText, const char *szLeftButton, const char *szRightButton, BOOL bServerside

C++:





Код:
ShowDialog
:
R1
->
0x6B9C0
R2
->
0x6BA70
R3
->
0x6F8C0
R4
->
0x6FFE0
EntryPoint
:
R1
->
0x31DF13
R2
->
0x3195DD
R3
->
0xCC4D0
R4
->
0xCBCB0
 
Ответить с цитированием

  #8  
Старый 02.07.2022, 19:33
RedHolms
Постоянный
Регистрация: 04.06.2020
Сообщений: 620
С нами: 3127813

Репутация: 133


По умолчанию

Нашёл ошибку, забыл вызывать
Код:
kthook::kthook_signal::install
¯\_(ツ)_/¯
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.