PDA

Просмотр полной версии : AmazingRP / d3d9 hook


Vintik
21.02.2024, 22:23
Хочу рисовать поверх окна Амазинг РП (КРМП).

Проблема в том, что оверлей Стима / Дискорда почему-то там не работает (монопольный режим мб какой-то, я хз)

Я хочу сделать .dll-ку, чтобы хукнуть d3d9 EndScene

Это мне вообще чё надо делать? Искать адреса что хукать? Или какой метод...

Если да, то как его искать. Заранее благодарю за помощь

* с графикой ни разу не работал, поэтому можно МАКСИМАЛЬНО ПОДРОБНО, а не просто иди в угол

0xff
21.02.2024, 22:39
Лови сурс моего вх, делал в декабре 22 года, думаю для твоего вопроса найдется там ответ, т.к. там есть хук d3d9 для ImGui.

Был в привате, пока на амазинге не сказали что это всё зуйня, ну окей.

GitHub - VadimBoev/AmazingMinerWH (https://github.com/VadimBoev/AmazingMinerWH)

Contribute to VadimBoev/AmazingMinerWH development by creating an account on GitHub.

github.com


Всё что тебе нужно, это для решения твоего вопроса:

1. функции хука

2. адреса для хука d3d9 (тащишь его с гта, в примере всё есть)

С графикой на тот момент я тоже не работал, всего лишь нужен был рабочий imgui.

В нём нет деструктора, если захочешь коннектить и дисконнектить библиотеку, придется поискать как это реализовать

Vintik
21.02.2024, 22:41
В нём нет деструктора


Да он нахер и не нужен мне на первое время)



2. адреса для хука d3d9 (тащишь его с гта, в примере всё есть)


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



Лови сурс моего вх, делал в декабре 22 года


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

и еще. как ты обходил эту дурацкую систему выхода при виде cheat engine?

я помню какой то костыль делал с названием окна, но уже забыл...

0xff
21.02.2024, 22:45
Да он нахер и не нужен мне на первое время)

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

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

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


Искать адрес для хука d3d9 тебе в принципе не придется, в примере вх всё есть, там есть адреса.

Он был точно рабочим, сейчас думаю также всё должно работать, т.к. всё зависило только от библиотеки samp r3 которую они юзают и соответственно gta_sa.exe



и еще. как ты обходил эту дурацкую систему выхода при виде cheat engine?


На дворе был 2022 год, декабрь. У них тогда была какая-то защита от всей чепушни. Я просто инжектил DLL в момент авторизации и всё.

Т.е. заходил в игру, был какой-то инжектор, авторизация, сворачивал, инжектил, разворачивал и снова в игре и всё

вайега52
21.02.2024, 23:01
я помню какой то костыль делал с названием окна, но уже забыл...


вроде как оно и ищет по названию окна (антидебаггер, все дела)

F0RQU1N and
22.02.2024, 08:06
Хочу рисовать поверх окна Амазинг РП (КРМП).


так же как и всегда? просто создаешь топмост окно ,контекст и рисуешь



Я хочу сделать .dll-ку, чтобы хукнуть d3d9 EndScene


так ты хочешь В окне рисовать или ПОВЕРХ окна?

waparabka
22.02.2024, 08:29
https://github.com/AnWuPP/ImGui-Scoreboard здесь есть всё что тебе нужно

Vintik
22.02.2024, 14:36
так ты хочешь В окне рисовать или ПОВЕРХ окна?


Значит, сама игра открывается в полноэкранном режиме. Я хочу, чтобы поверх игры рисовалось мое меню.

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



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

GitHub - VadimBoev/AmazingMinerWH (https://github.com/VadimBoev/AmazingMinerWH)

Contribute to VadimBoev/AmazingMinerWH development by creating an account on GitHub.

github.com


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

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





https://github.com/AnWuPP/ImGui-Scoreboard здесь есть всё что тебе нужно


Ребят.

Спасибо за решения, но уж очень быстро вы ответили)

Работаю, не успеваю проверить. Когда проверю - отпишу, лучший ответ поставлю 😁

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

@0xFF (https://www.blast.hk/members/90962/), скажи пожалуйста, что это за функции (вкратце):

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)?

вайега52
22.02.2024, 17:32
скажи пожалуйста, что это за функции


они взяты с этого гайда: link (https://www.blast.hk/threads/113060/)

первая, вроде как, ищет девайс по сигнатуре, а вторая получает адрес ифункции из вмт (virtual method table)

manukhov
22.02.2024, 18:01
Значит, что такое 16 и 17.


16 - Reset

17 - Present

Здесь полный список https://www.unknowncheats.me/forum/direct3d/66594-d3d9-vtables.html (https://www.blast.hk/redirect/aHR0cHM6Ly93d3cudW5rbm93bmNoZWF0cy5tZS9mb3J1bS9kaX JlY3QzZC82NjU5NC1kM2Q5LXZ0YWJsZXMuaHRtbA)

Можешь также найти у себя в DirectX SDK файл d3d9.h и смотреть это там



И что такое 0x128000 (аргумент find_device)?


Объем памяти, по которой будет происходить поиск методов D3D9

Vintik
22.02.2024, 18:52
resetScene зачем хукать?

0xff
22.02.2024, 21:02
resetScene зачем хукать?


Пригодится если захочешь отцепить dll от процесса и чтобы очистить imgui из памяти