国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      測試軟件注冊算法錯誤的方法

      文檔序號:6627005閱讀:655來源:國知局
      測試軟件注冊算法錯誤的方法
      【專利摘要】本發(fā)明涉及一種能夠檢測出軟件注冊算法bug的測試軟件注冊算法錯誤的方法。包括:在軟件的注冊算法中增加校驗(yàn)代碼段;編譯所述增加的校驗(yàn)代碼段的軟件,生成可執(zhí)行代碼,得到二進(jìn)制文件;利用得到的二進(jìn)制文件對所述增加的校驗(yàn)代碼段進(jìn)行逆向分析,獲得分析結(jié)果。
      【專利說明】測試軟件注冊算法錯誤的方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種測試軟件注冊算法錯誤的方法。

      【背景技術(shù)】
      [0002]目前,很多軟件系統(tǒng)開發(fā)投入商用后都會有一個(gè)注冊的機(jī)制保護(hù)自己的軟件,從而實(shí)現(xiàn)開發(fā)的軟件系統(tǒng)只有自己的客戶可以使用,目前軟件保護(hù)機(jī)制各不相同,強(qiáng)度也各有差別,而怎樣提高自己軟件注冊機(jī)制的保護(hù)強(qiáng)度,是一個(gè)廣泛存在的問題。
      [0003]由于在軟件開發(fā)過程幾乎都采用高級程序語言進(jìn)行代碼編寫,所以軟件開發(fā)者只能通過更好的改進(jìn)注冊算法的設(shè)計(jì)來提高軟件的保護(hù)強(qiáng)度。但是再好的算法在使用的過程中也可能會有錯誤(bug)存在,而bug的存在會導(dǎo)致算法整個(gè)失效,由于這種bug并不是錯誤,所以在編譯的時(shí)候并不會報(bào)錯,甚至不會對軟件的真正應(yīng)用造成任何的影響,目前并沒有一種行之有效的檢測這種bug的方法。
      [0004]有鑒于上述的缺陷,本設(shè)計(jì)人,積極加以研究創(chuàng)新,以期創(chuàng)設(shè)一種測試軟件注冊算法錯誤的方法,使其更具有產(chǎn)業(yè)上的利用價(jià)值。


      【發(fā)明內(nèi)容】

      [0005]為解決上述技術(shù)問題,本發(fā)明的目的是提供一種能夠檢測出軟件注冊算法bug的測試軟件注冊算法錯誤的方法。
      [0006]本發(fā)明的測試軟件注冊算法錯誤的方法,包括:
      [0007]在軟件的注冊算法中增加校驗(yàn)代碼段;
      [0008]編譯所述增加的校驗(yàn)代碼段的軟件,生成可執(zhí)行代碼,得到二進(jìn)制文件;
      [0009]利用得到的二進(jìn)制文件對所述增加的校驗(yàn)代碼段進(jìn)行逆向分析,獲得分析結(jié)果。
      [0010]進(jìn)一步的,所述注冊算法具體為高級加密標(biāo)準(zhǔn)AES算法;在在軟件的注冊算法中增加校驗(yàn)代碼段之前,還包括:用戶采用用戶名+注冊碼的方式進(jìn)行注冊,在注冊的過程,隨機(jī)生成16字節(jié)作為用戶名,利用所述16字節(jié)的用戶名作為數(shù)據(jù)輸入,選定另外16字節(jié)數(shù)據(jù)作為AES加密算法的key,利用AES加密算法的key將數(shù)據(jù)輸入經(jīng)過一次AES算法,得到新的16字節(jié)的數(shù)據(jù)輸出,若是得到的數(shù)據(jù)輸出的16字節(jié)與注冊碼相同,則注冊檢測通過;若是得到的數(shù)據(jù)輸出的16字節(jié)與注冊碼不同,則注冊檢測未通過。
      [0011]進(jìn)一步的,所述增加的校驗(yàn)代碼段具體為AfxMessageBoxr注冊信息驗(yàn)證〃)。
      [0012]進(jìn)一步的,所述逆向分析包括靜態(tài)反匯編和動態(tài)調(diào)試。
      [0013]進(jìn)一步的,所述利用得到的二進(jìn)制文件對所述增加的校驗(yàn)代碼段進(jìn)行逆向分析,獲得分析結(jié)果,具體包括:
      [0014]將所述生成的二進(jìn)制文件導(dǎo)入到第三方軟件中,第三方軟件分析編譯器生成的可執(zhí)行代碼,獲得匯編代碼,其中,所述匯編代碼是去除編譯器的各項(xiàng)優(yōu)化處理之后生成的真實(shí)的可執(zhí)行代碼;
      [0015]根據(jù)所述獲得的匯編代碼,確定所述軟件的注冊信息是否正確。
      [0016]借由上述方案,本發(fā)明至少具有以下優(yōu)點(diǎn):
      [0017]本發(fā)明通過逆向分析的技術(shù)分析軟件注冊相關(guān)算法的實(shí)現(xiàn)及注冊信息判定,使用這種技術(shù)可以直接面向編譯器生成的最終代碼進(jìn)行分析,去除了編譯器的優(yōu)化功能對代碼的影響,另外直接面向匯編語言分析,可以非常精確的分析算法的真實(shí)實(shí)現(xiàn)過程以及最終的判定注冊信息是否正確的過程。這種分析方法比面向高級程序語言分析具有精確性的優(yōu)點(diǎn),可以看到代碼究竟被編譯器編譯成了什么樣子,用來給客戶或者程序開發(fā)者參考。
      [0018]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本發(fā)明的較佳實(shí)施例并配合附圖詳細(xì)說明如后。

      【專利附圖】

      【附圖說明】
      [0019]圖1是本發(fā)明測試軟件注冊算法錯誤的方法的方法流程圖;
      [0020]圖2為本發(fā)明實(shí)施例的注冊函數(shù)的C++代碼截圖;
      [0021]圖3為本發(fā)明實(shí)施例中將可執(zhí)行文件導(dǎo)入第三方軟件后彈出的界面的示意圖;
      [0022]圖4為本發(fā)明實(shí)施例中搜索到的校驗(yàn)代碼段“注冊信息驗(yàn)證”的示意圖;
      [0023]圖5為本發(fā)明實(shí)施例中校驗(yàn)代碼段“注冊信息驗(yàn)證”在函數(shù)中的位置的示意圖;
      [0024]圖6為本發(fā)明實(shí)施例中zhuce函數(shù)經(jīng)過編譯之后的匯編代碼整體結(jié)構(gòu)圖;
      [0025]圖7為本發(fā)明實(shí)施例中zhuce函數(shù)編譯后的匯編代碼分支跳轉(zhuǎn)指令放大圖。

      【具體實(shí)施方式】
      [0026]下面結(jié)合附圖和實(shí)施例,對本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
      [0027]參見圖1所示,一種測試軟件注冊算法錯誤的方法,包括
      [0028]步驟101:在軟件的注冊算法中增加校驗(yàn)代碼段,這些校驗(yàn)代碼段可以方便后續(xù)逆向分析中更加容易的找到指定的代碼。
      [0029]在發(fā)明實(shí)施例中的一個(gè)具體例子中,該注冊算法具體為AES算法,這個(gè)算法是一種對稱算法,使用16字節(jié)的秘鑰,可以使得通過窮舉法的方式破解這個(gè)算法成為一件不可能的事情。
      [0030]注冊的過程采用用戶名+注冊碼的方式,隨機(jī)生成16字節(jié)作為用戶名,利用該16字節(jié)的用戶名作為數(shù)據(jù)輸入,選定另外16字節(jié)數(shù)據(jù)作為高級加密標(biāo)準(zhǔn)AES加密算法的key,利用AES加密算法的key將數(shù)據(jù)輸入經(jīng)過一次AES算法,得到16字節(jié)的數(shù)據(jù)輸出,若是得到的數(shù)據(jù)輸出的16字節(jié)與注冊碼相同,則注冊檢測通過,可以進(jìn)行注冊,若是得到的數(shù)據(jù)輸出的16字節(jié)與注冊碼不同,則注冊檢測未通過,不能注冊。
      [0031]在實(shí)施例中,在判斷數(shù)據(jù)輸出的16字節(jié)與注冊碼是否相同的代碼前增加一行校驗(yàn)代碼段,例如:AfXMeSSageB0X(〃注冊信息驗(yàn)證〃);加上這一行校驗(yàn)代碼段的目的是在逆向分析時(shí)更加快速的定位到該位置,從而生成的匯編代碼。驗(yàn)證代碼如圖2所示,增加的校驗(yàn)代碼段也在圖中標(biāo)出來。
      [0032]步驟102:重新編譯上述增加了校驗(yàn)代碼段的軟件,生成新的可執(zhí)行代碼,得到二進(jìn)制文件,利用得到的二進(jìn)制文件進(jìn)行逆向分析。逆向分析過程有兩種方法,第一種是靜態(tài)反匯編,第二種是動態(tài)調(diào)試,這兩種途徑可以配合使用。
      [0033]步驟103、利用靜態(tài)反匯編的方式進(jìn)行逆向分析增加的校驗(yàn)代碼段。
      [0034]例如:可以利用第三方軟件IDA PRO進(jìn)行靜態(tài)匯編,通過這款第三方軟件對指定代碼進(jìn)行可執(zhí)行文件的反匯編,可以從整體上把握指定校驗(yàn)代碼段的結(jié)構(gòu)。
      [0035]具體過程如下:首先將步驟102中生成的二進(jìn)制文件導(dǎo)入到第三方軟件中,第三方軟件分析編譯器生成的可執(zhí)行代碼,獲得匯編代碼,該匯編代碼是去除編譯器的各項(xiàng)優(yōu)化處理之后生成的真實(shí)的可執(zhí)行代碼。
      [0036]例如:生成的二進(jìn)制文件名為cryptoee.exe,在第三方軟件中點(diǎn)擊新建,之后選擇這個(gè)文件,會出現(xiàn)圖3所示的界面。點(diǎn)擊OK按鈕之后能看到第三方軟件對這個(gè)可執(zhí)行的二進(jìn)制文件進(jìn)行解析,將文件中的機(jī)器碼逆向成匯編語言。
      [0037]但是由于這個(gè)文件內(nèi)容很多,基本上包含所有軟件系統(tǒng)的所有內(nèi)容,代碼量很大,所以如何快速定位到注冊部分就顯得不是很容易。本發(fā)明利用步驟101中增加的那句校驗(yàn)代碼段,在第三方軟件菜單中選擇search-Hext,在彈出框中輸入之前的那句校驗(yàn)代碼段里的漢字“注冊信息驗(yàn)證”,點(diǎn)擊‘0K’按鈕,會跳轉(zhuǎn)到這六個(gè)漢字的存儲空間里,如圖4所示,就是查到的“注冊信息驗(yàn)證”校驗(yàn)代碼段存放的位置。在圖中可以看到在這個(gè)校驗(yàn)代碼段的右側(cè)有一個(gè)注釋:“DATA XREF:sub_403F10+6B丨o”,這段注釋表示在sub_403F10這個(gè)子函數(shù)中調(diào)用了這個(gè)校驗(yàn)代碼段,跳轉(zhuǎn)到這個(gè)子函數(shù)看一下,如圖5所示,能找到AfxMessageBox (〃注冊信息驗(yàn)證〃);對應(yīng)的匯編代碼
      [0038

      【權(quán)利要求】
      1.一種測試軟件注冊算法錯誤的方法,其特征在于,包括: 在軟件的注冊算法中增加校驗(yàn)代碼段; 編譯所述增加的校驗(yàn)代碼段的軟件,生成可執(zhí)行代碼,得到二進(jìn)制文件; 利用得到的二進(jìn)制文件對所述增加的校驗(yàn)代碼段進(jìn)行逆向分析,獲得分析結(jié)果。
      2.根據(jù)權(quán)利要求1的測試軟件注冊算法錯誤的方法,其特征在于,所述注冊算法具體為高級加密標(biāo)準(zhǔn)AES算法;在在軟件的注冊算法中增加校驗(yàn)代碼段之前,還包括:用戶采用用戶名+注冊碼的方式進(jìn)行注冊,在注冊的過程,隨機(jī)生成16字節(jié)作為用戶名,利用所述16字節(jié)的用戶名作為數(shù)據(jù)輸入,選定另外16字節(jié)數(shù)據(jù)作為AES加密算法的key,利用AES加密算法的key將數(shù)據(jù)輸入經(jīng)過一次AES算法,得到新的16字節(jié)的數(shù)據(jù)輸出,若是得到的數(shù)據(jù)輸出的16字節(jié)與注冊碼相同,則注冊檢測通過;若是得到的數(shù)據(jù)輸出的16字節(jié)與注冊碼不同,則注冊檢測未通過。
      3.根據(jù)權(quán)利要求1的測試軟件注冊算法錯誤的方法,其特征在于,所述增加的校驗(yàn)代碼段具體為AfxMessageBoxr注冊信息驗(yàn)證〃)。
      4.根據(jù)權(quán)利要求1的測試軟件注冊算法錯誤的方法,其特征在于,所述逆向分析包括靜態(tài)反匯編和動態(tài)調(diào)試。
      5.根據(jù)權(quán)利要求1的測試軟件注冊算法錯誤的方法,其特征在于,所述利用得到的二進(jìn)制文件對所述增加的校驗(yàn)代碼段進(jìn)行逆向分析,獲得分析結(jié)果,具體包括: 將所述生成的二進(jìn)制文件導(dǎo)入到第三方軟件中,第三方軟件分析編譯器生成的可執(zhí)行代碼,獲得匯編代碼,其中,所述匯編代碼是去除編譯器的各項(xiàng)優(yōu)化處理之后生成的真實(shí)的可執(zhí)行代碼; 根據(jù)所述獲得的匯編代碼,確定所述軟件的注冊信息是否正確。
      【文檔編號】G06F11/36GK104199778SQ201410470191
      【公開日】2014年12月10日 申請日期:2014年9月15日 優(yōu)先權(quán)日:2014年9月15日
      【發(fā)明者】田雨農(nóng), 劉欣, 蒼柏 申請人:大連樓蘭科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1