c# - 应用程序虚拟化是如何实现的?

标签 c# .net c++ virtualization native

我正在尝试了解 App-V 这样的软件和沙盒 ( http://www.sandboxie.com/ ) 工作。但就我的生活而言,我想不出任何可以使这成为可能的事情。他们如何拦截 API 调用并欺骗目标软件?如果有人说这只是魔法和仙尘,我会相信他们。说真的,有没有讨论这个问题的解决方案的白皮书?

如果这在 CLR 级别上是可能的,那会很好,但如果必须的话,我愿意使用本地语言。

最佳答案

Sandboxie 通过本质上将代码注入(inject)核心 Windows API 来实现,就像病毒一样(这就是 Vista x64 阻止这种行为的原因,也是 Sandboxie 无法在该操作系统上运行的原因)。

Here是一个解释 API Hook 的项目。我通过研究 Metamod:Source 的源代码了解了所有这些工作原理。 (用于 CounterStrike:Source 的 SourceMod :) )

关于c# - 应用程序虚拟化是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2699411/

相关文章:

c# - 如何在没有正则表达式的情况下模拟正则表达式后视

c# - list - 将选定的值放入一组标签(文本)

c++ - Visual Studio (f2c) 中带有静态库的未解析外部

c# - 如何按类实例的属性值对包含类对象的数组进行排序?

c# - 在 C# 中使用一对(三重等)值作为一个值的最佳方式是什么?

.net - 有没有办法使用内存映射文件作为 .net 对象的事件容器?

c# - 我什么时候应该使用 GC.SuppressFinalize()?

c++ - Linux 上 codelite、unittest++ 和 g++ 的链接器错误

时间:2019-03-08 标签:c++bloombergapicorrelationId

c# - 根据类型返回委托(delegate)函数