国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

一步一步教你加密解密技術——軟件保護技術(1)(1)
2006-10-30   

第6章 軟件保護技術

第一節 常見保護技巧

1、序列號方式

(1)序列號保護機制

數學算法一項都是密碼加密的核心,但在一般的軟件加密中,它似乎并不太為人們關心,因為大多數時候軟件加密本身實現的都是一種編程的技巧。但近幾年來隨著序列號加密程序的普及,數學算法在軟件加密中的比重似乎是越來越大了。
  我們先來看看在網絡上大行其道的序列號加密的工作原理。當用戶從網絡上下載某個shareware——共享軟件后,一般都有使用時間上的限制,當過了共享軟件的試用期后,你必須到這個軟件的公司去注冊后方能繼續使用。注冊過程一般是用戶把自己的私人信息(一般主要指名字)連同信用卡號碼告訴給軟件公司,軟件公司會根據用戶的信息計算出一個序列碼,在用戶得到這個序列碼后,按照注冊需要的步驟在軟件中輸入注冊信息和注冊碼,其注冊信息的合法性由軟件驗證通過后,軟件就會取消掉本身的各種限制,這種加密實現起來比較簡單,不需要額外的成本,用戶購買也非常方便,在互聯網上的軟件80%都是以這種方式來保護的。
  我們注意到軟件驗證序列號的合法性過程,其實就是驗證用戶名和序列號之間的換算關系是否正確的過程。其驗證最基本的有兩種,一種是按用戶輸入的姓名來生成注冊碼,再同用戶輸入的注冊碼比較,公式表示如下:
                        序列號 = F(用戶名)
  但這種方法等于在用戶軟件中再現了軟件公司生成注冊碼的過程,實際上是非常不安全的,不論其換算過程多么復雜,解密者只需把你的換算過程從程序中提取出來就可以編制一個通用的注冊程序。
  另外一種是通過注冊碼來驗證用戶名的正確性,公式表示如下:
                    用戶名稱 = F逆(序列號) (如ACDSEE,小樓注)
  這其實是軟件公司注冊碼計算過程的反算法,如果正向算法與反向算法不是對稱算法的話,對于解密者來說,的確有些困難,但這種算法相當不好設計。
  于是有人考慮到一下的算法:
                F1(用戶名稱) = F2(序列號)
  F1、F2是兩種完全不同的的算法,但用戶名通過F1算法的計算出的特征字等于序列號通過F2算法計算出的特征字,這種算法在設計上比較簡單,保密性相對以上兩種算法也要好的多。如果能夠把F1、F2算法設計成不可逆算法的話,保密性相當的好;可一旦解密者找到其中之一的反算法的話,這種算法就不安全了。一元算法的設計看來再如何努力也很難有太大的突破,那么二元呢?
              特定值 = F(用戶名,序列號)
  這個算法看上去相當不錯,用戶名稱與序列號之間的關系不再那么清晰了,但同時也失去了用戶名于序列號的一一對應關系,軟件開發者必須自己維護用戶名稱與序列號之間的唯一性,但這似乎不是難以辦到的事,建個數據庫就好了。當然你也可以根據這一思路把用戶名稱和序列號分為幾個部分來構造多元的算法。
  特定值 = F(用戶名1,用戶名2,...序列號1,序列號2...)
  現有的序列號加密算法大多是軟件開發者自行設計的,大部分相當簡單。而且有些算法作者雖然下了很大的功夫,效果卻往往得不到它所希望的結果。其實現在有很多現成的加密算法可以用,如RSADES,MD4,MD5,只不過這些算法是為了加密密文或密碼用的,于序列號加密多少有些不同。我在這里試舉一例,希望有拋磚引玉的作用:
1、在軟件程序中有一段加密過的密文S
2、密鑰 = F(用戶名、序列號)  用上面的二元算法得到密鑰
3、明文D = F-DES(密文S、密鑰) 用得到的密鑰來解密密文得到明文D
4、CRC = F-CRC(明文D)      對得到的明文應用各種CRC統計
5、檢查CRC是否正確。最好多設計幾種CRC算法,檢查多個CRC結果是否都正確
  用這種方法,在沒有一個已知正確的序列號情況下是永遠推算不出正確的序列號的。

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

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

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

