欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種執(zhí)行文件自校驗(yàn)方法及裝置的制作方法

文檔序號(hào):6373972閱讀:367來源:國(guó)知局
專利名稱:一種執(zhí)行文件自校驗(yàn)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件保護(hù)技術(shù)領(lǐng)域,更具體地說,涉及一種執(zhí)行文件自校驗(yàn)方法及裝置。
背景技術(shù)
為了防止軟件的非法復(fù)制、盜版及攻擊,保護(hù)軟件開發(fā)商的利益,就必須對(duì)軟件進(jìn)行你加密保護(hù)。而軟件防病毒、防攻擊及防修改一直是計(jì)算機(jī)安全領(lǐng)域的一個(gè)重要課題,在眾多的軟件保護(hù)技術(shù)中,軟件加殼技術(shù)是軟件保護(hù)的重要手段,軟件加殼技術(shù)是指通過一系列數(shù)學(xué)運(yùn)算,將可執(zhí)行程序文件或動(dòng)態(tài)鏈接庫(kù)文件的編碼進(jìn)行改變(包括壓縮、加密可執(zhí)行程序文件),以達(dá)到加密可執(zhí)行文件的目的。當(dāng)被加殼的文件運(yùn)行時(shí),外殼程序先被運(yùn) 行,然后由這個(gè)外殼程序?qū)⒃械某绦蛟趦?nèi)存中解壓縮,并把控制權(quán)交還給脫殼后的真正程序,這個(gè)過程完全隱蔽,在內(nèi)存中自動(dòng)完成,用戶不知道其具體運(yùn)行過程。但是,目前軟件加殼技術(shù)往往是為了保護(hù)執(zhí)行文件防止被攻擊或改動(dòng),或?qū)?zhí)行文件進(jìn)行壓縮以方便使用,并不具有自我校驗(yàn)功能,當(dāng)運(yùn)行該軟件時(shí),無法判斷所運(yùn)行的執(zhí)行文件是否已經(jīng)被病毒攻擊或被篡改。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述技術(shù)問題,提供一種執(zhí)行文件自校驗(yàn)方法及裝置,使執(zhí)行文件在運(yùn)行之前,自動(dòng)判斷是否被攻擊或篡改。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下所述。本發(fā)明所述的執(zhí)行文件自校驗(yàn)方法中,包括設(shè)置執(zhí)行文件與自校驗(yàn),其中,設(shè)置執(zhí)行文件包括SI)在編寫執(zhí)行程序代碼時(shí),在Main函數(shù)前,加入預(yù)設(shè)的自校驗(yàn)函數(shù),并將此執(zhí)行程序代碼編譯生成執(zhí)行文件;S2)對(duì)上述執(zhí)行文件進(jìn)行外殼加密,將外殼加密數(shù)據(jù)添加在所述執(zhí)行文件尾部;自校驗(yàn)包括S3)運(yùn)行執(zhí)行文件時(shí),先調(diào)用預(yù)設(shè)的自校驗(yàn)函數(shù),利用上述外殼加密數(shù)據(jù)判斷該執(zhí)行文件是否為原始的執(zhí)行文件,是,程序繼續(xù)運(yùn)行;否,程序則結(jié)束運(yùn)行。其中,步驟S2)中外殼加密過程包括Al)對(duì)特征值進(jìn)行加密,將特征值加密數(shù)據(jù)添加在所述執(zhí)行文件尾部,其中所述特征值預(yù)先設(shè)置并編寫入所述執(zhí)行文件內(nèi)部;所述特征值包括軟件開發(fā)商名稱、執(zhí)行文件名稱及版本號(hào);A2)利用MD5加密所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值,將MD5加密數(shù)據(jù)添加在所述特征值加密數(shù)據(jù)后,所述MD5加密數(shù)據(jù)大小為16字節(jié)。因此,所述外殼加密數(shù)據(jù)包括特征值加密數(shù)據(jù)、所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值的MD5加密數(shù)據(jù)。
本發(fā)明所述的執(zhí)行文件自校驗(yàn)方法中,所述自校驗(yàn)函數(shù)的執(zhí)行過程包括BI)從硬盤把所述執(zhí)行文件讀入內(nèi)存,計(jì)算所述執(zhí)行文件除尾部16字節(jié)外的內(nèi)容的MD5值;B2)判斷上述計(jì)算結(jié)果是否與所述執(zhí)行文件的尾部16字節(jié)相同,否,返回失?。皇?,則執(zhí)行下述步驟;B3)解密所述執(zhí)行文件后除尾部16字節(jié)外的特征值加密數(shù)據(jù),判斷解密結(jié)果是否與特征值一致,是,返回成功;否,返回失敗。本發(fā)明還提供了一種執(zhí)行文件自校驗(yàn)裝置,包括執(zhí)行文件設(shè)置單元及自校驗(yàn)單元,其中,所述執(zhí)行文件設(shè)置單元包括自校驗(yàn)函數(shù)設(shè)置單元及外殼加密單元,所述自校驗(yàn)函數(shù)設(shè)置單元用于對(duì)在執(zhí)行程序代碼前加入自校驗(yàn)函數(shù),并將此執(zhí)行程序代碼編譯成執(zhí)行·文件;所述外殼加密單元用于對(duì)所述執(zhí)行文件進(jìn)行外殼加密,使所述執(zhí)行文件尾部帶有外殼加密數(shù)據(jù);所述自校驗(yàn)單元,用于調(diào)用所述執(zhí)行文件中的自校驗(yàn)函數(shù),并判斷該執(zhí)行文件是否與原始的執(zhí)行文件一致。實(shí)施本發(fā)明的一種執(zhí)行文件自保護(hù)方法及裝置,具有以下有益效果1)屏蔽病毒及木馬攻擊;2)能驗(yàn)證執(zhí)行文件是否為軟件開發(fā)商所開發(fā)的程序,從而防止盜版;3)成本低、容易實(shí)現(xiàn)及使用方便。


