2011-01-02 3 views
2

Я хочу создать собственный код и использовать зависание WinAPI и системных функций, чтобы блокировать или разрешать этой программе выполнять некоторые операции, такие как чтение/запись файлов, изменение реестра Windows, подключение к Интернету , Это хороший и безопасный способ сделать это? Насколько сложно было бы для этой программы обходить такой уровень безопасности?Песочница с помощью WinAPI-перехватчиков

+1

@ У нас существует ограниченный (хотя и длинный) список функций API, поэтому с достаточным количеством вдохновений они могут быть подключены. Да, есть способы обойти крючки, но возможна песочница среднего приложения. На рынке есть приложения/SDK, которые позволяют делать это для любой программы, превращая ее в песочницу. BoxedApp - это одно имя, которое приходит мне на ум, но есть более доступные. –

ответ

1

+1 Хансу, однако, если вы действительно в него вникнете, я могу порекомендовать Easyhook. Я лично использовал его успешно в Win XP, Vista и 7. Я не знаю, насколько это возможно, но существуют другие альтернативы - madSHI hooks, и, если вы хотите пойти официальным путем, попробуйте Detours от Microsoft.

1

Антивирусные приложения пытаются решить почти ту же проблему, без особого успеха.
1. Вы никогда не узнаете, как можно использовать даже самые распространенные операции.
2. Есть системные вызовы, поэтому программа не обязательно должна использовать winapi.

3

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

Подходы:

  1. использование разрешений для Windows, чтобы ограничить доступ приложения к ресурсов
  2. принимать принимать VMWare или Parallels или другую платформу виртуализации и запустить программу там
  3. тейк песочницу SDK (например, BoxedApp) и «оберните» ваше приложение .