2)Hmemcpy函數(俗稱萬能斷點)
函數Hmemcpy是Windows9x系統的內部函數,位于KERNEL32.DLL中,它的作用是將內存中的一塊數據拷貝到另一個地方。由于Windows9x系統頻繁使用該函數處理各種字串,因此用它作為斷點很實用,它是Windows9x平臺最常用的斷點。在Windows NT/2K中沒有這個斷點,因為其內核和Windows9x完全不同。
3)S命令
由于S命令忽略不在內存中的頁面,因此你可以使用32位平面地址數據段描述符30h在整個4GB(0~FFFFFFFFh )空間查找,一般用在Windows9x下面。具體步驟為:先輸入姓名或假的序列號(如: 78787878),按Ctrl+D切換到SoftICE下,下搜索命令:
s 30:0 L ffffffff '78787878'
會搜索出地址:ss:ssssssss(這些地址可能不止一個),然后用bpm斷點監視搜索到的假注冊碼,跟蹤一下程序如何處理輸入的序列號,就有可能找到正確的序列號。

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

共4頁: 1 [2] [3] [4] 下一頁

熱詞搜索:

上一篇:一步一步教你加密解密技術——函數、資源與注冊表(1)
下一篇:一步一步教你加密解密技術——軟件保護技術(2)(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
亚洲综合小说图片| 久久久另类综合| 成人午夜av电影| 久久99精品国产麻豆不卡| 日韩午夜激情电影| 国产精品色婷婷久久58| 美女在线视频一区| 欧美伊人久久久久久久久影院| 精品国产精品网麻豆系列| 亚洲欧洲制服丝袜| 国产91精品久久久久久久网曝门| 欧美一区二区视频在线观看2020| 亚洲久本草在线中文字幕| 国产精品 欧美精品| 日韩天堂在线观看| 亚洲成av人影院| 日本丰满少妇一区二区三区| 国产午夜精品美女毛片视频| 麻豆精品新av中文字幕| 欧美日韩国产影片| 亚洲男女一区二区三区| av一本久道久久综合久久鬼色| 精品国产乱码久久| 精品一区免费av| 555www色欧美视频| 婷婷综合五月天| 精品视频一区三区九区| 亚洲综合在线观看视频| 91蜜桃免费观看视频| 国产精品乱码久久久久久| 国产 欧美在线| 国产精品另类一区| 91在线视频网址| 亚洲品质自拍视频| 在线看不卡av| 性做久久久久久免费观看| 欧美午夜电影在线播放| 亚洲福利视频一区| 欧美一区二区三级| 精品一区二区国语对白| 精品国产露脸精彩对白| 国产剧情av麻豆香蕉精品| 极品少妇一区二区三区精品视频| 久久成人免费网站| 欧美图片一区二区三区| 久久久久久黄色| 天堂精品中文字幕在线| 成人激情动漫在线观看| 日韩精品一区二区三区视频播放 | 有码一区二区三区| 韩国女主播成人在线| 91麻豆福利精品推荐| 久久久亚洲午夜电影| 五月天一区二区| 一本一本大道香蕉久在线精品 | 欧美亚洲一区三区| 中文一区一区三区高中清不卡| 婷婷激情综合网| 99久久国产综合精品女不卡 | 精品一区二区三区视频| 日本福利一区二区| 亚洲天堂久久久久久久| 成人免费视频国产在线观看| 精品国产青草久久久久福利| 日本欧美在线观看| 欧美日本韩国一区| 亚洲成人tv网| 免费国产亚洲视频| 日韩一区二区三区在线视频| 丁香网亚洲国际| 日韩精品91亚洲二区在线观看| 久久久精品国产免费观看同学| 91久久奴性调教| 狠狠色狠狠色综合系列| 亚洲免费伊人电影| 精品久久久久久久一区二区蜜臀| 99re热视频这里只精品| 狠狠色狠狠色综合日日91app| 国产麻豆精品在线观看| 欧美精品一二三区| 日韩一区精品视频| 69久久99精品久久久久婷婷| 日韩vs国产vs欧美| 欧美一区日韩一区| 久久国产剧场电影| 久久婷婷国产综合国色天香| 国产高清精品在线| 欧美日韩精品综合在线| 久久综合综合久久综合| 国产做a爰片久久毛片| 亚洲欧美日韩久久精品| 精品成人一区二区三区| 6080亚洲精品一区二区| 99精品视频一区| 久久久久九九视频| www.爱久久.com| 亚洲成人在线观看视频| 精品日韩99亚洲| 国产 日韩 欧美大片| 亚洲欧美成aⅴ人在线观看| 欧美少妇bbb| 激情小说欧美图片| 日本一区二区三区国色天香| 99re6这里只有精品视频在线观看| 亚洲一区二区三区小说| 精品国产乱码久久久久久牛牛 | 国产精品素人视频| 欧美在线free| 精品一区二区三区不卡 | 91精品国产欧美一区二区成人| 麻豆免费精品视频| 国产精品看片你懂得| 91精品国产一区二区三区香蕉 | 欧美激情一区二区三区四区| 色综合天天综合网国产成人综合天 | 99精品黄色片免费大全| 天堂成人国产精品一区| 国产精品私人自拍| 欧美一级搡bbbb搡bbbb| 99视频精品免费视频| 久久国产三级精品| 亚洲午夜电影在线| 国产欧美日韩中文久久| 3d成人动漫网站| 91色|porny| 国产一区二区三区四区在线观看| 亚洲男女毛片无遮挡| 国产网站一区二区三区| 日韩午夜电影av| 欧洲精品中文字幕| 99视频国产精品| 国产精品性做久久久久久| 亚洲成人av一区二区| 中文字幕在线免费不卡| 日韩欧美中文一区| 欧美日韩国产片| 成人av在线影院| 国产一区二三区好的| 日本成人在线电影网| 亚洲国产精品一区二区久久 | 亚洲欧美日韩在线播放| 国产精品国产三级国产普通话蜜臀 | 欧美一区二区三区男人的天堂| av激情成人网| 99久久99久久精品免费观看| 成人免费福利片| 大桥未久av一区二区三区中文| 韩国成人在线视频| 麻豆91小视频| 狠狠色狠狠色综合系列| 精品一二三四区| 久久99精品视频| 韩国视频一区二区| 国产一区二区三区免费| 久久99国产精品麻豆| 麻豆精品视频在线观看免费| 青椒成人免费视频| 九九精品视频在线看| 精品亚洲成a人在线观看 | 国产a精品视频| 国产成人8x视频一区二区| 成人午夜激情在线| 99精品国产99久久久久久白柏| 91亚洲精品久久久蜜桃| 日本韩国一区二区三区| 欧美精选午夜久久久乱码6080| 欧美一区二区三区在线看| 精品卡一卡二卡三卡四在线| 国产午夜精品一区二区三区嫩草| 久久丝袜美腿综合| 成人欧美一区二区三区1314| 一区二区三区欧美日| 日产欧产美韩系列久久99| 国产在线看一区| 色综合天天综合狠狠| 欧美亚洲免费在线一区| 日韩一区二区电影网| 久久久不卡影院| 亚洲精品视频自拍| 日本vs亚洲vs韩国一区三区二区| 国产一区二区精品久久| 一本到高清视频免费精品| 欧美巨大另类极品videosbest| 日韩欧美自拍偷拍| 国产日韩欧美麻豆| 亚洲精品视频一区| 久久se精品一区二区| 91亚洲男人天堂| 日韩一级精品视频在线观看| 国产精品午夜在线观看| 亚洲高清免费观看高清完整版在线观看| 免费成人深夜小野草| 99精品热视频| 日韩久久久精品| 一区二区欧美精品| 国产成人亚洲综合色影视| 欧美日本在线看| 中文字幕日韩一区| 蜜臀99久久精品久久久久久软件| 成人黄色在线网站|