Фоновая мышь - PullRequest
       19

Фоновая мышь

3 голосов
/ 17 июля 2009

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

Ответы [ 3 ]

0 голосов
/ 17 июля 2009

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

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

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

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

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

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

0 голосов
/ 17 июля 2009

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

0 голосов
/ 17 июля 2009

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

...