Как подключиться к другим программам в Windows? - PullRequest
5 голосов
/ 26 июня 2010

Может кто-нибудь объяснить, как одна программа подключается и изменяет поведение других программ в Windows?

Как это вообще возможно? Разве программы Windows не защищают себя от других программ, попадающих в их память и т. Д.? (Я не знаю, как это работает, поэтому я просто сказал «в их память» - держу пари, что это сложнее)

Кроме того, современные Windows, такие как Windows 7, все еще позволяют это?

Спасибо, Бода Кидо

Ответы [ 2 ]

5 голосов
/ 26 июня 2010

Есть несколько различных способов подключиться и изменить поведение других программ.

Например, вы можете напрямую записывать в память другой программы (WriteProcessMemory) или вы можете вставить поток в память другой программы (CreateRemoteThread).Это предполагает, что у вас есть некоторые права для управления этой другой программой.

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

Это все еще разрешено по нескольким причинам.Без способа изменить поведение других программ вы не сможете реализовать отладчик.Хуки Windows используются программами тестирования, программами доступности, программами, которые изменяют внешний вид Windows и т. Д.

0 голосов
/ 26 июня 2010

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

Вы можете сделать это на более низком уровне, но концепция остается той же (отслеживание изменений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...