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

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

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

Цитата:
Сообщение от Yuriy Code  

Киня, вот создал ты библиотеку свою, может сделаешь уроки, как самому делать хуки? А то грустно наверное пользоваться готовым кодом.
Мысли людей скорее всего "Эххх, я вот не умею хуки создавать, пользуюсь чужим кодом(((".
И грустно для самого себя использовать чужой код, то есть понимать, что ты так не умеешь и за тебя это сделал другой человек.
Гайд - Хуки – что это такое и как с ними работать [2]

Хотел продолжить первый гайд, но понял что нужно объяснить что такое хуки Создание ASI-плагина с нуля Хуки – что это такое и как с ними работать Безопасная инициализация и работа с SAMP Работа с рендером и Directx9 Обработка событий окна + ImGui В этом гайде я расскажу что такое хуки, как...

www.blast.hk


Исходник - Гайд - Мини-гайд по хукам. [Теория + Практика]

Всем привет. В последнее время я стал замечать, что абсолютное большинство использует всякие готовые библиотеки для хуков, и даже не заморачиваются о строении функций, типах хуков и прочим. Как таковых гайдов очень мало, а если и есть - на английском языке. В этой теме я расскажу обо всем просто...

www.blast.hk
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Обновил, пофиксил баг с выравниванием стека на x64
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Устроим сегодня день обнов, хули

Проверка
Код:
check_is_executable
теперь работает на unix like системах

Также добавил опцию на заморозку потоков. Чтобы ктхук заморозил потоки прежде чем установить хук - второй шаблонный аргумент нужно выставить в
Код:
kthook_option::kFreezeThreads
Работает только на linux и windows (x86 и x64)

(Теоретически ктхук работает и на макос, но я не проверял. Если работает, то заморозка потоков на макос не работает)
 
Ответить с цитированием

  #14  
Старый 20.07.2022, 01:18
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Кинь, твой ктхук для всех игр подойдёт или онли samp?
 
Ответить с цитированием

  #15  
Старый 20.07.2022, 01:20
kizn
Флудер
Регистрация: 23.09.2017
Сообщений: 2,409
С нами: 4546268

Репутация: 183


По умолчанию

Цитата:
Сообщение от Yuriy Code  

И грустно для самого себя использовать чужой код, то есть понимать, что ты так не умеешь и за тебя это сделал другой человек.
Как побороть NIH-синдром?

Ответили на вопрос 4 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.

qna.habr.com
 
Ответить с цитированием

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

Репутация: 138


По умолчанию

Цитата:
Сообщение от Yuriy Code  

Кинь, твой ктхук для всех игр подойдёт или онли samp?
причем тут игры это просто хукер он сам говорил лучше не юзать его для геймхакинга ващ3
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Хайповая обнова мужики зацените.

Из мелочей: фикс бага на naked хуках, фикс установки хука на call опкод.

Ну, а теперь к крутым новостям.

Добавил враппер на коллбэки с большим количество аргументов. Допустим мы хотим захукать такую функцию:

C++:





Код:
using
CCoronas_RegisterCorona
=
void
(
__cdecl
*
)
(
unsigned
int
id
,
CEntity
*
attachTo
,
unsigned
char
red
,
unsigned
char
green
,
unsigned
char
blue
,
unsigned
char
alpha
,
const
CVector
&
posn
,
float
radius
,
float
farClip
,
eCoronaType coronaType
,
eCoronaFlareType flaretype
,
bool
enableReflection
,
bool
checkObstacles
,
int
_param_not_used
,
float
angle
,
bool
longDistance
,
float
nearClip
,
unsigned
char
fadeState
,
float
fadeSpeed
,
bool
onlyFromBelow
,
bool
reflectionDelay
)
;


И из этого всего списка нам нужен только параметр fadeSpeed. Если использовать хуки по обычному, тогда придется описывать все аргументы, и это неудобно.

И приходилось делать это вот так:

C++:





