AmazingRP / d3d9 hook

Vintik

Мечтатель
Автор темы
Проверенный
1,467
916
Хочу рисовать поверх окна Амазинг РП (КРМП).
Проблема в том, что оверлей Стима / Дискорда почему-то там не работает (монопольный режим мб какой-то, я хз)
Я хочу сделать .dll-ку, чтобы хукнуть d3d9 EndScene
Это мне вообще чё надо делать? Искать адреса что хукать? Или какой метод...
Если да, то как его искать. Заранее благодарю за помощь

* с графикой ни разу не работал, поэтому можно МАКСИМАЛЬНО ПОДРОБНО, а не просто иди в угол
 
  • Вау
Реакции: why ega
Решение
Лови сурс моего вх, делал в декабре 22 года, думаю для твоего вопроса найдется там ответ, т.к. там есть хук d3d9 для ImGui.
Был в привате, пока на амазинге не сказали что это всё зуйня, ну окей.

Всё что тебе нужно, это для решения твоего вопроса:
1. функции хука
2. адреса для хука d3d9 (тащишь его с гта, в примере всё есть)

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

0xFF

Известный
68
18
Лови сурс моего вх, делал в декабре 22 года, думаю для твоего вопроса найдется там ответ, т.к. там есть хук d3d9 для ImGui.
Был в привате, пока на амазинге не сказали что это всё зуйня, ну окей.

Всё что тебе нужно, это для решения твоего вопроса:
1. функции хука
2. адреса для хука d3d9 (тащишь его с гта, в примере всё есть)

С графикой на тот момент я тоже не работал, всего лишь нужен был рабочий imgui.
В нём нет деструктора, если захочешь коннектить и дисконнектить библиотеку, придется поискать как это реализовать
 
  • Нравится
Реакции: Vintik

Vintik

Мечтатель
Автор темы
Проверенный
1,467
916
В нём нет деструктора
Да он нахер и не нужен мне на первое время)
2. адреса для хука d3d9 (тащишь его с гта, в примере всё есть)
окей. а в общем случае его как искать? или это уже отдельный разговор...
Лови сурс моего вх, делал в декабре 22 года
он же рабочий?

и еще. как ты обходил эту дурацкую систему выхода при виде cheat engine?
я помню какой то костыль делал с названием окна, но уже забыл...
 

0xFF

Известный
68
18
Да он нахер и не нужен мне на первое время)

окей. а в общем случае его как искать? или это уже отдельный разговор...

он же рабочий?

и еще. как ты обходил эту дурацкую систему выхода при виде cheat engine?
я помню какой то костыль делал с названием окна, но уже забыл...
Искать адрес для хука d3d9 тебе в принципе не придется, в примере вх всё есть, там есть адреса.
Он был точно рабочим, сейчас думаю также всё должно работать, т.к. всё зависило только от библиотеки samp r3 которую они юзают и соответственно gta_sa.exe

и еще. как ты обходил эту дурацкую систему выхода при виде cheat engine?
На дворе был 2022 год, декабрь. У них тогда была какая-то защита от всей чепушни. Я просто инжектил DLL в момент авторизации и всё.
Т.е. заходил в игру, был какой-то инжектор, авторизация, сворачивал, инжектил, разворачивал и снова в игре и всё
 
  • Нравится
Реакции: Vintik

F0RQU1N and

Известный
1,310
494
Хочу рисовать поверх окна Амазинг РП (КРМП).
так же как и всегда? просто создаешь топмост окно ,контекст и рисуешь

Я хочу сделать .dll-ку, чтобы хукнуть d3d9 EndScene
так ты хочешь В окне рисовать или ПОВЕРХ окна?
 

Vintik

Мечтатель
Автор темы
Проверенный
1,467
916
так ты хочешь В окне рисовать или ПОВЕРХ окна?
Значит, сама игра открывается в полноэкранном режиме. Я хочу, чтобы поверх игры рисовалось мое меню.
Как это будет реализовываться - поверх окна или в окне после того, как все остальное нарисуется - мне не важно.

Лови сурс моего вх, делал в декабре 22 года, думаю для твоего вопроса найдется там ответ, т.к. там есть хук d3d9 для ImGui.
Был в привате, пока на амазинге не сказали что это всё зуйня, ну окей.

Всё что тебе нужно, это для решения твоего вопроса:
1. функции хука
2. адреса для хука d3d9 (тащишь его с гта, в примере всё есть)

С графикой на тот момент я тоже не работал, всего лишь нужен был рабочий imgui.
В нём нет деструктора, если захочешь коннектить и дисконнектить библиотеку, придется поискать как это реализовать
https://github.com/AnWuPP/ImGui-Scoreboard здесь есть всё что тебе нужно
Ребят.
Спасибо за решения, но уж очень быстро вы ответили)
Работаю, не успеваю проверить. Когда проверю - отпишу, лучший ответ поставлю 😁

Если у кого-то ещё тоже есть примеры - скидывайте) чем больше, тем лучше

@0xFF, скажи пожалуйста, что это за функции (вкратце):
1.
C++:
std::uintptr_t find_device(std::uint32_t Len);
2.
C++:
void* get_function_address(int VTableIndex);
Хуки ставятся по адресам, которые находит эта функция.
Эти адреса записаны в массиве с индексами 16 и 17.

Значит, что такое 16 и 17.
И что такое 0x128000 (аргумент find_device)?
 
Последнее редактирование:

why ega

РП игрок
Модератор
2,539
2,231
скажи пожалуйста, что это за функции
они взяты с этого гайда: link
первая, вроде как, ищет девайс по сигнатуре, а вторая получает адрес ифункции из вмт (virtual method table)
 
  • Нравится
Реакции: 0xFF и Vintik

manukhov

Известный
126
128
Значит, что такое 16 и 17.
16 - Reset
17 - Present
Здесь полный список https://www.unknowncheats.me/forum/direct3d/66594-d3d9-vtables.html
Можешь также найти у себя в DirectX SDK файл d3d9.h и смотреть это там

И что такое 0x128000 (аргумент find_device)?
Объем памяти, по которой будет происходить поиск методов D3D9
 
  • Нравится
Реакции: Vintik