• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    .NET加密原理之方法體加密信息對應關系

    發布: 2008-5-15 10:09 | 作者: 不詳 | 來源: yesky | 查看: 105次 | 進入軟件測試論壇討論

    領測軟件測試網 關鍵字:.net在 per method 的dotNet加密中,首要解決的方法體對應關系,即在運行時加密殼如何確定當前要解密的方法體所對應的加密信息。

      目前大部分加密殼都直接利用了dotNet的元數據來保存這種對應關系,我們知道在元數據中每個方法都會對應一個RVA值,加密殼可以直接把這個關系記錄在RVA的地址處。在框架運行中RVA處的數據會被作為“方法體”在處理流程中直接傳遞,加密殼通過攔截框架處理流程中的函數,來對“方法體”進行分流處理。即先判斷RVA處的數據是否“方法體加密對應信息”,如果是進入加密殼運行庫的內部處理,不是則按原框架流程處理。

      對于這個“方法體加密對應信息”,最簡單的方式是指記錄一個指針信息,指向另一處數據塊,四字節空間就夠了。但是為了和普通沒有加密的方法體進行區分,除了這個之外還需要增加一些唯一標識以便能被運行庫在運行時安全無誤的區分出來。

      大家可以用UE打開,加密后的程序集,看看一個方法體RVA處的數據,應該能很容易分別出來哪些是記錄的“方法體加密對應信息”。

      正是這個原因,所以DNGuard v1.0和同類處理方式的加密殼,對方法體小于某個指定字節數的,就不能進行加密。

      因為“方法體加密對應信息”的大小超過的方法體的空間大小,寫入的話會覆蓋到后面方法體的信息。這實際上也是因為偷懶造成的?梢酝ㄟ^對方法體進行重排來解決這個問題,當然要麻煩很多了。

      這種模式實際上就是在元數據保存了一個虛擬表實現了 MethodToken => “方法體加密對應信息” 的對應記錄。這個表可以看著是公開的。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: net NET Net 關系 原理

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>