下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖I是本發(fā)明實(shí)施例中執(zhí)行文件自校驗(yàn)方法的流程示意圖;圖2是本發(fā)明實(shí)施例中執(zhí)行文件自校驗(yàn)裝置的結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例中執(zhí)行文件自校驗(yàn)裝置中的外殼加密單元的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了對(duì)本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對(duì)照附圖詳細(xì)說明本發(fā)明的具體實(shí)施方式
。在本發(fā)明的第一實(shí)施例中所述的執(zhí)行文件自校驗(yàn)方法中,首先對(duì)執(zhí)行文件進(jìn)行設(shè)置,包括在編寫執(zhí)行程序代碼時(shí),在Main函數(shù)前,添加一個(gè)預(yù)設(shè)的自保護(hù)函數(shù)F,若該函數(shù)F返回成功,則執(zhí)行文件正常運(yùn)行;反之,若返回失敗,則執(zhí)行文件結(jié)束運(yùn)行。然后,對(duì)所述執(zhí)行程序代碼編譯生成的執(zhí)行文件進(jìn)行外殼加密,將外殼加密數(shù)據(jù)添加在上述執(zhí)行文件尾部,具體包括步驟一,對(duì)特征值進(jìn)行加密,將特征值加密數(shù)據(jù)添加在所述執(zhí)行文件尾部;其中特征值是由軟件開發(fā)商根據(jù)需要預(yù)先設(shè)置,可包含軟件開發(fā)商名稱、執(zhí)行程序名稱及版本號(hào),同時(shí)也可以加入使用該執(zhí)行文件的用戶的個(gè)人信息,在本實(shí)施例中,假定特征值為100字節(jié),該特征值編寫入執(zhí)行文件內(nèi)部。步驟二,利用MD5加密所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值,將該MD5加密數(shù)據(jù)添加在所述特征值加密數(shù)據(jù)后,該MD5加密數(shù)據(jù)大小為16字節(jié)。MD5是指信息-摘要算法5,為計(jì)算機(jī)安全領(lǐng)域廣泛使用的散列函數(shù),能將任意長(zhǎng)度的字節(jié)串變成16字節(jié)。上述外殼加密過程利用另一個(gè)加密程序?qū)崿F(xiàn),如圖I所示,為本實(shí)施例中所述經(jīng)設(shè)置后的執(zhí)行文件自校驗(yàn)方法的流程示意圖,當(dāng)運(yùn)行該執(zhí)行文件時(shí),其自校驗(yàn)包括步驟101,調(diào)用自校驗(yàn)函數(shù)F,從硬盤把所述執(zhí)行文件讀入內(nèi)存;步驟102,計(jì)算所述執(zhí)行文件除尾部16字節(jié)外的內(nèi)容的MD5值;步驟103,判斷上述MD5值是否與所述執(zhí)行文件的尾部16字節(jié)相同,否,返回失敗,程序結(jié)束運(yùn)行;是,則執(zhí)行下述步驟;步驟104,解密所述執(zhí)行文件后除尾部16字節(jié)外的特征值加密數(shù)據(jù);步驟105,判斷上述解密結(jié)果是否與預(yù)先設(shè)置的特征值(100字節(jié))一致,是,程序正常運(yùn)行;否,返回失敗,結(jié)束運(yùn)行。其中,進(jìn)行自校驗(yàn)步驟105時(shí),需讀取預(yù)先設(shè)置的特征值,由于此特征值編寫入執(zhí) 行程序內(nèi)部,無需從執(zhí)行文件外部獲取該特征值,從而實(shí)現(xiàn)無需借助外部工具的自校驗(yàn)。在該自校驗(yàn)的過程中,對(duì)執(zhí)行文件進(jìn)行了外殼加密,使該執(zhí)行文件自校驗(yàn)方法防止病毒及木馬攻擊,不僅如此,更能在運(yùn)行時(shí)能檢查該執(zhí)行文件是否已經(jīng)被病毒攻擊或惡意篡改,通過對(duì)特征值的判斷,還能驗(yàn)證該執(zhí)行文件是否為軟件開發(fā)商所開發(fā)的軟件,另夕卜,該方法成本很低,用戶使用也十分方便,軟件開發(fā)商管理其開發(fā)的軟件也很方便。上述實(shí)施例中的自校驗(yàn)經(jīng)過兩種分別對(duì)MD5值及特征值的校驗(yàn),兩次校驗(yàn)會(huì)增加校驗(yàn)時(shí)間,因而導(dǎo)致執(zhí)行文件開始運(yùn)行的時(shí)間較長(zhǎng),考慮這方面的因素,可以只選擇其中一種來進(jìn)行校驗(yàn),當(dāng)然,這是基于節(jié)約時(shí)間的考慮。在實(shí)際使用上述實(shí)施例中的執(zhí)行文件自校驗(yàn)方法時(shí),可權(quán)衡考慮時(shí)間、安全等因素來選擇。當(dāng)然本發(fā)明所述的外殼加密過程不限于上述實(shí)施例中所述的加密過程,通過其他加密方法或步驟而產(chǎn)生外殼加密數(shù)據(jù),然后將此外殼加密數(shù)據(jù)添加在所述執(zhí)行文件尾部也是可行的,當(dāng)采用其他方法產(chǎn)生加密數(shù)據(jù)時(shí),也對(duì)應(yīng)的修改自校驗(yàn)函數(shù)F的執(zhí)行步驟,以此來實(shí)現(xiàn)執(zhí)行文件的自校驗(yàn)。如圖2所示,本發(fā)明實(shí)施例中還公開了一種執(zhí)行文件自校驗(yàn)裝置,包括執(zhí)行文件設(shè)置單元(I)及自校驗(yàn)單元(2),其中,所述執(zhí)行文件設(shè)置單元(I)包括自校驗(yàn)函數(shù)設(shè)置單元(11)及外殼加密單元(12),其中所述自校驗(yàn)函數(shù)設(shè)置單元(11)用于對(duì)在執(zhí)行程序代碼前加入自校驗(yàn)函數(shù)F,并將此執(zhí)行程序代碼編譯成執(zhí)行文件;所述外殼加密單元(12)用于對(duì)所述執(zhí)行文件進(jìn)行外殼加密,使所述執(zhí)行文件尾部帶有外殼加密數(shù)據(jù),該外殼加密單元獨(dú)立于所述執(zhí)行文件。所述自校驗(yàn)單元(2),用于調(diào)用所述執(zhí)行文件中的自校驗(yàn)函數(shù)F,并判斷該執(zhí)行文件是否與原始的執(zhí)行文件一致,是所述執(zhí)行文件實(shí)現(xiàn)自校驗(yàn)的重要組成部分。在本實(shí)施例中的執(zhí)行文件自校驗(yàn)裝置,如圖3所示,所述外殼加密單元(12)還進(jìn)一步包括特征值加密單元(121),用于對(duì)特征值進(jìn)行加密,并將特征值加密數(shù)據(jù)添加在所述執(zhí)行文件尾部,所述特征值加密數(shù)據(jù)是通過加密算法對(duì)預(yù)先設(shè)置的特征值(100字節(jié))加密而來;MD5加密單元(122),用于使用MD5加密所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值,并將MD5加密數(shù)據(jù)添加在上述特征值加密數(shù)據(jù)后。本實(shí)施例中執(zhí)行文件自校驗(yàn)裝置,如圖2所示,所述自校驗(yàn)單元(2)還進(jìn)一步包括MD5校驗(yàn)單元(21),用于計(jì)算所述執(zhí)行文件除尾部16字節(jié)外的內(nèi)容的MD5值并判斷其是否所述執(zhí)行文件尾部16字節(jié)相同;特征值校驗(yàn)單元(22),用于解密所述執(zhí)行文件后除尾部16字節(jié)外的特征值加密數(shù)據(jù),并判斷解密結(jié)果是否與預(yù)先設(shè)置的特征值一致。而所述MD5校驗(yàn)單元(21)及所述特征值校驗(yàn)單元(22)可根據(jù)需要只包括一種或同時(shí)包括兩種。
以上所述,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案和技術(shù) 構(gòu)思做出其他各種相應(yīng)的改變和變形,而所有這些改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種執(zhí)行文件自校驗(yàn)方法,其特征在于,所述執(zhí)行文件自校驗(yàn)方法包括設(shè)置執(zhí)行文件與自校驗(yàn),其中, 設(shè)置執(zhí)行文件包括 51)在編寫執(zhí)行程序代碼時(shí),在Main函數(shù)前,加入預(yù)設(shè)的自校驗(yàn)函數(shù),并將此執(zhí)行程序代碼編譯生成執(zhí)行文件; 52)對(duì)上述執(zhí)行文件進(jìn)行外殼加密,將外殼加密數(shù)據(jù)添加在所述執(zhí)行文件尾部; 自校驗(yàn)包括 53)運(yùn)行執(zhí)行文件時(shí),先調(diào)用預(yù)設(shè)的自校驗(yàn)函數(shù),利用上述外殼加密數(shù)據(jù)判斷該執(zhí)行文件是否為原始的執(zhí)行文件,是,程序繼續(xù)運(yùn)行;否,程序則結(jié)束運(yùn)行。
2.如權(quán)利要求I所述的執(zhí)行文件自校驗(yàn)方法,其特征在于,步驟S2)中外殼加密過程包括 Al)對(duì)特征值進(jìn)行加密,將特征值加密數(shù)據(jù)添加在所述執(zhí)行文件尾部,其中所述特征值預(yù)先設(shè)置并編寫入所述執(zhí)行文件內(nèi)部;所述特征值包括軟件開發(fā)商名稱、執(zhí)行文件名稱及版本號(hào); A2 )利用MD5加密所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值,將MD5加密數(shù)據(jù)添加在所述特征值加密數(shù)據(jù)后,所述MD5加密數(shù)據(jù)大小為16字節(jié)。
3.如權(quán)利要求2所述的執(zhí)行文件自校驗(yàn)方法,其特征在于,所述外殼加密數(shù)據(jù)包括特征值加密數(shù)據(jù)、所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值的MD5加密數(shù)據(jù)。
4.如權(quán)利要求I所述的執(zhí)行文件自校驗(yàn)方法,其特征在于,步驟S3)中所述自校驗(yàn)函數(shù)的執(zhí)行過程包括 BI)從硬盤把所述執(zhí)行文件讀入內(nèi)存,計(jì)算所述執(zhí)行文件除尾部16字節(jié)外的內(nèi)容的MD5 值; B2)判斷上述計(jì)算結(jié)果是否與所述執(zhí)行文件的尾部16字節(jié)相同,否,返回失?。皇?,則執(zhí)行下述步驟; B3)解密所述執(zhí)行文件后除尾部16字節(jié)外的特征值加密數(shù)據(jù),判斷解密結(jié)果是否與特征值一致,是,返回成功;否,返回失敗。
5.一種執(zhí)行文件自校驗(yàn)裝置,其特征在于,包括執(zhí)行文件設(shè)置單元(I)及自校驗(yàn)單元(2),其中, 所述執(zhí)行文件設(shè)置單元(I)包括自校驗(yàn)函數(shù)設(shè)置單元(11)及外殼加密單元(12),所述自校驗(yàn)函數(shù)設(shè)置單元(11)用于對(duì)在執(zhí)行程序代碼前加入自校驗(yàn)函數(shù),并將此執(zhí)行程序代碼編譯成執(zhí)行文件;所述外殼加密單元(12)用于對(duì)所述執(zhí)行文件進(jìn)行外殼加密,使所述執(zhí)行文件尾部帶有外殼加密數(shù)據(jù); 所述自校驗(yàn)單元(2 ),用于調(diào)用所述執(zhí)行文件中的自校驗(yàn)函數(shù),并判斷該執(zhí)行文件是否與原始的執(zhí)行文件一致。
6.如權(quán)利要求5所述的執(zhí)行文件自校驗(yàn)裝置,其特征在于,所述外殼加密單元(12)包括 特征值加密單元(121 ),用于對(duì)特征值進(jìn)行加密,并將特征值加密數(shù)據(jù)添加在所述執(zhí)行文件尾部; MD5加密單元(122),用于使用MD5加密所述執(zhí)行程序的全部?jī)?nèi)容及所述特征值,并將MD5加密數(shù)據(jù)添加在上述特征值加密數(shù)據(jù)后。
7.如權(quán)利要求5所述的執(zhí)行文件自校驗(yàn)裝置,其特征在于,所述自校驗(yàn)單元(2)還包括 MD5校驗(yàn)單元(21 ),用于計(jì)算所述執(zhí)行文件除尾部16字節(jié)外的內(nèi)容的MD5值并判斷其是否所述執(zhí)行文件尾部16字節(jié)相同; 特征值校驗(yàn)單元(22),用于解密所述執(zhí)行文件后除尾部16字節(jié)外的特征值加密數(shù)據(jù),并判斷解密結(jié)果是否與預(yù)先設(shè)置的特征值一致。
全文摘要
本發(fā)明涉及一種執(zhí)行文件自校驗(yàn)方法,在編寫執(zhí)行程序代碼時(shí),在Main函數(shù)前,添加預(yù)設(shè)的自校驗(yàn)函數(shù),運(yùn)行該執(zhí)行文件時(shí),先調(diào)用該自校驗(yàn)函數(shù),若該自校驗(yàn)函數(shù)返回成功,則繼續(xù)運(yùn)行;失敗,則程序結(jié)束運(yùn)行。該執(zhí)行文件自校驗(yàn)方法還包括對(duì)所述執(zhí)行程序代碼編譯生成的執(zhí)行文件進(jìn)行外殼加密,基于此外殼加密數(shù)據(jù)執(zhí)行上述自校驗(yàn)函數(shù)。本發(fā)明還提供了一種用于上述執(zhí)行文件自校驗(yàn)方法的自校驗(yàn)裝置,使用本發(fā)明的優(yōu)點(diǎn)在于不僅可以屏蔽病毒及防止木馬攻擊,在運(yùn)行前還能驗(yàn)證是否為開發(fā)商所開發(fā)的程序從而防止盜版及驗(yàn)證是否已經(jīng)被篡改,且易于使用及方便操作。
文檔編號(hào)G06F21/10GK102855439SQ20121026072
公開日2013年1月2日 申請(qǐng)日期2012年7月26日 優(yōu)先權(quán)日2012年7月26日
發(fā)明者楚甲良, 張先助 申請(qǐng)人:深圳市賽格導(dǎo)航科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
拜城县| 昌图县| 榕江县| 洪洞县| 乐亭县| 神农架林区| 新丰县| 黄冈市| 浠水县| 道孚县| 双桥区| 宣汉县| 古丈县| 通海县| 裕民县| 雷波县| 安达市| 浠水县| 富裕县| 诏安县| 民勤县| 辽宁省| 济阳县| 兴海县| 如皋市| 林州市| 乌鲁木齐市| 阳东县| 青河县| 于都县| 尚志市| 永德县| 金塔县| 衡阳市| 三台县| 宜黄县| 贺州市| 台湾省| 通渭县| 木里| 梨树县|