[發明專利]一種防止源代碼反編譯的方法無效
| 申請號: | 201010134276.0 | 申請日: | 2010-03-29 |
| 公開(公告)號: | CN101807239A | 公開(公告)日: | 2010-08-18 |
| 發明(設計)人: | 劉正偉 | 申請(專利權)人: | 山東高效能服務器和存儲研究院 |
| 主分類號: | G06F21/24 | 分類號: | G06F21/24 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 250014 山*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 防止 源代碼 反編譯 方法 | ||
技術領域
本發明涉及計算機軟件源代碼保護技術,具體來說涉及一種防止源代碼反編譯的方法,通過此方法有效的保護軟件被反編譯的難度。
背景技術
隨著經濟技術的飛速發展,軟件作為輔助工具已經深入到各行各業當中。軟件程序是人家設計者和軟件編程人員的智慧的結晶,是公司的知識產權的體現。也是企業核心競爭力的一部分。因此,保護軟件程序的版權,防止軟件程序被盜版、被非法授權使用,具有很重要的現實意義。
傳統的軟件程序保護措施有:序列號保護、使用時間限制、軟件加殼等;其具體實現就是:在軟件程序中設置相應的功能模塊,實現相應的保護功能,例如:防拷貝功能、限制使用時間功能等。破解者要達到破解軟件的目的,通常采用以下這種方式:
這種方式也稱為靜態分析技術,就是利用反編譯或反匯編技術得到源程序清單,進而分析軟件程序的流程,了解各個模塊所完成的功能,從而通過修改軟件來達到盜取軟件技術的目的。下面簡要介紹反編譯和反匯編技術:
使用高級語言編寫的軟件程序需要按照運行該軟件程序的計算機的主機系統指令集(也可稱為機器語言指令集),轉換為由一條一條的主機系統指令(也可稱為機器語言指令)構成的機器語言代碼才能被計算機識別并執行。通常將轉換前的程序稱為源程序,轉換后的程序為目標程序。
匯編語言是一種介于高級語言與計算機語言之間的低級語言,它與計算機語言相比有便于記憶、符合人類語言表達習慣的特性,機器語言與匯編語言之間存在幾乎一一對應的映射關系。由機器語言目標代碼得到的匯編程序的過程稱為反匯編;由機器語言目標代碼得到高級語言源程序的過程稱為反編譯。因此,只要獲取到軟件程序的機器語言目標代碼,就能通過反匯編技術或者反編譯技術將其轉化成便于破解者理解的匯編語言程序或高級語言源程序。
目前通用的計算機體系中,不存在對靜態分析技術的防范技術;另一方面,現有技術中存在眾多功能強大的、對應于目前通用的主機系統指令集的調試器及相應的使用手冊,使得破解者能夠非常容易的進行反編譯分析,導致現有的軟件保護措施無法對軟件程序的源代碼進行有效的保護。
發明內容
本發明的目的是提供一種防止源代碼反編譯的方法,通過此方法有效的保護軟件被反編譯的難度。
本發明的目的是按以下方式實現的,在計算機系統中設置防止源代碼反編譯模塊,包括:代碼讀取子模塊、代碼解析子模塊、虛擬混淆子模塊、數據存取子模塊、混淆代碼生成模塊,其中:
代碼讀取子模塊將一個文件集的代碼全部讀取到一個一維的字符串數組中,然后再對其進行分析,得到命名空間和類的信息;
代碼解析子模塊對于文件中的代碼,進行如下處理:去除空行和前后空格和Tab符號、回車換行,去除調試信息,去除注釋,合并跨行語句,通過代碼讀取子模塊的預處理,讓代碼更易于被虛擬混淆子模塊處理;
虛擬混淆子模塊收集數據的程序集名稱、屬性、方法,程序集名稱、屬性、方法作為獨立的混淆單元,將混淆后的程序集名稱、屬性、方法合成類,將類合成命名空間,最后將命名空間合成文件;
虛擬混淆子模塊是由混淆模塊接口模塊、程序集混淆子模塊、類混淆子模塊、方法和屬性混淆子模塊組成,用于收集數據的程序集名稱、屬性、方法,然后將程序集名稱、屬性、方法作為獨立的混淆單元,再將混淆后的程序集名稱、屬性、方法合成類,將類合成命名空間,最后將命名空間合成文件;
數據存取子模塊根據數據程序集名稱、方法、屬性的定義,從預定義的數據混淆模塊中讀取混淆的格式方法,從而達到代碼混淆的目的;
混淆代碼生成模塊根據虛擬混淆子模塊和數據存取子模塊將代碼重新組成一個新的源代碼文件,此源代碼文件是經過混淆的,即使二進制文件被反匯編,看到的代碼也是混淆過的非常難以理解邏輯比較復雜代碼,代碼比較多,基本上是沒有可讀性,從而達到代碼保護的目的;
文件集中的代碼經過預處理后,存放到一個一維字符串數組中,該數組的容量為所有代碼的行數總和,一行代碼放在數組中的一行,按代碼的順序存放;為每一個文件定義文件序列、Hash序列和字節序列。
本發明的優異效果是,采用本發明技術方案使得破解者很難對被保護的軟件程序實施方向工程,即使反向成功了,也很難讀懂代碼。因此,可以較好的防備破解軟件的反編譯,從而可以在很大程度上保護軟件程序的安全性。
附圖說明
附圖1是源代碼混淆的流程圖;
附圖2是源代碼混淆架構圖;
附圖3是源代碼保護核心模塊組成圖。
具體實施方式
下面參照附圖,對本發明的方法以一個具體實例來描述實現這一體系結構的過程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東高效能服務器和存儲研究院,未經山東高效能服務器和存儲研究院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010134276.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種出水管口擋口裝置
- 下一篇:一種座式抽水馬桶





