當前位置:編程學習大全網 - 編程語言 - .Net 虛擬框架的實現原理

.Net 虛擬框架的實現原理

  Net 虛擬框架的實現原理

 前面介紹了利用第三方虛擬環境來實現 Net程序脫離框架運行 並介紹了如何自己編寫加載器程序 今回我們介紹虛擬框架的核心實現原理 感興趣的朋友可以參考自己實現 在讓 Net 程序 脫離 framework框架 運行(源代碼實現說明) 中我們介紹的脫離框架運行的方法 仍然需要依賴 rsdeploy dll 才行

 今回我們就介紹這個 dll 的實現原理

 簡單的實現方式

 首先我們需要用到壹個 undocumented features

 在dll被加載時 設置環境變量 PLUS_InstallRoot 為當前dll所在目錄

 另外復制 c \windows\\framework\v 或者 v 到 dll

 所在目錄

 把mscoree dll 以及crt運行庫放到 dll目錄中

 在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

  • 上一篇:中考特長生有加分政策嗎?
  • 下一篇:( )適用於程序開發人員在地域上分布很廣的開發團隊。
  • copyright 2024編程學習大全網