Directx рисование в чужом x64 процессе; Hex опкоды в ассемблер - C#

Узнай цену своей работы

Формулировка задачи:

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

(хотя я пишу для DX11, но, это чтоб понятней было и мне тоже, т.к. я не знаю пока, что \ зачем \ для чего вызывается SwapChain и Present, хоть и догадываюсь)

с помощью Detours невозможно, т.к. я использую x64 процесс. В настоящий момент у меня есть адрес устройства Device, адрес EndScene и опкоды от EndScene (SwapChain). Я уже несколько дней пытаюсь найти решение

перехвата вызова функции

, но, как не странно, большая часть это делает через Detours. Другая часть это делает через ассемблер, с помощью замены опкодов на JMP на свою функцию, другие юзают Easy Hook. Сейчас у меня 2 пути, как решить мою проблему: 1. Использовать Easy Hook и перехватить функцию вызова EndScene, но такой функции я так и не нашел ни в одном из предлагаемых примеров (может плохо смотрел, допускаю). В основном, все предложенные примеры - копипаст установки связи между приложением и хукающей Dll. 2. Заменить опкоды на свои с прыжком JMP на свою функцию, но я не знаю, как преобразовать байты оппкода в ассемблеровский код.

Решение задачи: «Directx рисование в чужом x64 процессе; Hex опкоды в ассемблер»

textual
Листинг программы
0xFF, 0x25, // opcode
0x00,0x00,0x00,0x00,// label offset
address,   // addres bytes

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5