Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
1

Как организовать D3D9.dll hook для DirectX 9?

01.07.2017, 22:53. Просмотров 4463. Ответов 16
Метки нет (Все метки)


Здравствуйте. Вот занялся я перехватом EndScene в игре, использующую для рисования DirectX 9 версии. В общем-то, перехват мне так и не удалось сделать, но я, покопавшись на иностранных форумах обнаружил иной способ взлома нужной мне игрушки. Автор написал статью, в которой указал что научит писать "обертку" до степени компиляции аж самого d3d9.dll, который, собственно, игрушка будет кушать автоматически при запуске. Статью он так и не дописал. Поэтому, обращаюсь к вам с просьбой помочь мне реализовать такую вот штучечку. Или возможно вы знаете сайт с подобного рода информацией, а то поиск в гугле не предоставил нужных результатов, т.к. я в анг. не силен

Добавлено через 2 часа 11 минут
Под "взломом" я представлял вывод всей информации из игры на монитор для дебага
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2017, 22:53
Ответы с готовыми решениями:

создать hook из самой dll при ATACHE где находится функция
кто подскажет. хочу подключить hook при внедрении DLL. Адрес dll'ки находит, адрес функции находит...

Создание dll для Hook' ов
подскажите, что нужно прописать в dll файле и основном, чтобы программа считывала нажатия клавиш в...

Создание Hook-ов без dll
Можно ли создать hook без dll? если да, то скиньте код)

[hook и dll]
Недавно решил попробовать разобраться в hook'ах... Поискал в инете, нашёл пример перехвата API...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
16
Заблокирован
02.07.2017, 09:26 2
Цитата Сообщение от Silckat Посмотреть сообщение
Автор написал статью, в которой указал что научит писать "обертку" до степени компиляции аж самого d3d9.dll
Как интересно, а сорцы DirectX ему наверное сам Бил Гетс подарил?
Если хочешь побаловаться и в рантайме поменять некоторые константы в оффлайн игре, тогда твой выбор - Cheat Engine. Если хочешь полного контроля, твой выбор - интерактивный дизассемблер типа IDA Pro или Syser, но суда по уровню твоих прямы речей - это не твой уровень
В онлайн игре ты ничего не взломаешь, т.к. вся инфа, как правило, лежит на сервере и то, что ты поменяешь на клиенте, никак на сервер не скажется, максимум ты словишь бан при проверки чек сум данных. На клиенте писать чит можно только для управления положением мышки на экране и нажатия клавиш, типа aimbot и пр, но опять же, неграмотно напишешь - спалят. А вообще, на сколько я знаю, правилами форума запрещено обсуждать разработку вирусов и читов, так что я откланяюсь.
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 14:31  [ТС] 3
Ну SDK же есть для работы с DirectX, это открытый проект Microsoft. Суть в том, что мы сами сервер пишем. Конкретно для этой игрушки известно множество адресов памяти и поэтому нужен полный доступ к ним. И для нее написано несколько вариаций такой модификации библиотеки, например чит и улучшения графики, поэтому я и хочу задать ей такое имя. Но покопавшись в исходниках модификаций я ничего не разобрал, многого не понимаю. Вот я и спрашиваю, может кто знает куда копать
0
Заблокирован
02.07.2017, 14:35 4
Цитата Сообщение от Silckat Посмотреть сообщение
Ну SDK же есть для работы с DirectX, это открытый проект Microsoft.
Где это сорцы DirectX лежат в открытом доступе?

