<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      微軟的軟件授權及保護服務(SLPS)試用分析

      這些天都在絞盡腦汁地想怎么樣設計一個授權方式來保護我的組件,今天看了一下同事從廣州帶回來的Tech2007的講稿,里面提到了 微軟的軟件授權及保護服務(SLPS),對其非常感興趣。

      園子里也有朋友曾經介紹過:http://www.rzrgm.cn/njnudt/archive/2007/07/12/815625.html

      但到網上搜索的時候,只有一個頁面有相關信息,里面是上海站的講稿,還好,找到了一個SLP的鏈接 http://www.microsoft.com/slps/
      打開看了一下介紹,馬上下載:http://www.microsoft.com/downloads/details.aspx?FamilyID=7ae70aaa-8b7c-4e3a-af83-b71b6877705b&displaylang=en

      安裝試用。一啟動就要我輸入用戶名密碼,但是不管我怎么輸都是錯的,只好取消進入,后來看手冊才知道,那是要到官方服務器上授權的,如果沒有授權的話,這個功能只能保護產品,而不能對產品進行授權控制,并且只能保護三個方法。

      加入幾個程序集,Protect,然后用Reflector打開我選擇加密的那幾個方法,居然沒有報異常。
      而方法體內容都變成這樣了:
      public static void WriteLine(string msg)
      {
          
      object[] args = new object[] { msg };
          SLMRuntime.SVMExecMethod(
      null"b0199ec367594bd1b03b3fb29ff12f86", args);
      }
      用Reflector看SLP的各個類時,也發現所有的公開方法都是這種寫法,都需要經過SLMRuntime.SVMExecMethod這個門神。
      第一個參數在靜態方法中是null,在實例方法中是this,可能是供反射用的吧;第二個參數似乎是方法名的散列,第三個方法是參數數組,即使沒有參數,也要構造一個沒有元素的數組。
      這個方法的代碼:
      public static object SVMExecMethod(object obj, string SVMMethodId, object[] args)
      {
          Assembly callingAssembly 
      = Assembly.GetCallingAssembly();
          TrivialVirtualMachineParamsReader paramsReader 
      = new TrivialVirtualMachineParamsReader(obj, args);
          
      return InternalSVMExecMethod(callingAssembly, SVMMethodId, paramsReader);
      }
      再進去:
      public static object InternalSVMExecMethod(Assembly declaringAssembly, string SVMMethodId, ISLMVirtualMachineParams paramsReader)
      {
          
      using (ISLMRuntime runtime = new SLMRuntime(null, declaringAssembly, true))
          {
              
      return runtime.SVM.SVMExecMethod(declaringAssembly, SVMMethodId, paramsReader);
          }
      }
      SVM已經是ISLMVirtualMachine接口了,查不到SVM.SVMExecMethod在哪里實現。
      回過頭來,程序集被加密(暫且這么叫)后,不僅那幾個方法改變了,還多了幾個文件,分別是:Microsoft.Licensing.Utils2.0.dllMicrosoft.Licensing.Runtime2.0.dll、Microsoft.Licensing.Permutation_1cc06_2.0.dll、Microsoft.Licensing.LicAdmin.exe。
      其中第三個文件的1cc06_2是我安裝SLP后得到的默認授權,最后一個文件是授權管理器。第一第二個文件和SLP安裝目錄中的一樣??磥?,第三個文件是臨時生成的,里面的名字被混淆得厲害,類名都是兩個字母,方法名和屬性名都是一個大寫字母。
      仔細查看第三個文件,居然發現里面有一個fu類實現了ISLMVirtualMachine接口,而只有一個Microsoft.Licensing.SLMRuntimeRedirect類使用了fu類。SLMRuntimeRedirect中剛好有個SVMExecMethod方法,前面的雙字母的類方法大多數都調用了這個方法,這可能是自保護吧。
      看來fu類是關鍵了。里面的東西被混淆得亂七八糟的,就不多說了。
      分析中注意到,fu的主要方法調用了一個bB類,而bB類實現了SLMLicenses等接口,再看看這個類的內容,非常明顯,這是一個授權控制文件,可能這就是SLP的弱點了。

      從上面分析可以看到,SLP非常強大好用,但是它畢竟還是完整的.net實現,還是有弱點的,具體要怎么利用,我就不多說了,也不想想了。如果你想到了,不要忘記告訴我哦!^_^

      QQ:99363590
      EMail:gxuhy@21cn.com
      http://www.nnhy.org
      posted @ 2007-11-08 12:03  大石頭  閱讀(4444)  評論(13)    收藏  舉報
      主站蜘蛛池模板: 日本阿v片在线播放免费| 国产精品午夜福利导航导| 男女爽爽无遮挡午夜视频| 亚洲午夜成人精品电影在线观看| 狠狠躁夜夜躁人人爽蜜桃| 99国产精品一区二区蜜臀| 亚洲人成网线在线播放VA| 综合久久国产九一剧情麻豆| 亚洲色成人一区二区三区 | av色欲无码人妻中文字幕| 粉嫩国产一区二区三区在线| 亚洲国产精品成人无码区| 91精品蜜臀国产综合久久| av深夜免费在线观看| 日本免费视频| 人妻性奴波多野结衣无码| 麻豆一区二区中文字幕| 久久人人妻人人做人人爽| 国产99久久精品一区二区| 不卡乱辈伦在线看中文字幕| 进贤县| 日本欧美大码a在线观看| 国产精品SM捆绑调教视频| 蜜臀91精品高清国产福利| 亚洲毛片多多影院| 色偷偷亚洲女人天堂观看| 亚洲国产精品毛片在线看| 四虎库影成人在线播放| 被灌满精子的少妇视频| 一区二区三区四区激情视频| 成人精品视频一区二区三区| 人妻va精品va欧美va| 成人午夜av在线播放| 国产中年熟女高潮大集合| 国产高清自产拍av在线| 特黄aaaaaaa片免费视频| 娄底市| 国产中文三级全黄| 亚洲国产成人综合精品| 7m精品福利视频导航| 亚洲国产成人久久一区久久|