欧洲一区二区三区免费视频,欧美精品少妇一区二区三区,精品亚洲免费视频,色婷婷精品久久二区二区蜜臀av

經(jīng)典案例

聯(lián)系方式

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

您當前的位置:首頁 > 技術(shù)資源 > 芯片解密

我眼中的加密與解密

我接觸加密與解密已經(jīng)5個年頭了,在看雪論壇中也潛水了兩個春秋,卻一直不敢說自己的水平怎么樣.面對這個標題,更是心有千言卻難以下筆.我只能說說我個人接觸加密解密的經(jīng)歷以及自己對加密解密的一些淺陋的看法,如果有不妥之處,還請各位高人多多指教. (一)我和破解

我是從游戲中熟悉電腦的,上了高中,我終于有了一臺自己的電腦.而我迷上破解是從借同學(xué)的一張光盤開始的.那張光盤上有一個目錄叫"高手區(qū)",里面除了有一些CrackMe的破解動畫外,還有看雪論壇當初編寫的那本"Crack Tutorial"(名字不一樣,內(nèi)容相同),現(xiàn)在看起來那些東西似乎顯得過于低級和簡單了,可不管怎樣畢竟是它們引領(lǐng)著我走進了破解的大門,更確切的說,是走進了計算機科學(xué)的世界(為什么?后面會說).
那本Crack Tutorial以及一些其他的破解動畫確實給我了很多學(xué)習(xí)的東西,例如我印象最深的是幾句程序判斷注冊的"經(jīng)典組合":
1)cmp xxx,yyy
jz/jnz zzz
2)call xxx
test/or eax,eax
jz/jnz yyy
.........
現(xiàn)在你對這些可能不屑一顧,但以那個時候的加密解密水平來衡量的話,這已經(jīng)是很不錯的了(不信可以翻翻2001年的看雪論壇精華)
可是,當時我才高一,對計算機理論知之甚少,很快破解的學(xué)習(xí)便進行不下去了,主要是很多指令都不懂,例如對于一條簡單的lea指令助記符,當時我就是不懂諸如lea ebx,DWORD PTR [ebp + 4]之類的指令到底是什么含義,雖然現(xiàn)在看起來這些指令是那么的簡單,不僅如此,類似于消息循環(huán)等Windows程序的基本內(nèi)容我都一無所知.所以,高二的時候我便下定決心要學(xué)習(xí)匯編語言.我利用去大學(xué)參加競賽的機會買了一本x86匯編語言的教材,從此便開始了匯編語言的學(xué)習(xí).
學(xué)習(xí)匯編語言并不是一帆風(fēng)順的.不少人視匯編為畏途,認為匯編是最難學(xué)習(xí)的語言之一,更何況我是自學(xué).在高中繁忙的學(xué)習(xí)中,如果每天能抽出半個小時看匯編就已經(jīng)很不錯了,更要命的是有問題找不到人問,一切只能靠自己解決(有人問:看雪論壇呢?回答:當時我上不了網(wǎng)),x86的基本架構(gòu),指令尋址方式等我都花了很長一段時間才弄明白.這段艱辛的路程至今仍然記憶猶新.
到了大學(xué),我有幸進入了軟件工程系,得以繼續(xù)學(xué)習(xí)我感興趣的計算機.我利用1年的時間我自學(xué)完了Windows編程(靠的就是羅云彬的那本<<Windows環(huán)境下32位匯編語言程序設(shè)計>>),過程同樣是曲折的,記得我有一次編寫多線程程序時,程序怎么也不能正常結(jié)束,那時我花了3天的時間才弄明白原因:書上內(nèi)容有誤......
我買了<<加密與解密>>又一次開始學(xué)習(xí),也是正式開始學(xué)習(xí)破解,到這個時候,我發(fā)現(xiàn),書上講的那些例子是那么簡單易懂,高中第一次看加密解密時的疑惑這時全部無影無蹤了.看雪論壇上不少的精華文章都能毫無困難的讀懂.我深深感到當初選擇學(xué)習(xí)匯編語言是正確的,正是因為那時的選擇才使得現(xiàn)在學(xué)習(xí)破解才如此的順利.
如今我仍然在學(xué)習(xí)<<加密與解密>>,但同時有有了新的挑戰(zhàn):學(xué)習(xí)保護模式Windows驅(qū)動程序的編寫.

