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

  #1  
Старый 05.02.2021, 11:57
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

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

проблема с деструктором ракнета ( была такая же тема, только от kin4stat ), что я делаю неправильно?

C++:





Код:
MH_CreateAndEnableHook
(
pSAMP
->
dwSAMPAddr
+
0x9525
,
&
HOOK_RakClientDestructor
,
NULL
)
;


C++:





Код:
__declspec
(
naked
)
void
HOOK_RakClientDestructor
(
void
)
{
if
(
pSAMP
->
getInfo
(
)
->
pRakClientInterface
!=
NULL
)
delete
pSAMP
->
getInfo
(
)
->
pRakClientInterface
;
pSAMP
->
getInfo
(
)
->
pRakClientInterface
=
pSAMP
->
getRakClientInterface
(
)
;
static
DWORD retDestruct
=
pSAMP
->
dwSAMPAddr
+
0x37686
;
__asm
{
mov     eax
,
[
esp
+
04
]
test    eax
,
eax
        jmp     retDestruct
}
}


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

  #2  
Старый 05.02.2021, 12:45
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

проблема с деструктором ракнета ( была такая же тема, только от kin4stat ), что я делаю неправильно?

C++:





Код:
MH_CreateAndEnableHook
(
pSAMP
->
dwSAMPAddr
+
0x9525
,
&
HOOK_RakClientDestructor
,
NULL
)
;


C++:





Код:
__declspec
(
naked
)
void
HOOK_RakClientDestructor
(
void
)
{
if
(
pSAMP
->
getInfo
(
)
->
pRakClientInterface
!=
NULL
)
delete
pSAMP
->
getInfo
(
)
->
pRakClientInterface
;
pSAMP
->
getInfo
(
)
->
pRakClientInterface
=
pSAMP
->
getRakClientInterface
(
)
;
static
DWORD retDestruct
=
pSAMP
->
dwSAMPAddr
+
0x37686
;
__asm
{
mov     eax
,
[
esp
+
04
]
test    eax
,
eax
        jmp     retDestruct
}
}

в момент удаления там уже может лежать не твой RakClient

Также у тебя не сохранены регистры
 
Ответить с цитированием

  #3  
Старый 05.02.2021, 12:49
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

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

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

в момент удаления там уже может лежать не твой RakClient
Также у тебя не сохранены регистры
других асишников нет, так что скорее всего, лежит мой ( мб не правильно понял тебя)

можешь по подробнее рассказать сохранения регистров?
 
Ответить с цитированием

  #4  
Старый 05.02.2021, 14:03
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

других асишников нет, так что скорее всего, лежит мой ( мб не правильно понял тебя)
можешь по подробнее рассказать сохранения регистров?
__asm pushad - в начале выполнения твоих действий

__asm popad - в конце твоих действий, перед использованием оригинальных байт и прыжком

и покажи инициализацию
 
Ответить с цитированием

  #5  
Старый 06.02.2021, 00:31
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

C++:





Код:
typedef
void
(
__fastcall
*
sub_10009510
)
(
void
*
)
;
sub_10009510 fpHkDestructor
=
0
;
void
__fastcall
HOOK_sub_10009510
(
void
*
pThis
)
{
pSAMP
->
getInfo
(
)
->
pRakClientInterface
=
pSAMP
->
getRakClientInterface
(
)
;
return
fpHkDestructor
(
pThis
)
;
}
MH_CreateHook
(
reinterpret_cast

(
dwSAMP
+
0x9510
)
,
&
HOOK_sub_10009510
,
reinterpret_cast

(
&
fpHkDestructor
)
)
;
MH_EnableHook
(
reinterpret_cast

(
dwSAMP
+
0x9510
)
)
;
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.