• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    Windows動態鏈接庫的分段雙重加密及安全加載方法技術

    技術編號:8347985 閱讀:285 留言:0更新日期:2013-02-21 01:37
    本發明專利技術公開了一種Windows動態鏈接庫的分段雙重加密及安全加載方法,目的在于解決現有技術中動態鏈接庫容易被跟蹤調試,被應用程序私自加載,被靜態反匯編等技術問題,它包括如下步驟:解析Windows動態鏈接庫文件結構;建立私有動態鏈接庫導出表;清除動態鏈接庫導出表;分別對動態鏈接庫文件的代碼段、數據段使用指定加密算法的一個加密密鑰進行加密;對整個動態鏈接庫文件使用指定加密算法的另外一個加密密鑰進行加密;加載時從私有動態鏈接庫導出表輸出接口函數給應用程序等。

    【技術實現步驟摘要】

    本專利技術涉及信息安全技術,尤其涉及一種在Windows平臺上對動態鏈接庫的加密保護及私有的加載方法。
    技術介紹
    在業界,軟件產品公司經常將開發的Windows軟件以動態鏈接庫(DLL)的形式提供給客戶。這是一種很方便的發布方式,但可能存在以下幾種威脅1.客戶可以用靜態分析動態鏈接庫的方法以了解其中的重要算法;2.客戶可以在程序運行時跟蹤調試動態鏈接庫以了解其中的重要算法,并獲得運行時的重要數據。比如,在IPTV系統中,跟蹤調試終端程序,可以獲得流媒體的加擾密鑰;3.動態鏈接被加載后,根據其在進程內存空間的映像的起始地址,獲得內存映像的段頭信息(section header)后,就可獲得其完整的內存結構,比如,代碼段地址、數據段地址、 導出表地址等等,再進行分析;4.客戶可以非法地將該動態鏈接庫軟件傳播給第三方使用。通常的軟件加密方法加密整個文件,用Windows API加載,能在運行狀態下被分析得到某些信息,比如能獲得其中的API函數、代碼段數據、數據段數據等等?;虿捎眉用芄返姆椒ǎ枰厥獾挠布瑑r格昂貴,也不適合普通家庭的各人電腦上安裝。還有為可執行文件加殼的方法,但加殼方法只是針對可執行文件,程序載入內存解密后,可以被分析、被調試跟蹤。對一般的加殼保護,攻擊者很容易找到被保護程序的原始入口點,這時被保護的程序已去殼(解壓縮、解密),攻擊者可以通過內存中的明文數據,分析目標程序。公開日為2007年04月11日、公開號為CN 1945589A的專利文獻公開了這樣的技術方案,一種WINDOWS平臺下保護動態鏈接庫接口的方法A、通過WINDOWS API L0ADLIBRARY,首先將要使用的目標DLL的導出函數改名;B、對已改名的目標DLL的導出表進行可逆的加密,再將DLL向用戶發放;C、在使用DLL時,把磁盤上的DLL進行內存映射, 再在內存中對DLL的導出表進行解密,解密是B步驟中加密的逆過程,最后動態裝載內存中的DLL;本方法可以保證在應用程序使用動態鏈接實現模塊化的安全問題,并針對調用 WINDOWS API L0ADLIBRARY來動態裝載DLL進行保護;同時不會破壞DLL的導出表,DLL仍然可以正常使用,也不需要密匙來控制,在使用上非常方便。該方案的不足之處在于對目標 DLL的導出表進行加密、在內存中對DLL的導出表進行解密,最后動態裝載內存中的DLL過程中,由于原導出表的存在以及通用的加載器、加載方式,容易被跟蹤調試、被應用程序私自加載、被靜態反匯編等。
    技術實現思路
    本專利技術的目的在于解決現有技術中動態鏈接庫加密后容易被跟蹤調試,被應用程序私自加載,被靜態反匯編等技術問題,提供一種通用的Windows動態連接庫加密保護方法以及私有的加載方法,能夠有效防止動態鏈接庫被跟蹤調試、私自加載、靜態反匯編等操作。本專利技術針對現有技術問題主要是通過下述技術方案得以解決的,一種,包括如下步驟(1)解析Windows動態鏈接庫文件結構;(2)建立私有動態鏈接庫導出表;(3)清除動態鏈接庫導出表;(4)分別對動態鏈接庫文件的代碼段、數據段使用指定加密算法的一個加密密鑰進行加密;(5)對整個動態鏈接庫文件使用指定加密算法的另外一個加密密鑰進行加密;(6)安全加載步驟包括a)對加密的動態鏈接庫文件使用指定加密算法的一個密鑰進行解密,建立動態鏈接庫文件內存映像I,對內存映像I中的代碼段、數據段使用指定加密算法的另一個密鑰進行解密;b)建立內存映像II,分配一個虛擬內存塊,拷貝內存映像I中的內容,重定位虛擬內存塊中的地址數據;c)從隱藏在內存映像II代碼段中的私有動態鏈接庫導出表輸出接口函數給應用程序;d)刪除內存映像I,清除內存映像II的段頭(sectionheader)。本專利技術通過解析Windows動態鏈接庫文件的結構(即PE結構),建立私有的動態鏈接庫導出表并加以隱藏,將原有的動態鏈接庫導出表(Export Table)清除,分別對動態鏈接庫文件的代碼段、數據段用一個密鑰加密,最后,再對整體動態鏈接庫文件用另外一個密鑰進行加密。本專利技術采用私有的加載方法從私有動態鏈接庫導出表中輸出接口函數,自己為段分配內存以建立內存映像,而且建立的內存映像是沒有段頭(section header)信息的。 由于動態鏈接庫的內存映像的內存是自己的加載器自己分配的,其內存結構具有保密性, 所以一些工具軟件也難于動態跟蹤分析這種動態鏈接庫。經過本專利技術處理的動態鏈接庫文件,不能被應用程序直接加載,即使密鑰泄露后被應用鏈接加載,由于動態鏈接庫的導出表已被清除,以致不能獲得其中的導出函數,該庫最終還是個不能使用的庫。作為優選,私有動態鏈接庫導出表存放的是導出函數的相對虛擬地址。該導出表不包含導出函數名,沒有函數名的導出表只有特殊程序才能識別,更為安全。作為優選,本方案中編制一制造私有動態鏈接庫導出表存儲區間的代碼文件,所述制造私有動態鏈接庫導出表存儲區間的代碼文件與動態鏈接庫的源文件一起編譯后, 在代碼段中會包含兩個字節串,稱之為分隔碼,在兩個分隔碼之間存放私有動態鏈接庫導出表。將私有動態鏈接庫導出表隱藏在動態鏈接庫代碼段中。兩個分隔符之間根據需要設置足夠的存放區域。作為優選,私有動態鏈接庫導出表的建立步驟包括(A)分析動態鏈接庫的頭部,獲得導出表的起始地址;(B)分析動態鏈接庫的導出表,獲得所有的導出函數的函數名和它的相對虛擬地址;(C)將動態鏈接庫導出表中的函數的相對虛擬地址放入私有動態鏈接庫導出表中。私有動態鏈接庫導出表放置在具有分隔符的動態鏈接庫代碼段中。作為優選,清除動態鏈接庫導出表的步驟包括(A)分析動態鏈接庫的頭部,獲得導出表的起始地址;(B)分析動態鏈接庫導出表,獲得所有函數名稱或變量名稱和對應的地址,將這些函數名稱或變量名稱和地址都清除。作為優選,加密數據段的步驟包括(A)分析動態鏈接庫的頭部,獲得重定位表;(B)分析動態鏈接庫的頭部,獲得只讀數據段的起始地址,從該地址起采用指定加密算法的一個密鑰加密整個只讀數據段,該只讀數據段中需要重定位的所有地址數據保留原來的值,這些地址數據的位置從重定位表中獲得;(C)分析動態鏈接庫的頭部,獲得可寫數據段的起始地址,從該地址起采用指定加密算法用與只讀數據段相同的密鑰加密整個可寫數據段,該可寫數據段中需要重定位的地址數據保留原來的值,這些地址數據的位置從重定位表中獲得。(D)作為優選,指定加密算法是采用AES算法的密碼區塊鏈模式作為加密算法。AES(Advanced Encryption Standard)算法的密碼區塊鏈(Cipher Block Chaining- CBC)模式作為加密算法安全性好,能有效防止非法篡改。作為優選,解密及加載動態鏈接庫的步驟包括(A)從服務器端獲得密鑰Kl和K2,所述密鑰Kl和K2是加密時的密鑰;(B)查找加密庫文件,根據文件名,在用戶機器上找到加密的動態鏈接庫文件;(C)用密鑰K2解密動態鏈接庫文件;(D)為動態鏈接庫文件建立內存映像I;采用Windows API函數LoadLibrary為動態鏈接庫文件建立內存映像I ;(E)對內存映像I中的代碼段、數據段使用Kl解密可寫數據段;解密只讀數據段;(F)建立內存映像II,分配一個虛擬內存本文檔來自技高網
    ...

    【技術保護點】
    一種Windows動態鏈接庫的分段雙重加密及安全加載方法,其特征在于,包括如下步驟:解析Windows動態鏈接庫文件結構;建立私有動態鏈接庫導出表;清除動態鏈接庫導出表;分別對動態鏈接庫文件的代碼段、數據段使用指定加密算法的一個加密密鑰進行加密;對整個動態鏈接庫文件使用指定加密算法的另外一個加密密鑰進行加密;安全加載步驟包括:a)對加密的動態鏈接庫文件使用指定加密算法的一個密鑰進行解密,建立動態鏈接庫文件內存映像I,對內存映像I中的代碼段、數據段使用指定加密算法的另一個密鑰進行解密;b)?建立內存映像II,分配一個虛擬內存塊,拷貝內存映像I中的內容,重定位虛擬內存塊中的地址數據;c)?從隱藏在內存映像II代碼段中的私有動態鏈接庫導出表輸出接口函數給應用程序;d)刪除內存映像I,清除內存映像II的段頭。

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:徐繼軍
    申請(專利權)人:UT斯達康通訊有限公司,
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产白丝无码免费视频| 粉嫩大学生无套内射无码卡视频 | 夜夜添无码试看一区二区三区| 国产在线观看无码免费视频| 久久精品中文字幕无码绿巨人 | 国产AV天堂无码一区二区三区| 久久无码专区国产精品s| 亚洲日韩中文字幕无码一区 | 亚洲AV无码乱码国产麻豆穿越| 无码中文字幕乱码一区| 国产∨亚洲V天堂无码久久久| 国产做无码视频在线观看| 久久精品无码专区免费东京热 | 国产99久久九九精品无码| 精品国精品无码自拍自在线| 人妻无码人妻有码中文字幕| 国产成人无码a区在线观看视频免费| 少妇无码一区二区三区| 国产aⅴ激情无码久久| 亚洲AⅤ永久无码精品AA | 免费无码又爽又刺激毛片| 久久久久亚洲av无码专区| 亚洲A∨无码一区二区三区 | 亚洲成AV人片在线播放无码| 精品无码成人久久久久久| 久久精品无码一区二区三区免费| 亚洲精品无码久久久影院相关影片| 人妻系列无码专区久久五月天| 亚洲熟妇无码一区二区三区导航 | 亚洲AV人无码激艳猛片| 久久精品无码免费不卡| 无码国产亚洲日韩国精品视频一区二区三区 | 无码区日韩特区永久免费系列| 亚洲av永久无码精品国产精品| 一区二区三区无码视频免费福利| 免费看无码特级毛片| 日韩精品无码视频一区二区蜜桃 | 一级毛片中出无码| 本道天堂成在人线av无码免费| 精品无码一级毛片免费视频观看| 中文无码乱人伦中文视频在线V |