• <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 經(jīng)典案例

    聯(lián)系方式

    公司名稱:昆山華航電子有限公司
    公司電話:0512-50139595
    公司郵箱:eric@kshuahang.com
    公司地址:江蘇省昆山市善浦西路

    您當(dāng)前的位置:首頁 > 技術(shù)中心 > 關(guān)于知識產(chǎn)權(quán)

    軟件保護技術(shù)--序列號方式


    (1)序列號保護機制   數(shù)學(xué)算法一項都是密碼加密的核心,但在一般的軟件加密中,它似乎并不太為人們關(guān)心,因為大多數(shù)候軟件加密本身實現(xiàn)的都是一種編程的技巧。但近幾年來隨著序列號加密程序的普及,數(shù)學(xué)算法在軟件加密中的比重似乎是越來越大了。
      我們先來看看在網(wǎng)絡(luò)上大行其道的序列號加密的工作原理。當(dāng)用戶從網(wǎng)絡(luò)上下載某個shareware――共享軟件后,一般都有使用時間上的限制,當(dāng)過了共享軟件的試用期后,你必須到這個軟件的公司去注冊后方能繼續(xù)使用。注冊過程一般是用戶把自己的私人信息(一般主要指名字)連同信用卡號碼告訴給軟件公司,軟件公司會根據(jù)用戶的信息計算出一個序列碼,在用戶得到這個序列碼后,按照注冊需要的步驟在軟件中輸入注冊信息和注冊碼,其注冊信息的合法性由軟件驗證通過后,軟件就會取消掉本身的各種限制,這種加密實現(xiàn)起來比較簡單,不需要額外的成本,用戶購買也非常方便,在互聯(lián)網(wǎng)上的軟件80%都是以這種方式來保護的。
      我們注意到軟件驗證序列號的合法性過程,其實就是驗證用戶名和序列號之間的換算關(guān)系是否正確的過程。其驗證最基本的有兩種,一種是按用戶輸入的姓名來生成注冊碼,再同用戶輸入的注冊碼比較,公式表示如下:
      序列號 = F(用戶名)
      但這種方法等于在用戶軟件中再現(xiàn)了軟件公司生成注冊碼的過程,實際上是非常不安全的,不論其換算過程多么復(fù)雜,解密者只需把你的換算過程從程序中提取出來就可以編制一個通用的注冊程序。

      另外一種是通過注冊碼來驗證用戶名的正確性,公式表示如下:
      用戶名稱 = F逆(序列號) (如ACDSEE,小樓注)
      這其實是軟件公司注冊碼計算過程的反算法,如果正向算法與反向算法不是對稱算法的話,對于解密者來說,的確有些困難,但這種算法相當(dāng)不好設(shè)計

      于是有人考慮到一下的算法:
      F1(用戶名稱) = F2(序列號)
      F1、F2是兩種完全不同的的算法,但用戶名通過F1算法的計算出的特征字等于序列號通過F2算法計算出的特征字,這種算法在設(shè)計上比較簡單,保密性相對以上兩種算法也要好的多。如果能夠把F1、F2算法設(shè)計成不可逆算法的話,保密性相當(dāng)?shù)暮茫豢梢坏┙饷苷哒业狡渲兄坏姆此惴ǖ脑挘@種算法就不安全了。一元算法的設(shè)計看來再如何努力也很難有太大的突破,那么二元呢?

      特定值 = F(用戶名,序列號)
      這個算法看上去相當(dāng)不錯,用戶名稱與序列號之間的關(guān)系不再那么清晰了,但同時也失去了用戶名于序列號的一一對應(yīng)關(guān)系,軟件開發(fā)者必須自己維護用戶名稱與序列號之間的唯一性,但這似乎不是難以辦到的事,建個數(shù)據(jù)庫就好了。當(dāng)然你也可以根據(jù)這一思路把用戶名稱和序列號分為幾個部分來構(gòu)造多元的算法。
      特定值 = F(用戶名1,用戶名2,...序列號1,序列號2...)

      現(xiàn)有的序列號加密算法大多是軟件開發(fā)者自行設(shè)計的,大部分相當(dāng)簡單。而且有些算法作者雖然下了很大的功夫,效果卻往往得不到它所希望的結(jié)果。其實現(xiàn)在有很多現(xiàn)成的加密算法可以用,如RSADES,MD4,MD5,只不過這些算法是為了加密密文或密碼用的,于序列號加密多少有些不同。我在這里試舉一例,希望有拋磚引玉的作用:
      1、在軟件程序中有一段加密過的密文S
      2、密鑰 = F(用戶名、序列號) 用上面的二元算法得到密鑰
      3、明文D = F-DES(密文S、密鑰) 用得到的密鑰來解密密文得到明文D
      4、CRC = F-CRC(明文D) 對得到的明文應(yīng)用各種CRC統(tǒng)計
      5、檢查CRC是否正確。最好多設(shè)計幾種CRC算法,檢查多個CRC結(jié)果是否都正確
      用這種方法,在沒有一個已知正確的序列號情況下是永遠(yuǎn)推算不出正確的序列號的。

    (2)如何攻擊序列號保護

      要找到序列號,或者修改掉判斷序列號之后的跳轉(zhuǎn)指令,最重要的是要利用各種工具定位判斷序列號的代碼段。這些常用的API包括GetDlgItemInt, GetDlgItemTextA, GetTabbedTextExtentA, GetWindowTextA, Hmemcpy (僅僅Windows 9x), lstrcmp, lstrlen, memcpy (限于NT/2000)。

    1)數(shù)據(jù)約束性的秘訣
      這個概念是+ORC提出的,只限于用明文比較注冊碼的那種保護方式。在大多數(shù)序列號保護的程序中,那個真正的、正確的注冊碼或密碼(Password)會于某個時刻出現(xiàn)在內(nèi)存中,當(dāng)然它出現(xiàn)的位置是不定的,但多數(shù)情況下它會在一個范圍之內(nèi),即存放用戶輸入序列號的內(nèi)存地址±0X90字節(jié)的地方。這是由于加密者所用工具內(nèi)部的一個Windows數(shù)據(jù)傳輸?shù)募s束條件決定的。

    2)Hmemcpy函數(shù)(俗稱萬能斷點)
      函數(shù)Hmemcpy是Windows9x系統(tǒng)的內(nèi)部函數(shù),位于KERNEL32.DLL中,它的作用是將內(nèi)存中的一塊數(shù)據(jù)拷貝到另一個地方。由于Windows9x系統(tǒng)頻繁使用該函數(shù)處理各種字串,因此用它作為斷點很實用,它是Windows9x平臺最常用的斷點。在Windows NT/2K中沒有這個斷點,因為其內(nèi)核和Windows9x完全不同。

    3)S命令
      由于S命令忽略不在內(nèi)存中的頁面,因此你可以使用32位平面地址數(shù)據(jù)段描述符30h在整個4GB(0~FFFFFFFFh )空間查找,一般用在Windows9x下面。具體步驟為:先輸入姓名或假的序列號(如: 78787878),按Ctrl+D切換到SoftICE下,下搜索命令:
      s 30:0 L ffffffff '78787878'
      會搜索出地址:ss:ssssssss(這些地址可能不止一個),然后用bpm斷點監(jiān)視搜索到的假注冊碼,跟蹤一下程序如何處理輸入的序列號,就有可能找到正確的序列號。

    4)利用消息斷點
      在處理字串方面可以利用消息斷點WM_GETTEXT和WM_COMMAND。前者用來讀取某個控件中的文本,比如拷貝編輯窗口中的序列號到程序提供的一個緩沖區(qū)里;后者則是用來通知某個控件的父窗口的,比如當(dāng)輸入序列號之后點擊OK按鈕,則該按鈕的父窗口將收到一個WM_COMMAND消息,以表明該按鈕被點擊。
      BMSG xxxx WM_GETTEXT (攔截序列號)
      BMSG xxxx WM_COMMAND (攔截OK按鈕)
      可以用SoftICE提供的HWND命令獲得窗口句柄的信息,也可以利用Visual Studio中的Spy++實用工具得到相應(yīng)窗口的句柄值,然后用BMSG設(shè)斷點攔截。例:
      BMSG 0129 WM_COMMAND


    上一篇:受全球經(jīng)濟波動影響 半導(dǎo)體工廠08年開支縮減17%
    下一篇軟件保護技術(shù)--警告(NAG)窗口
    溫馨提示:
    凡在本公司進行電路板克隆業(yè)務(wù)的客戶,必須有合法的PCB設(shè)計版權(quán)來源聲明,以保護原創(chuàng)PCB設(shè)計版權(quán)所有者的合法權(quán)益;
    【 字體: 】【打印此頁】 【返回】【頂部】【關(guān)閉

    主站蜘蛛池模板: 亚洲国产午夜精品理论片| 国产精品国产三级国产在线观看| 四虎精品免费永久免费视频| 久久久午夜精品福利内容| 韩国电影吃奶喷奶水的电影| 日韩无人区电影| 国产大陆亚洲精品国产| 久久天天躁夜夜躁狠狠躁2022 | 扒开双腿猛进湿润18p| 国产乱码精品一区二区三区四川人 | 夜夜春宵伴娇全文阅读| 人妻一本久道久久综合久久鬼色| а√最新版在线天堂| 男人桶女人j的视频在线观看| 女主调教贱女m视频| 人人妻人人澡人人爽人人精品| a级毛片免费观看网站| 波多野たの结衣老人绝伦| 国产色无码精品视频免费| 亚洲国产综合在线| 亚洲av无码一区二区三区鸳鸯影院| 在线国产你懂的| 日韩高清第一页| 国产亚洲福利一区二区免费看| 丰满人妻一区二区三区视频53| 美女大量吞精在线观看456 | 国产小视频免费观看| 久久久久亚洲av无码专区蜜芽| 耻辱の女潜入搜查官正在播放| 强奷乱码中文字幕| 亚洲视频在线精品| 伊人一伊人色综合网| 日韩人妻一区二区三区蜜桃视频| 国产一级黄色毛片| 一个人免费播放在线视频看片| 波多野结衣在线观看中文字幕| 国产精品免费一区二区三区四区| 久久精品国产乱子伦| 美国式禁忌3在线影片| 在线观看欧洲成人免费视频| 亚洲国产日韩a在线播放|