purebasic.info

PureBasic forum
Текущее время: Вс окт 20, 2019 9:16 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Пример DirectX9 хука.
СообщениеДобавлено: Вт сен 10, 2019 7:47 pm 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Сб авг 31, 2019 6:51 pm
Сообщений: 11
Откуда: Россия, Киров
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Собирать core.pb, x86.
Обязательно должен быть установлен DirectX SDK 2010.
Путь до либы в SDK менять в файле /vendor/d3d9proc.pbi.

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

В комплекте есть Detours от Darky, но он не используется.
Всю отрисовку выполнять нужно в graphics/GUI/GUImain

Сам хук обёртнут в namespace, использовать так:
d3d9Hook::makeHook(@YourHookedProcedure)

Проверить можно в любом D3D9 приложении, заинжектив либу любым инжектором.

Надеюсь, кому-то это пригодится)

Изображение

upd: Заранее извиняюсь за плохое качество кода, PureBasic практически не знаю, сам сишник, привык к его синтаксису и стилю.


Вложения:
Комментарий к файлу: Source Code
core.7z [115.08 KiB]
Скачиваний: 30

_________________
Изображение
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Пример DirectX9 хука.
СообщениеДобавлено: Ср сен 11, 2019 4:43 am 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 293
Благодарил (а): 41 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
Олегович Артём писал(а):
Собирать core.pb, x86.
... PureBasic практически не знаю, сам сишник, привык к его синтаксису и стилю.

Ну значит, добро пожаловать! :D
зы. тут все то-же самое, только проще.
зызы. возможно тему следует перенести в раздел "OpenSource" (дабы не потерялась)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Пример DirectX9 хука.
СообщениеДобавлено: Чт сен 12, 2019 7:09 pm 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Сб авг 31, 2019 6:51 pm
Сообщений: 11
Откуда: Россия, Киров
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Kuzmat писал(а):
Олегович Артём писал(а):
Собирать core.pb, x86.
... PureBasic практически не знаю, сам сишник, привык к его синтаксису и стилю.

Ну значит, добро пожаловать! :D
зы. тут все то-же самое, только проще.
зызы. возможно тему следует перенести в раздел "OpenSource" (дабы не потерялась)



Спасибо) Данный язык как раз своей простотой и функциональностью заинтересовал, стандартная библиотека хороша, особенно впечатляет после тяжёлых фреймворков вроде Qt :)

_________________
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Пример DirectX9 хука.
СообщениеДобавлено: Пт сен 13, 2019 12:32 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Сб мар 28, 2015 11:06 pm
Сообщений: 178
Откуда: Україна
Благодарил (а): 13 раз.
Поблагодарили: 16 раз.
Пункты репутации: 9
Олегович Артём, а вопрос такого плана: можно ли перехватывать (и как) и заменять текст\шрифт текущей "сцены"?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Пример DirectX9 хука.
СообщениеДобавлено: Пт сен 13, 2019 9:52 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вт апр 14, 2009 7:22 pm
Сообщений: 385
Благодарил (а): 1 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
Олегович Артём писал(а):
... особенно впечатляет после тяжёлых фреймворков вроде Qt :)


Так прелесть, маргинально-гениального хулиганства Фреда и Ко в том и состоит, что даже Qt в линуксовой версии умудрились сделать "ЛЁГКИМ" :mrgreen:

Basic - традиционно для начинающих.
PureBasic (я называю Си со строками) - для завершающих :D , это когда ты представляешь с чем едят этот паровоз; Cocoa,WinApi,Posix,Gtk2,Gtk3,Qt а вместе со SpiderBasic ещё и Js,Dom,Ajax,Dojo,Сordova,... но тебе уже на столько лень держать всё это в голове.....
При этом понимаешь, что всё как то не академично, даже местами не правильно, индустрия не признает вероятно в серьёз никогда.
Но написав хоть раз что то более менее серьёзное отказаться уже не можешь.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Пример DirectX9 хука.
СообщениеДобавлено: Пт сен 13, 2019 5:38 pm 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Сб авг 31, 2019 6:51 pm
Сообщений: 11
Откуда: Россия, Киров
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
LinXP писал(а):
Олегович Артём, а вопрос такого плана: можно ли перехватывать (и как) и заменять текст\шрифт текущей "сцены"?


Можно хукнуть например функцию, которая модифицирует строку, или писать непосредственно в память процесса.
По сути, для этого даже хук не нужен.

upd: Со шрифтами чуть сложнее. Нужно либо устанавливать хук на D3DXCreateFont, искать нужный шрифт по аргументам LPD3DXFONT *ppFont/LPCTSTR pFacename и вызывать оригинальную функцию с другими параметрами, либо устанавливать хук на процедуру(Если таковая вообще имеется), которая вызывает D3DXCreateFont.

_________________
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Пример DirectX9 хука.
СообщениеДобавлено: Пт сен 13, 2019 5:50 pm 
Не в сети
ассистент
Аватар пользователя

Зарегистрирован: Сб авг 31, 2019 6:51 pm
Сообщений: 11
Откуда: Россия, Киров
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
jobless писал(а):
Олегович Артём писал(а):
... особенно впечатляет после тяжёлых фреймворков вроде Qt :)


Так прелесть, маргинально-гениального хулиганства Фреда и Ко в том и состоит, что даже Qt в линуксовой версии умудрились сделать "ЛЁГКИМ"...
...Но написав хоть раз что то более менее серьёзное отказаться уже не можешь.


Вероятно, да. Но увы, почему-то для народа слово "Basic" является ругательным с незапамятных времён.

_________________
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB