2009-07-16 2 views
3

Я пишу программу в C#, которая прикрепляется к другому процессу и чтения памяти и т. Д. Из этого другого процесса. Я ищу способ моделирования движений мыши в этом другом процессе, но другой процесс специально блокирует такие методы, как PostMessage, SendMessage и т. Д. Я стараюсь держаться подальше от инъекций или записи в память, поэтому они не являются опцией для этого. Мне сказали, что лучший способ - создать виртуальный драйвер мыши и подключить его к другому процессу. У кого-нибудь есть другие способы, которыми я мог бы это сделать, или как я мог бы подключиться к виртуальному драйверу мыши?Фоновая мышь моделирования

+5

Просто не могу сделать следующий уровень в WoW да? –

ответ

0

Будет ли использовать отдельную программу, такую ​​как autohotkey, чтобы управлять движением мыши, выполнимо? Потому что это то, что я сделал бы.

+0

хорошо, я мог бы перемещать мышь на C# просто отлично. Мне просто нужно сделать это в фоновом окне, пока я могу сделать что-то еще с моей другой мышью. – 2009-07-16 21:05:04

0

Я не уверен, какую программу вы нацеливаете, но я видел крутые обходные пути для игр, которые блокируют PostMessage (игры, которые должны идти без названия; p).

Я не знаю, будут ли работать с драйверами виртуальной мыши. Я слышал об этом, но чувствую, что если PostMessage заблокирован, это будет бесплодно. Разве мыши не просто отправляют сообщения в окно игры, используя стандартные сообщения Windows?

Самый распространенный способ, которым я видел разработчиков, блокирует PostMessage/SendMessage, чтобы скопировать Windows DLL из системной папки и распространить его с игрой (интересно, это даже законно?). Поскольку DLL загружает функции, локальные в адресное пространство игры, игра может блокировать другие процессы от доступа к этим функциям, гарантируя, что вызывающий объект также является локальным для адресного пространства игры.

Простым способом обойти это было бы внедрение DLL в процесс игры и включение в их функции. Однако разработчики поддерживают этот подход и могут заблокировать ваш вызов, выполнив определенные проверки в точке входа функции (я не уверен, что это за проверки). Из того, что я понимаю, простой способ затем обход этой проверки состоит в том, чтобы определить первые несколько байтов функции PostMessage самостоятельно, а затем перейти к точке после проверки в PostMessage.

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

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

+0

Очень полезный пост. Я полагаю, что это не было целью для людей здесь, но кто-то предложил мне разместить здесь, потому что вы, ребята, знаете намного больше, чем большинство людей. У меня такое чувство, что это очень сложная задача, для которой мне понадобится другое решение. – 2009-07-16 21:22:23

+0

Я уверен, что я уже перепутал с «защитой», которая считывает входной сигнал мыши и клавиатуры непосредственно из драйверов вместо того, чтобы подключаться к событиям Windows API.Реализация виртуального драйвера мыши/клавиатуры должна работать. Ну, я пробовал, но был отвратителен беспорядком и отсутствием поддержки, когда шел на этот крайне низкий уровень. –

0

При разработке SCAR (программы макросов RuneScape) разработчикам в конечном итоге пришлось создать оболочку вокруг файла java (называемый SMART) и иметь «поддельную мышь» внутри этой оболочки, можно управлять с помощью основных вызовов функций. Я не знаю, как это сделать на C#, но это возможно в Java. Перед SMART вы либо должны были позволить использовать вашу мышь (так перемещая мышь напрямую), либо использовать что-то под названием «Silent Mouse». Молчаливая мышь, подключенная к java.exe, и функции в ее JVM и управляемых входах мыши, как описал Кай. Однако, как описал Кай, это было очень легко обнаружить, поэтому никто не использовал его.

Смежные вопросы