本發明專利技術涉及一種執行文件自校驗方法,在編寫執行程序代碼時,在Main函數前,添加預設的自校驗函數,運行該執行文件時,先調用該自校驗函數,若該自校驗函數返回成功,則繼續運行;失敗,則程序結束運行。該執行文件自校驗方法還包括:對所述執行程序代碼編譯生成的執行文件進行外殼加密,基于此外殼加密數據執行上述自校驗函數。本發明專利技術還提供了一種用于上述執行文件自校驗方法的自校驗裝置,使用本發明專利技術的優點在于不僅可以屏蔽病毒及防止木馬攻擊,在運行前還能驗證是否為開發商所開發的程序從而防止盜版及驗證是否已經被篡改,且易于使用及方便操作。
【技術實現步驟摘要】
本專利技術涉及軟件保護
,更具體地說,涉及一種執行文件自校驗方法及裝置。
技術介紹
為了防止軟件的非法復制、盜版及攻擊,保護軟件開發商的利益,就必須對軟件進行你加密保護。而軟件防病毒、防攻擊及防修改一直是計算機安全領域的一個重要課題,在眾多的軟件保護技術中,軟件加殼技術是軟件保護的重要手段,軟件加殼技術是指通過一系列數學運算,將可執行程序文件或動態鏈接庫文件的編碼進行改變(包括壓縮、加密可執行程序文件),以達到加密可執行文件的目的。當被加殼的文件運行時,外殼程序先被運 行,然后由這個外殼程序將原有的程序在內存中解壓縮,并把控制權交還給脫殼后的真正程序,這個過程完全隱蔽,在內存中自動完成,用戶不知道其具體運行過程。但是,目前軟件加殼技術往往是為了保護執行文件防止被攻擊或改動,或將執行文件進行壓縮以方便使用,并不具有自我校驗功能,當運行該軟件時,無法判斷所運行的執行文件是否已經被病毒攻擊或被篡改。
技術實現思路
本專利技術要解決的技術問題在于,針對現有技術的上述技術問題,提供一種執行文件自校驗方法及裝置,使執行文件在運行之前,自動判斷是否被攻擊或篡改。本專利技術解決其技術問題所采用的技術方案如下所述。本專利技術所述的執行文件自校驗方法中,包括設置執行文件與自校驗,其中,設置執行文件包括SI)在編寫執行程序代碼時,在Main函數前,加入預設的自校驗函數,并將此執行程序代碼編譯生成執行文件;S2)對上述執行文件進行外殼加密,將外殼加密數據添加在所述執行文件尾部;自校驗包括S3)運行執行文件時,先調用預設的自校驗函數,利用上述外殼加密數據判斷該執行文件是否為原始的執行文件,是,程序繼續運行;否,程序則結束運行。其中,步驟S2)中外殼加密過程包括Al)對特征值進行加密,將特征值加密數據添加在所述執行文件尾部,其中所述特征值預先設置并編寫入所述執行文件內部;所述特征值包括軟件開發商名稱、執行文件名稱及版本號;A2)利用MD5加密所述執行程序的全部內容及所述特征值,將MD5加密數據添加在所述特征值加密數據后,所述MD5加密數據大小為16字節。因此,所述外殼加密數據包括特征值加密數據、所述執行程序的全部內容及所述特征值的MD5加密數據。本專利技術所述的執行文件自校驗方法中,所述自校驗函數的執行過程包括BI)從硬盤把所述執行文件讀入內存,計算所述執行文件除尾部16字節外的內容的MD5值;B2)判斷上述計算結果是否與所述執行文件的尾部16字節相同,否,返回失敗;是,則執行下述步驟;B3)解密所述執行文件后除尾部16字節外的特征值加密數據,判斷解密結果是否與特征值一致,是,返回成功;否,返回失敗。本專利技術還提供了一種執行文件自校驗裝置,包括執行文件設置單元及自校驗單元,其中,所述執行文件設置單元包括自校驗函數設置單元及外殼加密單元,所述自校驗函數設置單元用于對在執行程序代碼前加入自校驗函數,并將此執行程序代碼編譯成執行·文件;所述外殼加密單元用于對所述執行文件進行外殼加密,使所述執行文件尾部帶有外殼加密數據;所述自校驗單元,用于調用所述執行文件中的自校驗函數,并判斷該執行文件是否與原始的執行文件一致。實施本專利技術的一種執行文件自保護方法及裝置,具有以下有益效果1)屏蔽病毒及木馬攻擊;2)能驗證執行文件是否為軟件開發商所開發的程序,從而防止盜版;3)成本低、容易實現及使用方便。附圖說明下面將結合附圖及實施例對本專利技術作進一步說明,附圖中圖I是本專利技術實施例中執行文件自校驗方法的流程示意圖;圖2是本專利技術實施例中執行文件自校驗裝置的結構示意圖;圖3是本專利技術實施例中執行文件自校驗裝置中的外殼加密單元的結構示意圖。具體實施例方式為了對本專利技術的技術特征、目的和效果有更加清楚的理解,現對照附圖詳細說明本專利技術的具體實施方式。在本專利技術的第一實施例中所述的執行文件自校驗方法中,首先對執行文件進行設置,包括在編寫執行程序代碼時,在Main函數前,添加一個預設的自保護函數F,若該函數F返回成功,則執行文件正常運行;反之,若返回失敗,則執行文件結束運行。然后,對所述執行程序代碼編譯生成的執行文件進行外殼加密,將外殼加密數據添加在上述執行文件尾部,具體包括步驟一,對特征值進行加密,將特征值加密數據添加在所述執行文件尾部;其中特征值是由軟件開發商根據需要預先設置,可包含軟件開發商名稱、執行程序名稱及版本號,同時也可以加入使用該執行文件的用戶的個人信息,在本實施例中,假定特征值為100字節,該特征值編寫入執行文件內部。步驟二,利用MD5加密所述執行程序的全部內容及所述特征值,將該MD5加密數據添加在所述特征值加密數據后,該MD5加密數據大小為16字節。MD5是指信息-摘要算法5,為計算機安全領域廣泛使用的散列函數,能將任意長度的字節串變成16字節。上述外殼加密過程利用另一個加密程序實現,如圖I所示,為本實施例中所述經設置后的執行文件自校驗方法的流程示意圖,當運行該執行文件時,其自校驗包括步驟101,調用自校驗函數F,從硬盤把所述執行文件讀入內存;步驟102,計算所述執行文件除尾部16字節外的內容的MD5值;步驟103,判斷上述MD5值是否與所述執行文件的尾部16字節相同,否,返回失敗,程序結束運行;是,則執行下述步驟;步驟104,解密所述執行文件后除尾部16字節外的特征值加密數據;步驟105,判斷上述解密結果是否與預先設置的特征值(100字節)一致,是,程序正常運行;否,返回失敗,結束運行。其中,進行自校驗步驟105時,需讀取預先設置的特征值,由于此特征值編寫入執 行程序內部,無需從執行文件外部獲取該特征值,從而實現無需借助外部工具的自校驗。在該自校驗的過程中,對執行文件進行了外殼加密,使該執行文件自校驗方法防止病毒及木馬攻擊,不僅如此,更能在運行時能檢查該執行文件是否已經被病毒攻擊或惡意篡改,通過對特征值的判斷,還能驗證該執行文件是否為軟件開發商所開發的軟件,另夕卜,該方法成本很低,用戶使用也十分方便,軟件開發商管理其開發的軟件也很方便。上述實施例中的自校驗經過兩種分別對MD5值及特征值的校驗,兩次校驗會增加校驗時間,因而導致執行文件開始運行的時間較長,考慮這方面的因素,可以只選擇其中一種來進行校驗,當然,這是基于節約時間的考慮。在實際使用上述實施例中的執行文件自校驗方法時,可權衡考慮時間、安全等因素來選擇。當然本專利技術所述的外殼加密過程不限于上述實施例中所述的加密過程,通過其他加密方法或步驟而產生外殼加密數據,然后將此外殼加密數據添加在所述執行文件尾部也是可行的,當采用其他方法產生加密數據時,也對應的修改自校驗函數F的執行步驟,以此來實現執行文件的自校驗。如圖2所示,本專利技術實施例中還公開了一種執行文件自校驗裝置,包括執行文件設置單元(I)及自校驗單元(2),其中,所述執行文件設置單元(I)包括自校驗函數設置單元(11)及外殼加密單元(12),其中所述自校驗函數設置單元(11)用于對在執行程序代碼前加入自校驗函數F,并將此執行程序代碼編譯成執行文件;所述外殼加密單元(12)用于對所述執行文件進行外殼加密,使所述執行文件尾部帶有外殼加密數據,該外殼加密單元獨立于所述執行文件。所述自校驗單元(2),用于調用所述執行文件中的自校驗函數F,并判斷該執行文件是否與原始的執行文本文檔來自技高網...

【技術保護點】
一種執行文件自校驗方法,其特征在于,所述執行文件自校驗方法包括設置執行文件與自校驗,其中,設置執行文件包括:S1)在編寫執行程序代碼時,在Main函數前,加入預設的自校驗函數,并將此執行程序代碼編譯生成執行文件;S2)對上述執行文件進行外殼加密,將外殼加密數據添加在所述執行文件尾部;自校驗包括:S3)運行執行文件時,先調用預設的自校驗函數,利用上述外殼加密數據判斷該執行文件是否為原始的執行文件,是,程序繼續運行;否,程序則結束運行。
【技術特征摘要】
【專利技術屬性】
技術研發人員:楚甲良,張先助,
申請(專利權)人:深圳市賽格導航科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。