亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種軟件保護(hù)方法及裝置的制作方法

文檔序號:6395013閱讀:126來源:國知局
專利名稱:一種軟件保護(hù)方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件保護(hù)領(lǐng)域,特別是涉及一種通過驗(yàn)證過程保護(hù)軟件的方法及裝置。
背景技術(shù)
隨著信息技術(shù)的發(fā)展,軟件產(chǎn)業(yè)也越來越受到人們的重視,各種系統(tǒng)軟件和應(yīng)用軟件層出不窮。通常,軟件開發(fā)商需要投入龐大的人力物力進(jìn)行軟件的研發(fā)。但是,一旦軟件開發(fā)成功,盜版者只需要花費(fèi)少量的精力就可以進(jìn)行仿制并低價(jià)銷售,大為打擊人們從事軟件開發(fā)的積極性并嚴(yán)重阻礙軟件產(chǎn)業(yè)的發(fā)展。
為了遏制盜版以保護(hù)知識產(chǎn)權(quán),業(yè)界推出了一系列軟件保護(hù)技術(shù)。其中,在軟件啟動時(shí),根據(jù)用戶信息、產(chǎn)品序列號、數(shù)字簽名和/或軟件運(yùn)行載體的標(biāo)識進(jìn)行使用權(quán)限驗(yàn)證是目前常用的軟件保護(hù)方法,如果驗(yàn)證通過,則允許進(jìn)行軟件的運(yùn)行;如果驗(yàn)證通不過,則返回提示信息,不允許運(yùn)行所述軟件或屏蔽部分功能只允許軟件的受限運(yùn)行。
請參閱圖1,是一種現(xiàn)有技術(shù)的軟件保護(hù)方法的流程。
當(dāng)被保護(hù)的軟件初始化時(shí),將觸發(fā)驗(yàn)證單元啟動驗(yàn)證過程首先,獲取用戶信息、產(chǎn)品序列號、數(shù)字簽名和/或軟件運(yùn)行載體的標(biāo)識等信息;其次,返回值生成單元根據(jù)用戶信息、產(chǎn)品序列號、數(shù)字簽名和/或軟件運(yùn)行載體的標(biāo)識進(jìn)行驗(yàn)證,生成返回值;隨后,比較單元根據(jù)所述返回值進(jìn)行比較,以判斷驗(yàn)證是否通過,如果是,則允許運(yùn)行所述軟件進(jìn)行業(yè)務(wù)處理;如果否,則進(jìn)行驗(yàn)證失敗處理,如返回提示信息,不允許運(yùn)行所述軟件或屏蔽部分功能只允許軟件的受限運(yùn)行。
所述現(xiàn)有技術(shù)的軟件保護(hù)方法具有一些缺陷由于僅僅在軟件初始化時(shí)進(jìn)行處理,且通常由比較單元直接根據(jù)返回值進(jìn)行判斷,如果攻擊者跟蹤軟件的驗(yàn)證過程,就可以通過修改這些驗(yàn)證過程的返回值,或者更改某些比較操作,使驗(yàn)證過程中總是返回驗(yàn)證通過,從而導(dǎo)致攻擊者可以徹底繞過驗(yàn)證過程,而無需關(guān)注其它驗(yàn)證操作細(xì)節(jié)。

