采用Native 引導方式的.Net加密保護(2)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET2.0服務器控件之創建復雜屬性
      本文詳細講解了一個利用ASP.NET 2.0技術創建復雜屬性的示例。 1、示例應用 本文所實現的示例很簡單,其核心是通過實現自定義服務器控件的連字符形式復雜屬性來說明復雜屬性的實現方法,其中

      3 是利用 CLR-Hosting 接口. 可以參考msdn中 本地接口部分的文檔.

      以下為引用的內容:
      bool InvokeAssemblyResource()
      {
      CComPtr spRuntimeHost;
      CComPtr<_AppDomain> spAppDomain;
      CComPtr spUnk;

      bool bSuccess = false;

      if(FAILED(CorBindToRuntimeEx( NULL, // Latest Version by Default
      L"wks", // Workstation build
      STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN,
      CLSID_CorRuntimeHost ,
      IID_ICorRuntimeHost ,
      (void**)&spRuntimeHost)))
      {
      gErrMsg = _T("Unable to Bind CLR");
      return false;
      }
      if(FAILED(spRuntimeHost->Start()))
      {
      gErrMsg = _T("Unable to Start CLR");
      return false;
      }
      do
      {
      if(FAILED(spRuntimeHost->GetDefaultDomain(&spUnk)))
      {
      gErrMsg = _T("Unable to GetDefaultDomain");
      break;
      }
      if(FAILED(spUnk->QueryInterface(&spAppDomain.p)))
      {
      gErrMsg = _T("Unable to Query AppDomain Interface");
      break;
      }

      SAFEARRAY* pSA = GetDecryptedResource();
      if(pSA)
      {
      try
      { // Invoke the Entry Point with No Arguments
      spAppDomain->Load_3(pSA)->EntryPoint->Invoke_3(_variant_t(), NULL);
      bSuccess = true; // Everything Went Fine !!
      }
      catch(_com_error ex)
      {
      gErrMsg = ex.ErrorMessage();
      }

      SafeArrayDestroy(pSA);
      pSA = NULL;
      }
      }while(false);

      if(FAILED(spRuntimeHost->Stop()))
      {
      gErrMsg = _T("Unable to Stop CLR");
      return false;
      }

      return bSuccess;
      }

      一般這類加密工具都會選擇第三種實現方式.如 .Net Reactor.

      不過單純的整體加密保護安裝性是很低的,可以配合一些其它的方式來提高保護強度,如 .Net Reactor的 NecroBit。因為在Load時很容易被dump出程序集.這種方式就是讓Load時載入的程序集不是完整的(除去了IL代碼部分,NecroBit).然后在Load完成后,程序集執行之前,還原IL代碼.

      分享:面向服務及其在互聯系統策略中的角
      面向服務的業務環境 面向服務是一種創建分布式系統的方法。在它最抽象的層面,面向服務作為一個服務提供程序,包含了一切——從大型機應用程序到打印機到碼頭工作人員到隔夜交貨公

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程