Реверс-инжиниринг и исправление игры DirectX?
Фон
Я играю в "нетленную ночь", одну из игр серии Тохо. Кнопка съемки - "z", медленное перемещение - "shift", а клавиши со стрелками перемещаются. К сожалению для меня, используя shift-z призраки моя правая клавиша со стрелкой, так что я не могу двигаться вправо во время съемки. Это привидение происходит во всех приложениях, и переключение клавиатуры исправляет его.Цель
Я хочу найти в разобранном коде функцию directx, которая получает ввод с клавиатуры и сравнивает его против ключа " z "и измените этот ключ на "a". Я рассматриваю это как интересный проект. Предполагая, что размер кодов сканирования одинаковый, это должно быть довольно просто. И поскольку исполняемый файл только 400k, возможно, это предоставит мне уникальную возможность исследовать темную сторону вычислительного преступного мира (шутка).
Соответствующий опыт
У меня есть некоторый опыт кодирования в сборке, но не в разборке такого рода. У меня нет опыта работы с API DirectX.Вопрос
Мне нужно некоторое руководство. Я нашел список кодов сканирования клавиатуры directx и программу под названием PEExplorer, которая, похоже, сделает то, что мне нужно.
Есть ли средство, с помощью которого я могу повернуть некоторые сборки с вызовами функций C, чтобы их было легче читать? Мне нужно будет найти, где игра извлекает нажатые в данный момент клавиши, сравнивает их со списком, и именно этот список мне нужно изменить.
Любой ввод будет значительно оцененный.
1 ответ:
Вас может заинтересовать библиотекаDetours от Microsoft Research, она позволяет перехватывать вызовы функций и изменять их аргументы. При этом ваш код может изменить коды сканирования ключей, которые не являются призраками, на те, которые ожидает игра.