Исходник Гайд AHK-HOOK-API

#Rin

Известный
Автор темы
Всефорумный модератор
1,214
1,035
AHK-HOOK-API
API для установка хуков на функции через AHK.
API состоит из файла AHK-HOOK-API.ahk.
Для подключения библиотеки нужно вписать в начало скрипта следующий код:
AutoHotKey:
#include AHK-HOOK-API.ahk


Примеры:
Установка хука на MessageBoxA:
AutoHotKey:
global MsgBoxHook := new Hook("user32.dll", "MessageBoxA", "Hook_MessageBoxA") ; Установка хука.
MsgBox, 0, Заголовок, Текст

Hook_MessageBoxA(hWnd, lpText, lpCaption, uiType)
{
    MsgBoxHook.SetStatus(false) ; Снимаем хук.
    retValue := DllCall("MessageBoxA", "UInt", hWnd, "Str", StrGet(lpText), "Str", "Hooked MsgBox", "UInt", uiType) ; Вызываем оригинальную функцию, но подменяем название.
    MsgBoxHook.SetStatus(true) ; Ставим хук обратно.
    return retValue
}
Примечание: Вместо названий функций, можно указывать их адрес.​
 

Вложения

  • AHK-HOOK-API.zip
    3.8 KB · Просмотры: 78
Последнее редактирование:

клешь рояль

Известный
1,255
551
Мне кажется сами разработчики AHK не знали что его можно так развить ( я щас написал рофл, да бы похвалить тебя,но ладно )
 
Последнее редактирование:

#Rin

Известный
Автор темы
Всефорумный модератор
1,214
1,035
Мне кажется сами разработчики AHK не знали что его можно так развить
Знали, особенно HotKeyIT, например у него есть класс Struct который позволяет впихивать сишные структуры, но помимо ума, у него очень развит навык быдлокода.
Пример: HotKeyIt/_Struct(https://github.com/HotKeyIt/_Struct/blob/master/_Struct.ahk)
 

AnWu

Guardian of Order
Всефорумный модератор
4,683
5,128
  • Нравится
Реакции: Romelo

#Rin

Известный
Автор темы
Всефорумный модератор
1,214
1,035
А как это применить можно?
Ставить хук на showGameText, не дает выполниться функции, а выводить аргументы в MsgBox.
AutoHotKey:
#include ../AHK-HOOK-API.ahk
#Persistent
global dwSAMP := 0, dwFunc := 0
global FUNC_SAMP_SHOWGAMETEXT := 0x9c2c0

dwSAMP := GetModuleHandle("samp.dll")
if (!dwSAMP)
{
    MsgBox, Base address for samp.dll not found.
    ExitApp
}
dwFunc := dwSAMP + FUNC_SAMP_SHOWGAMETEXT

global showGameTextHook := new Hook(0, dwFunc, "Hook_showGameText")

Hook_showGameText(wText, dwTime, dwSize)
{
    wText := StrGet(wText)
    MsgBox, % "wText = " wText "`ndwTime = " dwTime "`ndwSize = " dwSize
}
 
  • Нравится
Реакции: Smer4, CleanLegend и cover

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А как это применить можно?
Если ты не знаешь зачем это то тебе это не нужно. А по теме - с помощью хуков можно реализовать много задач, тот же антистиллер дарк пикселя работает на них контролируя вызовы функций которыми пользуются стиллеры, хуками например можно крякнуть привязку если знать какие WIN API функции использует тот или иной софт и у тебя есть данные от покупателя, можно так же перехвачивать внутриигровые функции к примеру одна из идей отрисовывать трассеры пуль во время стрельбы из сайлент аима прямо в скин жертвы, как видишь полезного много, всё зависит от твоих идей.
 
  • Нравится
Реакции: #Rin

Toopie

Новичок
29
2
Классно приколюшно статично эстетично вакалично хук на addChatMessage будет работать также - Hook_AddChatMessage?