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

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

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

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

Добавлено через 2 часа 11 минут
Под "взломом" я представлял вывод всей информации из игры на монитор для дебага
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.07.2017, 22:53
Ответы с готовыми решениями:

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

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

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

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

Говорю же, для модификации памяти попробую заюать Cheat Engine
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 15:37  [ТС]
А как тогда делают модификации этой библиотеки? И забудь про Cheat Engine, выше внимательней почитай что я писал
0
Заблокирован
02.07.2017, 15:40
Цитата Сообщение от Silckat Посмотреть сообщение
А как тогда делают модификации этой библиотеки?
Какой библиотеки? DirectX? Никак! Это закрытая проприетарная библиотека - драйвер от Microsoft и никогда они сорцы не откроют.
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 15:48  [ТС]
Что значит никак. Повторюсь: люди пишут модификацию d3d9.dll, которую игрушка кушает при запуске. Само собой в нее надо исходники заложить. Или может я не правильно объясняюсь
0
Заблокирован
02.07.2017, 16:52
Цитата Сообщение от Silckat Посмотреть сообщение
Повторюсь: люди пишут модификацию d3d9.dll, которую игрушка кушает при запуске. Само собой в нее надо исходники заложить. Или может я не правильно объясняюсь
Люди пишут хаки/читы, слегка модифицируя d3d9.dll в интерактивном дизассемблере, это требует очень серьёзных знаний. Разумеется, сорцов для сборки d3d9.dll ни у кого нет
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
02.07.2017, 19:16  [ТС]
На плюсах в студии они пишут. Ты сам не знаешь о чем говоришь. Мне не нужны сорцы, мне нужно собрать рабочий d3d9.dll с возможностью добавлять в него свои функции
0
Заблокирован
02.07.2017, 19:22
Цитата Сообщение от Silckat Посмотреть сообщение
Ты сам не знаешь о чем говоришь.
Ну... найдёшь сорцы DirectX, отпишись :-)
0
Заблокирован
02.07.2017, 19:41
Цитата Сообщение от 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  [ТС]
Уважаемые форумчане! Никак не могу понять логику перехвата отрисовки в приложении. Есть много уроков, много в них багов и все они разные. Кому не лень, распишите все пошагово.

Я пишу все в одном 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  [ТС]
Решил так: просто при DLL_PROCESS_ATTACH выполняю LoadLibrary("//d3d9.dll");
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2017, 00:31
Цитата Сообщение от Silckat Посмотреть сообщение
В DllMain я загружаю библиотеку
Так делать нельзя. Из документации:
Threads in DllMain hold the loader lock so no additional DLLs can be dynamically loaded or initialized.
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
27.07.2017, 21:47
Silckat, Я писал игровой движок, и должен время возился с GameDev'ом. Ты что-то путаешь. Вот сейчас я смотрю DirectX SDK, и сорцы не вижу. DirectX - это не открытая библиотека. Она просто предоставляет доступ к своему COM интерфейсу, и не более
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
28.07.2017, 15:43
Вот пример перехвата нужной тебе функции
directx9hook
0
0 / 0 / 1
Регистрация: 26.06.2017
Сообщений: 16
12.08.2017, 12:03  [ТС]
Где я сказал что есть сорцы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2017, 12:03
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru