Я пытаюсь понять, как программное обеспечение как Приложение-V и sandboxie (http://www.sandboxie.com/) работает. Но ни за что в жизни, я не могу думать ни о чем, что могло сделать это возможным. Как они прерывают вызовы API и обманывают целевое программное обеспечение? Если кто-то сказал бы, что это просто волшебно и пыль эльфа, я верил бы им. Серьезно, хотя, там какие-либо отчеты, которые обсуждают решения этой проблемы?
Если бы это возможно на уровне CLR затем, это было бы хорошо, но я готов пойти собственный компонент, если я имею к.
Sandboxie делает это, по сути, внедряя код в ядро Windows API, точно так же, как это сделал бы вирус (вот почему Vista x64 предотвращает такое поведение и почему Sandboxie не работает в этой ОС).
Здесь - проект, объясняющий перехват API. Я узнал, как все это работает, изучив исходный код для Metamod: Source (используется для SourceMod для CounterStrike: Source :))
Я не знаю, как это сделала MS, но вот основная теория одного из способов сделать это ...
Что вы хотите сделать, так это подключиться к системным вызовам (аналогично объединению в прерывание).
Надеюсь, это поможет.
Посетите страницу Википедии на Виртуализация X86 , где обсуждаются как виртуализация программного обеспечения (ранние версии VMWare, Wine, Sandboxie и, в некоторой степени, App-V), так и более современные аппаратная виртуализация (Hyper-V, VMWare, другие).
Я предполагаю, что вы ищете конкретно виртуализацию программного обеспечения , поскольку, используя .NET (или любую среду CLR), вы уже в некоторой степени абстрагируетесь от архитектуры ЦП, особенно с помощью ' Цель AnyCPU.