我對看雪論壇的認識也是從那本Crack Tutorial開始的,看雪論壇是我兩個每次上網(wǎng)必去的論壇之一(另一個是霏凡論壇),不過當時論壇很不穩(wěn)定,經(jīng)常上不去,而且系統(tǒng)換來換去的(以后才知道是遭到攻擊了),后來我家安裝了包月的寬帶,我才真正成為看雪論壇的常客,并在04年7月份注冊了現(xiàn)在的帳號.看雪論壇確實是很好的論壇,國內(nèi)沒有其他破解相關(guān)論壇的質(zhì)量有它高的.正是由于大家的無私奉獻才造就了今日的看雪論壇.翻開看雪論壇精華集,對比一下2001年的精華1和2005年的精華7,感慨萬千啊.

(二)為什么要學(xué)破解
記得當初初識破解時,我覺得破解很神秘高深,那些大牛破解了軟件還不忘在軟件上留個名,多么風(fēng)光啊.正是由于這種動機才促使我努力去成為一名破解高手.如今的我當然還不能稱為高手,可是我知道,我在成為高手的路上又走了一步.此時破解對于我來說已經(jīng)不只是簡單爆破幾個玩具程序,它包含了更多更廣的內(nèi)容,如逆向工程.在學(xué)習(xí)破解的過程中,我不斷學(xué)習(xí)到很多相關(guān)的東西,如SEH,PE文件的結(jié)構(gòu)等知識.我曾經(jīng)計劃用10年的時間成為破解高手,現(xiàn)在已經(jīng)過去了接近5年,不管到時候怎么樣,我的目標不會變.10年不行就15年.因為破解已經(jīng)成為我的興趣,一種探索計算機世界的興趣.所以說,當初的那些簡易的Crack教程引領(lǐng)我走進了計算機世界的大門,不僅僅是破解的.

(三)我對加密解密的一些個人看法
此部分內(nèi)容如有不妥之處還請各位指正

1.關(guān)于學(xué)習(xí)加密與解密
各位從我的經(jīng)歷可以看出來,當初我是對計算機一無所知,到現(xiàn)在初步掌握了破解技術(shù),其間走過了不少彎路.關(guān)于如何學(xué)習(xí)加密與解密我就不多說了,看雪大哥有文章,置頂貼也有相關(guān)的說明(http://bbs.pediy.com//showthread.php?s=&threadid=769),我只是結(jié)合自己的經(jīng)歷來說明
----關(guān)于對"初學(xué)者"的一些提醒
學(xué)習(xí)加密解密的有兩類人,其一對計算機已經(jīng)有一些了解,例如懂匯編語言,懂計算機體系結(jié)構(gòu)等等,只是不知道如何把知識應(yīng)用到加密解密這一方面.這類人是真正的初學(xué)者.他們學(xué)習(xí)加密解密會比較容易,花的精力也會比較少.其二則是對計算機知之甚少,例如那些不懂匯編語言的,也就是和我當初一樣.恕我直言,這類人其實不能稱為"初學(xué)者",充其量只是"門外漢"而已,論壇上很多初級問題正是他們提出的(如某某指令的含義是什么等,這可以去查Intel的手冊的).他們?nèi)绻脒_到一種比較高的層次,就必須花很多的時間和精力.但問題是,你有這么多的時間和精力嗎?我當初從一無所知到現(xiàn)在花了5年的時間----我當時才高二,時間和精力都有.對于第二類人,我不懷疑你們的主觀因素,相信其中有不少是愿意學(xué)習(xí)破解的,對破解真正感興趣的,也是有耐心愿意學(xué)習(xí)的.但是我很懷疑你們的客觀條件----時間和精力.學(xué)習(xí)破解基本上相當于學(xué)習(xí)大學(xué)兩年的課程還多(如果你想成為高手).所以,如果你們想學(xué)好破解,想成為高手,首先要想想是否有充足的時間和精力.如果沒有就不要浪費太多了,能玩玩幾個簡單的程序就可以了.

