Перейти к содержанию

Нарисовать Windows Form в D3D9 игре


Рекомендуемые сообщения

48 минут назад, Blackdots сказал:

В общем, ничего на нашёл.

Обговорили с человеком и остановились на том, что это не винформа, а очень сильно похожая менюшка на д3д.

Так же если кликнуть на иконку на верху слева (на окне) то не появляется меню, хотя должно.

Это 100% не винформы. На 1:55 видно как он мышку наводит на Combobox, а элемент который "сзади" тоже подсвечивается, значит это обычная d3d меню, просто в стиле форм сделана.

В 27.04.2017 в 11:50, partoftheworlD сказал:

Д3д хуки бесполезны в 2017 году, ВАК их палит на раз-два. Начиная с конца 2016 большинство читов используют оверлей для отрисовки. Хочешь такую форму на д3д, то рисуй прямоугольниками с основ окна, после выпадающее меню с анимацией и т.д

Бред полный) А что по твоему такое оверлей? Хочешь сказать оверлей - это внешнее окно? Он так же хукает endscene и рисует поверх нее. Тот же steam сам так делает.

Не видел ни разу что бы за хуки VAC кого-то банил. Тогда бы он и за обычный Fraps или другое записывающее устройство отправлял в бан. VAC вообще бесполезная фигня, по сути. Кроме того как детектить хаки по сигнатурам он ничего не может.

Ссылка на комментарий
Поделиться на другие сайты

11 минуту назад, uhx сказал:

Хочешь сказать оверлей - это внешнее окно? Он так же хукает endscene и рисует поверх нее. Тот же steam сам так делает.

 

Ага, это внешнее прозрачное окно, которое устанавливается поверх окна игры и ничего он не хукает. Просто какой смысл в оверлее, если делаешь хук эндсцены, то по сути можно на прямую рисовать в игре.

PS вот, например, DarkOverlay простое прозрачное окно поверх окна игры.

 

O8PeuLbJIxg.jpg

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

20 минут назад, partoftheworlD сказал:

 

Ага, это внешнее прозрачное окно которое устанавливается поверх окна игры и ничего он не хукает.

Ты не прав.

Прозрачное окно будет видно только в том случае, если игра не фуллскрин. Например "окно без рамки". Тогда и только тогда. И это уже External-хак.

Я только что проверил пару d3d функций в csgo и увидел хук на Reset'e. Смотрим:

EdAbW12.png

Переходим по этому прыжку и видим такое:

zmTPiEN.png

Там ( на GameOverlayRenderer.dll + 6A180 ) обычная функция. Листаю вниз:

i2xsBHQ.png

Переходим на адрес call'a:

ZVNstHw.png

Вот тебе и d3d хук

 

// add

Только я кажется пролистал немного, это возврат на другой блок. Энивей, в Reset видно как стоит хук на оверлей

// ещо add

Да, че то я там запутался, скриншоты немного поспешно сделал и в итоге это не совсем та функция))) Но на Reset то же самое стоит, и я нашел все, лень по новой скринить.

На счет прозрачного окна - я серьезно. не знаю откуда у тебя такая уверенность что external хаки счас в моде, но хуки работали и работают, вак никогда их не детектил, потому что хуки ставят все. Даже их оверлей, даже фрапс и прочие прочие прочие. Это я еще совсем давно об этом много читал, поэтому точно знаю. Поэтому за хуки никогда не банило. Я даже виртуальные таблицы интерфейсов хукаю, все норм. Как и все, в прочем. Щас в каждом опенсурс хаке можно увидеть что там спокойно вешаются хуки на всякие CreateMove и пр. фигню.

Изменено пользователем uhx
Ссылка на комментарий
Поделиться на другие сайты

17 минут назад, uhx сказал:

Ты не прав.

Либо я что-то не понимаю, либо речь идет о совершенно разных вещах.

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

Или ты подразумеваешь под оверлеем прослойку из собственного рисующего кода?

 

29 минут назад, uhx сказал:

А что по твоему такое оверлей?

 

Оверлей это наложение нескольких слоев друг на друга которые создадут один производный слой.

 

PS не знаю на счет вака на PB банит за хуки плюс ещё скрины делает, хотя это не проблема. (Пруф бан аккаунта с BF3)

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

Только что, partoftheworlD сказал:

Либо я что-то не понимаю, либо речь идет о совершенно разных вещах.

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

Или ты подразумеваешь под оверлеем прослойку из собственного рисующего кода?

Ну да, я так понимаю оверлей это именно то, что рисуется поверх. То есть наложение какой-то картинки поверх оригинала. Возможно даже с "перехватом" управления, как это делается в D3D меню, да как это делается в том же Steam.

Ты жмешь Shift + Tab и он забирает управление над инпутом себе и рендерит свою картинку поверх игровой. И все это через хуки, потому что иначе ты нажатия клавиш не сможешь заблокировать, это делается только из процесса окна.

Ссылка на комментарий
Поделиться на другие сайты

