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

  #1  
Старый 05.05.2016, 18:17
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

UPD 23.10.2017: Ну и УГ, не юзайте это. Лучше тащите хуки из этого шаблона: Prime-Hack | AsiPlugin(https://dl.prime-hack.net/AsiPlugin/)

Написал небольшой класс для управления хуками.

Функции класса:

Цитата:
Сообщение от Спойлер  

Поиск участка кода, по его части.

Использование:

Код:





Код:
DWORD ret = FindPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, char * szMask)


где dsAddress - начальный аддрес поиска. Например GetModuleHandle(samp.dll), для поиска функций в samp.dll

dwLen - размер адресного пространство (как далеко искать). Например для поиска статичных функций в samp.dll, можно указать ее размер.

bMask - часть кода искомой функции

szMask - маска кода (x - байт должен быть такой же как в bMask, ? - байт может быть любой)

ret - адрес искомого участка кода
Цитата:
Сообщение от Спойлер  

Создает хук.

Использование:

Код:





Код:
DWORD ret = CreateHOOK(DWORD dwAddress, DWORD dwFunc, TypeHOOK type, size_t len)


где dwAddress - адрес кода, на который необходимо поставить хук.

dwFunc - функция на которую будет ссылаться хук

type - тип хука
  • Jump - обычный переход, оригинальный код будет вызываться после выхода из вашей функции
  • Call - вызов вашей функции, оригинальный код не будет вызываться после выхода из вашей функции
  • Call_s - вызов вашей функции, оригинальный код будет вызываться после выхода из вашей функции
len - количество заменяемых байт (не меньше 5)

ret - адрес выхода из функции, у Jump хуков в конце должен быть переход на этот адрес, для вызова оригинального кода, этот же адрес используется для удаления хука (сделано это в связи с тем, что на 1 адрес можно нацепить несколько хуков)
Цитата:
Сообщение от Спойлер  

Удаляет хук.

Использование:

Код:





Код:
bool ret = RemoveHOOK(DWORD dsAddress)


где dwAddress - адрес который вернула функция создания хука

ret - результат операции:
  • false - хук не существует, удален ранее, или создан не через данный класс
  • true - хук успешно удален
При вызове деструктора все хуки удаляются.

Весь сок в том, что хуки можно ставить друг на друга, пока не кончится память.

Копиригхт:

функция memcpy_safe и memset_safe взяты из соба

функция поиска участка кода была давно найдена где-то в интернетах, кажется на unkowncheats.me
 
Ответить с цитированием
 





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...