Говорю же, для модификации памяти попробую заюать Cheat Engine
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 15:37  [ТС] 5
А как тогда делают модификации этой библиотеки? И забудь про Cheat Engine, выше внимательней почитай что я писал
0
Заблокирован
02.07.2017, 15:40 6
Цитата Сообщение от Silckat Посмотреть сообщение
А как тогда делают модификации этой библиотеки?
Какой библиотеки? DirectX? Никак! Это закрытая проприетарная библиотека - драйвер от Microsoft и никогда они сорцы не откроют.
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 15:48  [ТС] 7
Что значит никак. Повторюсь: люди пишут модификацию d3d9.dll, которую игрушка кушает при запуске. Само собой в нее надо исходники заложить. Или может я не правильно объясняюсь
0
Заблокирован
02.07.2017, 16:52 8
Цитата Сообщение от Silckat Посмотреть сообщение
Повторюсь: люди пишут модификацию d3d9.dll, которую игрушка кушает при запуске. Само собой в нее надо исходники заложить. Или может я не правильно объясняюсь
Люди пишут хаки/читы, слегка модифицируя d3d9.dll в интерактивном дизассемблере, это требует очень серьёзных знаний. Разумеется, сорцов для сборки d3d9.dll ни у кого нет
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 19:16  [ТС] 9
На плюсах в студии они пишут. Ты сам не знаешь о чем говоришь. Мне не нужны сорцы, мне нужно собрать рабочий d3d9.dll с возможностью добавлять в него свои функции
0
Заблокирован
02.07.2017, 19:22 10
Цитата Сообщение от Silckat Посмотреть сообщение
Ты сам не знаешь о чем говоришь.
Ну... найдёшь сорцы DirectX, отпишись :-)
0
Заблокирован
02.07.2017, 19:41 11
Цитата Сообщение от MirageEngine Посмотреть сообщение
найдёшь сорцы DirectX, отпишись :-)
Тут, конечно, не весь DX, а только D3D, но всё равно на https://source.winehq.org/git/... /dlls/d3d9

Добавлено через 9 минут
MirageEngine,
туда же
https://source.winehq.org/git/... lls/dsound
https://source.winehq.org/git/... /dlls/d2d1
1
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
25.07.2017, 13:12  [ТС] 12
Уважаемые форумчане! Никак не могу понять логику перехвата отрисовки в приложении. Есть много уроков, много в них багов и все они разные. Кому не лень, распишите все пошагово.

Я пишу все в одном main.cpp, не подключая заголовочных файлов и не создавая классов. В DllMain я загружаю библиотеку d3d9.dll с диска C, т.к. исходное название проекта d3d9.dll, который копируется в папку с игрой и атоматически подгружается в нее при запуске.

Желательно минималистичный код без кучи указателей и прототипов. И пример как вывести текст

Добавлено через 11 часов 28 минут
P.S. Перехватывать надо EndScene
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
25.07.2017, 14:34  [ТС] 13
Решил так: просто при DLL_PROCESS_ATTACH выполняю LoadLibrary("//d3d9.dll");
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
26.07.2017, 00:31 14
Цитата Сообщение от Silckat Посмотреть сообщение
В DllMain я загружаю библиотеку
Так делать нельзя. Из документации:
Threads in DllMain hold the loader lock so no additional DLLs can be dynamically loaded or initialized.
0
Каждому свое
530 / 216 / 81
Регистрация: 05.08.2013
Сообщений: 1,613
27.07.2017, 21:47 15
Silckat, Я писал игровой движок, и должен время возился с GameDev'ом. Ты что-то путаешь. Вот сейчас я смотрю DirectX SDK, и сорцы не вижу. DirectX - это не открытая библиотека. Она просто предоставляет доступ к своему COM интерфейсу, и не более
0
Maniac
Эксперт С++
1454 / 955 / 159
Регистрация: 02.01.2009
Сообщений: 2,815
Записей в блоге: 1
28.07.2017, 15:43 16
Вот пример перехвата нужной тебе функции
directx9hook
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
12.08.2017, 12:03  [ТС] 17
Где я сказал что есть сорцы?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2017, 12:03

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Не могу установить d3d9.dll
доброе время суток у меня такая проблема. переустановил винду. при установке и запуске скайп и...

Создание спрайтов D3D9.DLL?
Ребята как можно создать и рисовать 2D спрайты в Direct3D, возможно ли это???

GTA 4 не может обнаружить d3d9.dll
Ребят, извиняюсь если ошибся разделом..Проблема в следующем..Игра GTA IV после одного моего...

Dll и Nsf Hook
Уважаемые! Моя история такова: я пытаюсь (первый раз в жизни) написать NSF Hook. Разумеется,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.