發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題在于提供一種增加攻擊難度以提高安全性的軟件保護(hù)方法及裝置。
為此,本發(fā)明解決技術(shù)問題的技術(shù)方案是提供一種軟件保護(hù)方法,包括步驟1)在所述軟件啟動時(shí)生成驗(yàn)證值,根據(jù)所述驗(yàn)證值生成擾碼結(jié)果;2)判斷驗(yàn)證是否通過,如是,則進(jìn)入步驟3);如否,則不允許運(yùn)行所述軟件或進(jìn)行所述軟件的受限運(yùn)行;3)運(yùn)行所述軟件,并啟動定時(shí)器;4)判斷前述定時(shí)器是否到達(dá)預(yù)定周期,如是,則進(jìn)入步驟5);如否,則不進(jìn)行操作;5)對前述擾碼結(jié)果進(jìn)行校驗(yàn),判斷校驗(yàn)是否通過,如是,則返回步驟4);如否,則退出所述軟件的運(yùn)行或進(jìn)行所述軟件的受限運(yùn)行。
其中,所述步驟1)中,生成擾碼結(jié)果具體包括11)生成偽隨機(jī)數(shù);12)利用所述偽隨機(jī)數(shù)對驗(yàn)證值進(jìn)行變換,生成第一變換結(jié)果。
其中,所述步驟12)具體包括將偽隨機(jī)數(shù)和驗(yàn)證值相加;對相加結(jié)果進(jìn)行哈希變換。
其中,將哈希變換結(jié)果作為字符串或者將哈希變換結(jié)果的值變換為字符串,所述字符串即第一變換結(jié)果。
其中,所述步驟5)具體包括51)對擾碼結(jié)果進(jìn)行變換操作,生成第二變換結(jié)果;52)根據(jù)前述第一變換結(jié)果和第二變換結(jié)果獲得校驗(yàn)結(jié)果;53)判斷校驗(yàn)結(jié)果是否為預(yù)定值。
其中,所述步驟51)中變換操作是哈希變換;所述步驟52)中將第一變換結(jié)果和第二變換結(jié)果進(jìn)行按位異或。
其中,所述步驟2)中,所述判斷是否通過是判斷驗(yàn)證值是否為預(yù)定值或?qū)η笆鰯_碼結(jié)果進(jìn)行校驗(yàn)。
其中,在所述步驟1)之前還包括選取擾碼結(jié)果存儲單元。
本發(fā)明還提供一種用于實(shí)現(xiàn)權(quán)利要求1所述的軟件保護(hù)方法的軟件保護(hù)裝置,包括驗(yàn)證值生成單元,用于在所述軟件啟動時(shí)生成驗(yàn)證值;比較單元,用于比較驗(yàn)證值是否為預(yù)定值;還包括擾碼結(jié)果生成單元,用于根據(jù)前述驗(yàn)證值生成擾碼結(jié)果;定時(shí)器,用于在所述軟件運(yùn)行時(shí)觸發(fā)校驗(yàn)裝置;校驗(yàn)單元,用于在軟件啟動或定時(shí)器到達(dá)預(yù)定周期時(shí)對前述擾碼結(jié)果進(jìn)行校驗(yàn)。
其中,所述驗(yàn)證值生成裝置和比較裝置集成為一體。
相對于現(xiàn)有技術(shù),本發(fā)明的有益效果是首先,由于本發(fā)明對返回的驗(yàn)證值進(jìn)行擾碼處理,生成擾碼結(jié)果,并且在軟件運(yùn)行時(shí)設(shè)置定時(shí)器,當(dāng)定時(shí)器到達(dá)預(yù)定周期時(shí)對擾碼結(jié)果進(jìn)行校驗(yàn),即定期對擾碼結(jié)果進(jìn)行校驗(yàn),從而增大攻擊者針對返回的驗(yàn)證值進(jìn)行攻擊的難度并提高安全性,實(shí)現(xiàn)軟件保護(hù)。其次,由于本發(fā)明對擾碼結(jié)果進(jìn)行定時(shí)校驗(yàn),而不是重新生成驗(yàn)證值并對驗(yàn)證值進(jìn)行判斷,定時(shí)校驗(yàn)的速度較高。其次,在本發(fā)明的一個(gè)實(shí)施方式中,在軟件啟動時(shí)對擾碼結(jié)果進(jìn)行校驗(yàn),相對現(xiàn)有技術(shù)在軟件啟動時(shí)對返回值進(jìn)行驗(yàn)證而言,增加了針對返回值攻擊的難度。


