[發明專利]一種通過構建代碼副本保護程序的方法有效
| 申請號: | 202010463167.7 | 申請日: | 2020-05-27 |
| 公開(公告)號: | CN111625296B | 公開(公告)日: | 2023-03-14 |
| 發明(設計)人: | 吳鋼 | 申請(專利權)人: | 重慶夏軟科技有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445;G06F21/52 |
| 代理公司: | 重慶強大凱創專利代理事務所(普通合伙) 50217 | 代理人: | 冉劍俠 |
| 地址: | 401120 重慶市北*** | 國省代碼: | 重慶;50 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 通過 構建 代碼 副本 保護 程序 方法 | ||
本發明涉及程序保護領域,具體公開了一種通過構建代碼副本保護程序的方法,包括:運行目標程序,正常加載DLL模塊正本但不調用;在進程內存中創建至少一個所述DLL模塊正本的DLL模塊副本,并隱藏所述DLL模塊副本;所述目標程序調用一個所述DLL模塊副本。本發明通過在程序內存空間任意可用位置構建隱藏的DLL模塊副本來代替原DLL模塊正本運行,基于DLL模塊副本的隱藏屬性,惡意程序無法發現它,便無法篡改DLL模塊副本中的目標代碼,以影響目標程序的運行,從而實現了在執行目標程序時,只運行目標代碼,不運行惡意代碼。
技術領域
本發明涉及程序保護領域,具體涉及一種通過構建代碼副本保護程序的方法。
背景技術
DLL(Dynamic Link Library)文件為動態鏈接庫文件,又稱“應用程序拓展”,是軟件文件類型。在Windows中,許多應用程序并不是一個完整的可執行文件,它們被分割成一些相對獨立的動態鏈接庫,即DLL文件(或DLL模塊),放置于系統中。當我們執行某一個程序時,相應的DLL文件就會被調用。一個應用程序可使用多個DLL文件,一個DLL文件也可能被不同的應用程序使用,這樣的DLL文件被稱為共享DLL文件。
通常情況下,惡意程序(包含惡意代碼)會通過篡改原DLL模塊中的代碼,來達到其攻擊或破壞的目的,如圖1所示,DLL模塊的原代碼“XXXXXXX”被篡改為“YYYYYYY”(惡意代碼),在執行目標程序時,不得不執行該惡意代碼?,F有的解決方法,主要有以下3種:
1、找到被攻擊或破壞的DLL模塊,修復其中被篡改的代碼以恢復DLL模塊;
2、針對被攻擊或破壞的DLL模塊,使用殺毒軟件或其他手段進行查殺,以消滅惡意代碼;
3、預裝殺毒軟件,時刻查殺。
方法1和方法2都是在發現DLL模塊被攻擊或破壞后采取的補救措施,并不能在目標程序運行前或運行時進行防范,以杜絕惡意代碼的運行。而方法1在修復時需要查找出惡意代碼,然后替換為原代碼,這個過程耗時較長,且不能保證每一處的惡意代碼都能被修復,也即仍然不能保證惡意代碼不被運行。
方法2和方法3在查殺時,基于殺毒軟件本身的限制,針對一些隱藏的DLL惡意模塊(惡意代碼所指向的運行文件)往往束手無策,不能做到對所有惡意代碼的查殺,也不能保證惡意代碼不被運行。甚至有的殺毒軟件為了查殺惡意代碼而占用太多的電腦資源,拖慢電腦速度,并且還有的殺毒軟件自己本身攜帶惡意代碼(如插入網絡廣告),引起用戶的強烈不滿。
可見,目前缺乏一種保護程序的方法,能夠在執行目標程序時,只運行目標代碼,不運行惡意代碼。
發明內容
本發明提供一種通過構建代碼副本保護程序的方法,解決的技術問題在于:如何使目標程序在運行時,只運行目標代碼,不運行惡意代碼。
本發明提供的基礎方案為:
運行目標程序,正常加載DLL模塊正本但不調用;
在進程內存中創建至少一個所述DLL模塊正本的DLL模塊副本,并隱藏所述DLL模塊副本;
所述目標程序調用一個所述DLL模塊副本。
本基礎方案的運作原理及優點在于:
通過在程序內存空間任意可用位置構建隱藏的DLL模塊副本來代替原DLL模塊正本運行,基于DLL模塊副本的隱藏屬性,惡意程序無法發現它,便無法篡改DLL模塊副本中的目標代碼,以影響目標程序的運行,從而實現了在執行目標程序時,只運行目標代碼,不運行惡意代碼。
在進一步的實施方案中,所述DLL模塊副本創建在所述進程內存的任意可用位置。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于重慶夏軟科技有限公司,未經重慶夏軟科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010463167.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶有雙顯示屏的電子產品
- 下一篇:一種數據處理方法及設備





