您现在的位置是:首页 >

直流框架保护 .Net 虚拟框架的实现原理

火烧 2022-10-24 15:38:30 1043
.Net 虚拟框架的实现原理    Net 虚拟框架的实现原理  前面介绍了利用第三方虚拟环境来实现 Net程序脱离框架运行 并介绍了如何自己编写加载器程序 今回我们介绍虚拟框架的核心实现原理 感兴趣

.Net 虚拟框架的实现原理  

   Net 虚拟框架的实现原理

  前面介绍了利用第三方虚拟环境来实现 Net程序脱离框架运行 并介绍了如何自己编写加载器程序 今回我们介绍虚拟框架的核心实现原理 感兴趣的朋友可以参考自己实现 在让 Net 程序 脱离 framework框架 运行(源代码实现说明) 中我们介绍的脱离框架运行的方法 仍然需要依赖 rsdeploy dll 才行

  今回我们就介绍这个 dll 的实现原理

  简单的实现方式

  首先我们需要用到一个 undocumented features

  在dll被加载时 设置环境变量 PLUS_InstallRoot 为当前dll所在目录

  另外复制 c windows\frameworkv 或者 v 到 dll

  所在目录

  把mscoree dll 以及crt运行库放到 dll目录中

直流框架保护 .Net 虚拟框架的实现原理

  在dll目录中创建一个本地的 GAC 目录 再把 需要的 GAC assemblies 复制进去

  这样子就 OK 了 简单的 Net程序就可以在这个环境中运行了

  如果是复杂的程序 还需要实现一个虚拟注册表系统

  对于我们虚拟框架这个应用来说 只需要实现一个只读的虚拟注册表就OK了

  这个实现可以 ring 也可以 ring 考虑到兼容性 直接用ring 实现好了

  实现方式可以使用 api hook的方式 即在我们的dll加载时 hook advapi dll 中所

  有Reg开头的函数 虚拟注册表系统的框架就完成了 剩下的就是实现了

  这段时间忙着做DNGuard的官方网站 英文的基本完工了

  中文的还没做 现在还得开发一个网站的客户中心

  等网站的事结了 就发布DNGuard hvm的专业版 在之后看看时间上的安排 有空的话

  会考虑自己实现一下这个虚拟框架 做一个小工具出来

  这个虚拟框架最核心的就是 设置环境变量 PLUS_InstallRoot

  虚拟注册表系统只是一个扩展

lishixinzhi/Article/program/net/201311/11608  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码