34 минуты назад, partoftheworlD сказал:

вот, например, DarkOverlay

Не знаю. Такие штуки всегда назывались просто: external hack. И да, для BF4+ часто пишут именно экстернал читы, которые работают поверх окна. Но для их работы требуется перевести окно игры в режим "без рамки". Т.е. это тот же самый оконный режим. А часто пишут, потому что БФ на x64 с каким-нибудь DirectX 11 с которым тупо не все умеют работать) Я когда писал под бф4 хак, то именно исходя из этого написал внешний хак. Потому что пришлось бы дописывать Manual Map под x64, потом разбираться с новыми директиксами и тд, а хотелось по быстрому написать ESP, поэтому тупо создал свое окно с родным DirectX 9 и рисовал поверх.

Попробуй сделать фуллскрин и поиграть с этим "оверлеем". У тебя ничего не выйдет ведь)

Изменено пользователем uhx
Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, uhx сказал:

Ну да, я так понимаю оверлей это именно то, что рисуется поверх. То есть наложение какой-то картинки поверх оригинала.

:D Просто там где я читал, было написано что при хуке энд/ бегинсцены отрисовка происходит вместе с текущим рисующимся кадром игры, так что хз. Может ты и прав.

 

2 минуты назад, uhx сказал:

а хотелось по быстрому написать ESP, поэтому тупо создал свое окно с родным DirectX 9 и рисовал поверх.

 

Зареверсил бы подсветку игрока убившего тебя после смерти и в цикл с перебором всех игроков.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, partoftheworlD сказал:

Просто там где я читал, было написано что при хуке энд/ бегинсцены отрисовка происходит вместе с текущим рисующемся кадром игры, так что хз. Может ты и прав.

Так и есть. Я и не говорю обратного. Ты ведь ставишь и хук и просто рисуешь на уже имеющуюся картинку, а потом вызываешь оригинальный EndScene, чтоб он ее вывел на экран... или что там делается дальше.

Опять же на примерах стима: если открыть его оверлей, то картинка позади оверлея (то что рисует игра) будет так же обновляться)

Так или иначе, ты просто на время забираешь у игры ее фломастеры и рисуешь свои квадратики-скелетики, а потом их отдаешь. Вообще эту тему довольно неплохо раскрыл keng в своих уроках. Он там еще на примерах Half-Life 2 показывал, посмотри как будет время)

Изменено пользователем uhx
Ссылка на комментарий
Поделиться на другие сайты

Если что, то все топовые читы на КСГО хукают не д3д, а отрисовки самого движка, то есть включают Source SDK в свой чит и с его помощью рисуют.

На сколько я смог понять, в source sdk есть некая оболочка на д3д, которую они хукают, но это только что лично я смог понять т.к. не интересовался и не ковырял.

 

В чём разница хукать endscene или present?

Cheat Engine хукает present, там есть функция д3д хука

 

И да, вак не палит д3д хук, по крайней мере я хукаю endscene на C# и никаких vac, untrusted и тд не ловил.

Изменено пользователем Blackdots
Ссылка на комментарий
Поделиться на другие сайты

On 5/9/2017 at 7:43 PM, Blackdots said:

В чём разница хукать endscene или present?

Разница в том, что после вызова EndScene() картинка все еще будет лежать в бэк-буфере и только вызов Present() этот самый буфер поставит вместо основного. Технически, разница не очень большая.

Ссылка на комментарий
Поделиться на другие сайты

  • 9 месяцев спустя...

Привет всем.

Я тут впервые, пришёл из уроков Keng-а =)

 

Пока искал то, что мне нужно (поиск координат камеры и объектов через DirectX (это так и не нашёл... помогите если можно... не ту видовую матрицу, что в уроках Кенг-а, не хочу так долго искать, когда там же в уроке сказано, что есть более простой вариант)), нашёл эту тему, которая меня тоже интересует.

 

Я чуток запутался, помогите разобраться, пожалуйста.

 

Здесь говорится, что за хуки для рисования могут забанить.

С другой стороны, говорится про какой-то оверлей, за который не забанят.

С третьей стороны, вроде бы это всё одна малина =) Или я не так понял?

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

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

 

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

И + надо чтобы не забанило за то, что что-то там инжектаю в игру, пишу в память и хукаю.

 

П.С. ТС, поделитесь, пожалуйста, кодом хукания на шарпе этого всего, пож-та, раз уж можно оказывается и без C++ =)

Сам шарполюб...

Я бы в ЛС написал, но никак до достижения 5-и сообщений вроде бы, а это 1-е.

Изменено пользователем INFEL8
Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, INFEL8 сказал:

П.С. ТС, поделитесь, пожалуйста, кодом хукания на шарпе

Привет, в какой-то из тем вроде что-то подобное было. В любом случае, вопрос у тебя достаточно развернутый, можно по нему создать отдельную тему, в ней рассуждать и пытаться реализовать. Готовое у нас не любят давать, а вот помочь разобраться и сделать самому - это всегда пожалуйста ) 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.