Код:
register_corona_hook
.
set_cb
(
[
]
(
const
auto
&
hook
,
unsigned
int
id
,
CEntity
*
attachTo
,
unsigned
char
red
,
unsigned
char
green
,
unsigned
char
blue
,
unsigned
char
alpha
,
const
CVector
&
posn
,
float
radius
,
float
farClip
,
eCoronaType coronaType
,
eCoronaFlareType flaretype
,
bool
enableReflection
,
bool
checkObstacles
,
int
_param_not_used
,
float
angle
,
bool
longDistance
,
float
nearClip
,
unsigned
char
fadeState
,
loat fadeSpeed
,
bool
onlyFromBelow
,
bool
reflectionDelay
)
{
if
(
fade_speed
==
1.0f
)
return
hook
.
get_trampoline
(
)
(
id
,
attachTo
,
red
,
green
,
blue
,
alpha
,
posn
,
radius
,
farClip
,
coronaType
,
flaretype
,
enableReflection
,
checkObstacles
,
_param_not_used
,
angle
,
longDistance
,
nearClip
,
fadeState
,
15.0f
,
onlyFromBelow
,
reflectionDelay
)
;
else
return
hook
.
call_trampoline
(
id
,
attachTo
,
red
,
green
,
blue
,
alpha
,
posn
,
radius
,
farClip
,
coronaType
,
flaretype
,
enableReflection
,
checkObstacles
,
_param_not_used
,
angle
,
longDistance
,
nearClip
,
fadeState
,
fadeSpeed
,
onlyFromBelow
,
reflectionDelay
)
;
}
)
;


Поэтому теперь можно сделать так:

C++:





Код:
register_corona_hook
.
set_cb_wrapped
(
[
]
(
const
auto
&
hook
,
kthook
::
take

&&
v18
,
float
fade_speed
,
kthook
::
take

&&
v20_v21
)
{
if
(
fade_speed
==
1.0f
)
return
hook
.
call_trampoline
(
v18
,
15.0f
,
v20_v21
)
;
else
return
hook
.
call_trampoline
(
v18
,
fade_speed
,
v20_v21
)
;
}
)
;


Т.е. неиспользуемые первые 18 аргументов закидываются в v18, fade_speed закидывается по обычному, и последние 2 аргумента закидываются в v20_v21.

Заметно меньше ручной писанины, сразу видно что происходит, ну и следовательно меньше шанс ошибки. Круто же?

Ну и чтобы вызвать трамплин, нужно вызвать call_trampoline и передать туда все заглушки. В обычных хуках call_trampoline вызвать тоже можно, но компиляция замедлится.

Ну и пока вы побежали ставить лайки и звездочки на гитхаб, я расскажу об ограничениях.

Коллбэк к хуку не может быть шаблонным. Только первый ее аргумент(т.е. объект хука). Попробую это обойти в ближайшее время конечно, но не факт что выйдет

Ну а еще, не забывайте указывать && у kthook::take, иначе все сломается
 
Ответить с цитированием

  #18  
Старый 08.09.2022, 13:26
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Я просто в ахуе, как это сложно... 😣

А ещё я в этих хуках и реверсе нихуя не понимаю, это просто пиздец. 😕

Где можно научиться? 🙄

Хочется плакать... 🙁😐
 
Ответить с цитированием

  #19  
Старый 08.09.2022, 13:28
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

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

Цитата:
Сообщение от Yuriy Code  

Я просто в ахуе, как это сложно... 😣
А ещё я в этих хуках и реверсе нихуя не понимаю, это просто пиздец. 😕
Где можно научиться? 🙄

Хочется плакать... 🙁😐
перестать писать хуету несусветную в каждой теме и научиться гуглить
 
Ответить с цитированием

  #20  
Старый 08.09.2022, 13:29
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

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

перестать писать хуету несусветную в каждой теме и научиться гуглить
По реверсу и хукам нихуя в гугле нет. ☹️

А если и есть единицы результатов, то это пиздец сложно и непонятно...
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.