2.關(guān)于軟件加密問題

有句話說:理論上任何軟件只要能完整運行所有功能一次即可PJ.其實更準確的說法是這樣:
(在Cracker不增加功能模塊的前提下)任何一個軟件,如果所有功能都能夠在本地機器上運行至少一次,那么這個軟件經(jīng)過修改一定可以無限制的在本地機器上運行所有功能.(可以被PJ)
證明:在軟件運行每一個功能模塊時抽出此功能模塊代碼,然后將它們組合就成為PJ后的軟件了(注意是理論上的證明)
逆命題也對:
如果一個軟件可以被PJ,那么它的所有功能一定可以在本地機器上運行至少一次
證明:假設(shè)某軟件已經(jīng)被PJ,但是它的某功能不能在本地機器上運行,也就是說,從軟件中得不到這個模塊的代碼,那么PJ后的代碼中是如何有這一段代碼的呢?注意前提:Cracker不增加功能模塊
因此,一個軟件可以被PJ 等價于 它的所有功能可以在本地機器上運行至少一次

也就是說,

一個軟件不能被PJ 等價于 它不可能在本地機器運行所有功能一次

要打造(理論上)不能被破解的軟件,這是一條基本原則
例如,Demo版的軟件沒有某個功能模塊代碼,那如果Cracker不自己寫代碼是無論如何也不可能PJ成全功能的軟件的.

在第6期的看雪論壇精華中有篇文章<<保護軟件著作權(quán)要注意避免的思路誤區(qū)>>,作者是廖紅旭,作者一針見血的指出當前軟件保護的關(guān)鍵失誤是"簡單地通過條件判斷語句來“甄別”合法用戶",就是說,把整個保護的"終審權(quán)"交給一個簡單的條件判斷語句.應(yīng)當說,作者是非常正確的,但是他提出的方案(“不論前述認證結(jié)果正確與否,都將該認證結(jié)果再次作為算子,經(jīng)過必要運算后對發(fā)行前已受保護的軟件核心功能代碼進行解碼”,<<加密與解密>>第二版P224的思想類似)也不能徹底解決這個問題,因為一旦Cracker得到了一個可用的Key,那么這個軟件就相當于可以執(zhí)行所有功能一次,也就是可以PJ,作者自己也承認這一點.

計算機=硬件+軟件+網(wǎng)絡(luò),所以,加密和解密也必須體現(xiàn)這個特征.

考慮等價條件:它不可能在本地機器運行所有功能一次,怎樣才能滿足這個條件?思路如下:
a.本地機器上不能存在所有功能代碼.
這是Demo版軟件的特征,那么,正式版應(yīng)當如何處理呢?
b.在非本地機器上存在本地機器缺失的代碼,且這段代碼不能在本地機器上執(zhí)行(否則就相當于本地機器有所有代碼)
如果認為這"非本地機器"是硬件,那么就有狗加密方案,如果認為是網(wǎng)絡(luò)服務(wù)器,那么就有CS模式方案

寫得很亂,畢竟是自己的原創(chuàng),不妥之處還請各位多多批評指正


上一篇:小商品軟件的加密方法
下一篇輕易破解壓縮包密碼
溫馨提示:
凡在本公司進行電路板克隆業(yè)務(wù)的客戶,必須有合法的PCB設(shè)計版權(quán)來源聲明,以保護原創(chuàng)PCB設(shè)計版權(quán)所有者的合法權(quán)益;
【 字體: 】【打印此頁】 【返回】【頂部】【關(guān)閉

[我眼中的加密與解密]^相關(guān)文章


主站蜘蛛池模板: 祁门县| 高密市| 兴隆县| 朝阳市| 云浮市| 丰都县| 涟水县| 临泉县| 黔南| 洞头县| 兴山县| 保亭| 安吉县| 和硕县| 晋中市| 泽州县| 麟游县| 梅州市| 清新县| 灵山县| 广州市| 法库县| 手游| 赤水市| 庆元县| 宁波市| 和静县| 佳木斯市| 宜春市| 策勒县| 平潭县| 河东区| 延吉市| 绵竹市| 达日县| 彩票| 凤翔县| 禄丰县| 武定县| 枝江市| 榆中县|