圖1是一種現(xiàn)有技術(shù)的軟件保護(hù)方法的流程圖;圖2是本發(fā)明軟件保護(hù)裝置的原理框圖;圖3是本發(fā)明軟件保護(hù)方法的流程圖;圖4是本發(fā)明軟件保護(hù)方法實(shí)施例的流程圖;圖5是圖4所示流程中擾碼處理的流程圖;圖6是圖4所示流程中擾碼結(jié)果校驗(yàn)的流程圖。
具體實(shí)施例方式
本發(fā)明軟件保護(hù)方法及裝置通過對返回的驗(yàn)證值進(jìn)行擾碼處理和對擾碼結(jié)果進(jìn)行定時(shí)校驗(yàn),可以有效防御攻擊者針對返回值進(jìn)行的攻擊,從而實(shí)現(xiàn)對軟件的保護(hù)。
請參閱圖2,是應(yīng)用本發(fā)明軟件保護(hù)方法的軟件保護(hù)裝置的原理框圖。所述軟件保護(hù)裝置包括驗(yàn)證值生成單元110、比較單元120、擾碼結(jié)果生成單元130、定時(shí)器140和校驗(yàn)單元150;所述驗(yàn)證值生成單元110用于在被保護(hù)的軟件啟動時(shí)從數(shù)據(jù)處理系統(tǒng)200獲取信息并生成驗(yàn)證值;所述比較單元120用于比較驗(yàn)證值是否為預(yù)定值并影響數(shù)據(jù)處理系統(tǒng)200的運(yùn)行;所述擾碼結(jié)果生成單元130用于根據(jù)前述驗(yàn)證值生成擾碼結(jié)果;所述定時(shí)器140用于在所述軟件運(yùn)行時(shí)觸發(fā)校驗(yàn)單元150;所述校驗(yàn)單元150用于在軟件啟動或定時(shí)器到達(dá)預(yù)定周期時(shí)對前述擾碼結(jié)果進(jìn)行校驗(yàn),并影響數(shù)據(jù)處理系統(tǒng)200的運(yùn)行。
需要說明的是,所述驗(yàn)證值生成單元110和比較單元120可以集成在一起。
請參閱圖3,是本發(fā)明軟件保護(hù)方法的流程圖。
首先,實(shí)施步驟S1,驗(yàn)證值生成單元110在所述軟件啟動時(shí)生成驗(yàn)證值,并且擾碼結(jié)果生成單元130根據(jù)所述驗(yàn)證值生成擾碼結(jié)果;步驟S2,判斷驗(yàn)證是否通過,如是,則進(jìn)入步驟S3;如否,則不允許數(shù)據(jù)處理系統(tǒng)200運(yùn)行所述軟件或進(jìn)行所述軟件的受限運(yùn)行;步驟S3,允許運(yùn)行所述軟件,并啟動定時(shí)器140;步驟S4,判斷前述定時(shí)器140是否到達(dá)預(yù)定周期,如是,則進(jìn)入步驟S5,如否,則不進(jìn)行操作;步驟S5,校驗(yàn)單元150對前述擾碼結(jié)果進(jìn)行校驗(yàn),判斷校驗(yàn)是否通過,如是,則返回步驟S4;如否,則數(shù)據(jù)處理系統(tǒng)200退出所述軟件的運(yùn)行或進(jìn)行所述軟件的受限運(yùn)行。
需要說明的是,所述步驟S2中,判斷驗(yàn)證是否通過時(shí),可以采用比較單元120對驗(yàn)證值進(jìn)行比較,也可以采用校驗(yàn)單元150對擾碼結(jié)果進(jìn)行校驗(yàn)。
為了便于對本發(fā)明的理解,下面結(jié)合實(shí)施例對本發(fā)明做進(jìn)一步的詳細(xì)描述。
請參閱圖4,當(dāng)被保護(hù)的軟件初始化時(shí),首先執(zhí)行步驟S11,選定擾碼結(jié)果存儲單元,所述擾碼結(jié)果存儲單元包括第一存儲區(qū)和第二存儲區(qū)。
隨后,步驟S12中,驗(yàn)證值生成單元根據(jù)用戶信息、產(chǎn)品序列號、數(shù)字簽名和/或軟件運(yùn)行載體的標(biāo)識生成驗(yàn)證值rtValue。
一并參閱圖5,擾碼結(jié)果生成單元產(chǎn)生一個(gè)長度與第一存儲區(qū)寬度一致(如32位)的偽隨機(jī)數(shù)rtResult.ulData1,將其保存在第一存儲區(qū);利用所述偽隨機(jī)數(shù)rtResult.ulData1對驗(yàn)證值rtValue進(jìn)行變換,生成第一變換結(jié)果rtResult.ulData2,將所述第一變換結(jié)果rtResult.ulData2保存在第二存儲區(qū)。所述偽隨機(jī)數(shù)rtResult.ulData1和第一變換結(jié)果rtResult.ulData2組成擾碼結(jié)果rtResult。
本實(shí)施例中,所述變換操作采用H(rtResult.ulData1+rtValue)_32,即將偽隨機(jī)數(shù)rtResult.ulData1和驗(yàn)證值rtValue相加,對其結(jié)果進(jìn)行HASH變換,最后取HASH結(jié)果的前32位作為一個(gè)無符號整數(shù)。
可以理解的是,對于HASH變換的原始數(shù)據(jù)可以有兩種處理方式其一,將32位整數(shù)rtResult.ulData1+rtValue作為一個(gè)4字節(jié)長字符串;其二,將32位整數(shù)rtResult.ulData1+rtValue的值變換為一個(gè)字符串。
步驟S13,比較單元對驗(yàn)證值rtValue進(jìn)行比較,判斷驗(yàn)證值rtValue是否為預(yù)定值,如是,則表示驗(yàn)證通過,執(zhí)行步驟S14;如否,則表示驗(yàn)證不通過,將進(jìn)行驗(yàn)證失敗處理,退出軟件運(yùn)行或者屏蔽軟件的部分功能進(jìn)行軟件的受限運(yùn)行。
步驟S14,允許軟件運(yùn)行以進(jìn)行業(yè)務(wù)處理,啟動定時(shí)器。定時(shí)器的周期可以根據(jù)軟件運(yùn)行環(huán)境的特點(diǎn)自行選擇。
步驟S15,判斷定時(shí)器是否到達(dá)預(yù)定周期,如是,則進(jìn)入步驟S16;如否,則不進(jìn)行任何操作,不影響軟件的正常運(yùn)行。
一并參閱圖6,步驟S16,當(dāng)定時(shí)器到達(dá)預(yù)定周期時(shí),對擾碼結(jié)果進(jìn)行校驗(yàn)。具體校驗(yàn)過程包括首先,從擾碼結(jié)果存儲單元讀取擾碼結(jié)果;進(jìn)行變換操作,生成第二變換結(jié)果H(rtResult.ulData1+1)_32,即將偽隨機(jī)數(shù)rtResult.ulData1加1,對其結(jié)果進(jìn)行HASH變換,最后取HASH結(jié)果的前32位作為一個(gè)無符號整數(shù);接著將第二變換結(jié)果H(rtResult.ulData1+1)_32和第一變換結(jié)果rtResult.ulData2進(jìn)行“按位異或”,生成校驗(yàn)結(jié)果H(rtResult.ulData1+1)_32^rtResult.ulData2;最后,判斷校驗(yàn)結(jié)果是否為預(yù)定值,判斷校驗(yàn)是否通過,如是,則返回步驟S15;如否,則退出所述軟件的運(yùn)行或進(jìn)行所述軟件的受限運(yùn)行。
本實(shí)施例中,設(shè)定只有當(dāng)被保護(hù)的驗(yàn)證值rtValue為1時(shí),擾碼結(jié)果校驗(yàn)不通過。因此,如果最后的校驗(yàn)結(jié)果為0,則表示被保護(hù)的驗(yàn)證值為1,也就意味著擾碼校驗(yàn)結(jié)果不通過。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種軟件保護(hù)方法,其特征在于,包括步驟1)在所述軟件啟動時(shí)生成驗(yàn)證值,根據(jù)所述驗(yàn)證值生成擾碼結(jié)果;2)判斷驗(yàn)證是否通過,如是,則進(jìn)入步驟3);如否,則不允許運(yùn)行所述軟件或進(jìn)行所述軟件的受限運(yùn)行;3)運(yùn)行所述軟件,并啟動定時(shí)器;4)判斷前述定時(shí)器是否到達(dá)預(yù)定周期,如是,則進(jìn)入步驟5);如否,則不進(jìn)行操作;5)對前述擾碼結(jié)果進(jìn)行校驗(yàn),判斷校驗(yàn)是否通過,如是,則返回步驟4);如否,則退出所述軟件的運(yùn)行或進(jìn)行所述軟件的受限運(yùn)行。
2.根據(jù)權(quán)利要求1所述的軟件保護(hù)方法,其特征在于,所述步驟1)中,生成擾碼結(jié)果具體包括11)生成偽隨機(jī)數(shù);12)利用所述偽隨機(jī)數(shù)對驗(yàn)證值進(jìn)行變換,生成第一變換結(jié)果。
3.根據(jù)權(quán)利要求2所述的軟件保護(hù)方法,其特征在于所述步驟12)具體包括將偽隨機(jī)數(shù)和驗(yàn)證值相加;對相加結(jié)果進(jìn)行哈希變換。
4.根據(jù)權(quán)利要求3所述的軟件保護(hù)方法,其特征在于將哈希變換結(jié)果作為字符串或者將哈希變換結(jié)果的值變換為字符串,所述字符串即第一變換結(jié)果。
5.根據(jù)權(quán)利要求2所述的軟件保護(hù)方法,其特征在于,所述步驟5)具體包括51)對擾碼結(jié)果進(jìn)行變換操作,生成第二變換結(jié)果;52)根據(jù)前述第一變換結(jié)果和第二變換結(jié)果獲得校驗(yàn)結(jié)果;53)判斷校驗(yàn)結(jié)果是否為預(yù)定值。
6.根據(jù)權(quán)利要求5所述的軟件保護(hù)方法,其特征在于所述步驟51)中變換操作是哈希變換;所述步驟52)中將第一變換結(jié)果和第二變換結(jié)果進(jìn)行按位異或。
7.根據(jù)權(quán)利要求1所述的軟件保護(hù)方法,其特征在于,所述步驟2)中,所述判斷是否通過是判斷驗(yàn)證值是否為預(yù)定值或?qū)η笆鰯_碼結(jié)果進(jìn)行校驗(yàn)。
8.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的軟件保護(hù)方法,其特征在于在所述步驟1)之前還包括選取擾碼結(jié)果存儲單元。
9.一種用于實(shí)現(xiàn)權(quán)利要求1所述的軟件保護(hù)方法的軟件保護(hù)裝置,包括驗(yàn)證值生成單元,用于在所述軟件啟動時(shí)生成驗(yàn)證值;比較單元,用于比較驗(yàn)證值是否為預(yù)定值;其特征在于,還包括擾碼結(jié)果生成單元,用于根據(jù)前述驗(yàn)證值生成擾碼結(jié)果;定時(shí)器,用于在所述軟件運(yùn)行時(shí)觸發(fā)校驗(yàn)裝置;校驗(yàn)單元,用于在軟件啟動或定時(shí)器到達(dá)預(yù)定周期時(shí)對前述擾碼結(jié)果進(jìn)行校驗(yàn)。
10.根據(jù)權(quán)利要求9所述的軟件保護(hù)裝置,其特征在于所述驗(yàn)證值生成裝置和比較裝置集成為一體。
全文摘要
本發(fā)明公開了一種軟件保護(hù)方法,包括步驟在所述軟件啟動時(shí)生成驗(yàn)證值,根據(jù)所述驗(yàn)證值生成擾碼結(jié)果;判斷驗(yàn)證是否通過;如果驗(yàn)證通過,運(yùn)行所述軟件,并啟動定時(shí)器;判斷前述定時(shí)器是否到達(dá)預(yù)定周期;如達(dá)到預(yù)定周期,對前述擾碼結(jié)果進(jìn)行校驗(yàn),判斷校驗(yàn)是否通過;如果通過,則繼續(xù)檢測定時(shí)器;如果未通過,則退出所述軟件的運(yùn)行或進(jìn)行所述軟件的受限運(yùn)行。
文檔編號G06F1/00GK1684017SQ20041003106
公開日2005年10月19日 申請日期2004年4月12日 優(yōu)先權(quán)日2004年4月12日
發(fā)明者林中, 范云松, 謝永政 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1