十招教你學(xué)會(huì)破解_第1頁(yè)
十招教你學(xué)會(huì)破解_第2頁(yè)
十招教你學(xué)會(huì)破解_第3頁(yè)
十招教你學(xué)會(huì)破解_第4頁(yè)
十招教你學(xué)會(huì)破解_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

這樣的^_^,現(xiàn)在說(shuō)起來(lái)都不好意思喔!)。所謂程序的領(lǐng)空,說(shuō)白了就是程序自己的地方,也就是我們要破解的程序自己程序碼所處的位置。也許你馬上會(huì)問(wèn):我是在程序運(yùn)行的時(shí)候設(shè)置的斷點(diǎn),為什么中斷后不是在程序自己的空間呢?因?yàn)槊總€(gè)程序的編寫(xiě)都沒(méi)有固定的模式,所以我們要在想要切入程序的時(shí)候中斷程序,就必須不依賴具體的程序設(shè)置斷點(diǎn),也就是我們?cè)O(shè)置的斷點(diǎn)應(yīng)該是每個(gè)程序都會(huì)用到的東西。在

DOS

時(shí)代,基本上所有的程序都是工作在中斷程序之上的,即幾乎所有的

DOS

程序都會(huì)去調(diào)用各種中斷來(lái)完成任務(wù)。但是到了

WINDOWS

時(shí)代,程序沒(méi)有權(quán)力直接調(diào)用中斷,WINDOWS

系統(tǒng)提供了一個(gè)系統(tǒng)功能調(diào)用平臺(tái)(API),就向

DOS

程序以中斷程序?yàn)榛A(chǔ)一樣,WINDOWS程序以API為基礎(chǔ)來(lái)實(shí)現(xiàn)和系統(tǒng)打交道,從而各種功能,所以

WINDWOS

下的軟件破解其斷點(diǎn)設(shè)置是以

API

函數(shù)為基礎(chǔ)的,即當(dāng)程序調(diào)用某個(gè)

API

函數(shù)時(shí)中斷其正常運(yùn)行,然后進(jìn)行解

SOFTICE

設(shè)

斷點(diǎn):bpxGetDlgItemText(獲取對(duì)話框文本),當(dāng)我們要破解的程序要讀取輸入的數(shù)據(jù)而調(diào)用GetDlgItemText時(shí),立即被SOFTICE攔截到,從而似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨被破解的程序停留在

GetDlgItemText的程序區(qū),而

GetDlgItemText

是處于

WINDWOS

自己管理的系統(tǒng)區(qū)域,如果我們擅自改掉這部分的程序代碼,那就大禍臨頭了^_^!所以我們要從系統(tǒng)區(qū)域返回到被破解程序自己的地方(即程序的領(lǐng)空),才能對(duì)程序進(jìn)行破解,至于怎樣看程序的領(lǐng)空請(qǐng)看前面的

SOFTICE。試想一下:對(duì)于每個(gè)程序都會(huì)調(diào)用的程序段,我們可能從那里找到什

么有用的東西嗎?(怎么樣去加密是程序自己決定的,而不是調(diào)用系統(tǒng)功能實(shí)現(xiàn)的!)3.API:即ApplicationProgrammingInterface

的簡(jiǎn)寫(xiě),中文叫應(yīng)用程序編程接口,是一個(gè)系統(tǒng)定義函數(shù)的大集合,它提供了訪問(wèn)操作系統(tǒng)特征的方法。API包含了幾百個(gè)應(yīng)用程序調(diào)用的函數(shù),這些函數(shù)執(zhí)行所有必須的與操作系統(tǒng)相關(guān)的操作,如內(nèi)存分配、向屏幕輸出和創(chuàng)建窗口等,用戶的程序通過(guò)調(diào)用

API

接口同

WINDOWS

打交道,無(wú)論什么樣的應(yīng)用程序,其底層最終都是通過(guò)調(diào)用各種

API

函數(shù)來(lái)實(shí)現(xiàn)各種功能的。通常

API

有兩中基本形式:Win16

Win32。Win16

是原來(lái)的、API

16似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨位版本,用于

Windows3.1;Win32

是現(xiàn)在的、API的

32

位版本,用于

Windows95/98/NT/ME/2000。Win32

包括了

Win16,是

Win16

的超集,大多數(shù)函數(shù)的名字、用法都是相同的。16

位的

API

函數(shù)和32

位的

API

函數(shù)的區(qū)別在于最后的一個(gè)字母,例如我們?cè)O(shè)置這樣的斷點(diǎn):bpxGetDlgItemText、bpxGetDlgItemTextA和

bpxGetDlgItemTextW,其中GetDlgItemText是16位API函數(shù),GetDlgItemTextA

GetDlgItemTextW

32位

API

函數(shù),而

GetDlgItemTextA

表示函數(shù)使用單字節(jié),GetDlgItemTextW

表示函數(shù)使用雙字節(jié)?,F(xiàn)在我們破解中常用到的是

Win32

單字節(jié)

API

函數(shù),就是和

GetDlgItemTextA類似的函數(shù),其它的兩種(Win16API

Win32

雙字節(jié)

API

函數(shù))則比較少

見(jiàn)

。

Win32API

數(shù)

動(dòng)

態(tài)

庫(kù)(DynamicLinkLibraries,簡(jiǎn)稱

DLLs)中,即包含在

kernel32.dll、user32.dll、gdi32.dll

和ctl32.dll中,這就是為什么我們要在softice中用exp=C:\windows\system\kernel32.dll

等似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨命令行將這些動(dòng)態(tài)鏈接庫(kù)導(dǎo)入

softice

中的原因。因?yàn)椴贿@樣做的話,我們就無(wú)法攔截到系統(tǒng)Win32API

函數(shù)調(diào)用了。

4.關(guān)于程序中碼的存在方式:破解過(guò)程中我們都會(huì)去找程序中將輸入的碼和正確的碼相比較的地方,然后通過(guò)對(duì)程序的跟蹤、分析找到正確的碼。但是正確的碼通常在程序中以兩種形態(tài)存在:顯式的和隱式的,對(duì)于顯式存在的碼,我們可以直接在程序所處的內(nèi)存中看到它,例如你可以直接在

SOFTICE

的數(shù)

據(jù)窗口中看

到類似"297500523"這樣存在的碼(這里是隨意寫(xiě)的),對(duì)于碼顯式存在的軟件破解起來(lái)比較容易;但是有些軟件的程序中并不會(huì)直接將我們輸入的碼和正確的碼進(jìn)行比較,比如有可能將碼換算成整數(shù)、或是將碼拆開(kāi),然后將每一位碼分開(kāi)在不同的地方逐一進(jìn)行比較,或者是將我們輸入的碼進(jìn)行某種變換,再用某個(gè)特殊的程序進(jìn)行驗(yàn)證等等??傊?應(yīng)用程序會(huì)采取各種不同的復(fù)雜運(yùn)算方式來(lái)回避直接的碼比較,對(duì)于這類程序,我們通常要下功夫去仔細(xì)跟蹤、分析每個(gè)程序功能,找到加密算法,然后才能破解它,當(dāng)然這需要一定的

8086

匯編編程功底和很大的耐心與精力。似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨

5.關(guān)于軟件的破解方式:本人將破解方式分為兩大類,即完全破解和暴力破解。所謂完全破解主要是針對(duì)那些需要輸入碼或密碼等軟件來(lái)說(shuō)的,如果我們能通過(guò)對(duì)程序的跟蹤找到正確的碼,通過(guò)軟件本身的功能正常了軟件,這樣的破解稱之為完全破解;但如果有些軟件本身沒(méi)有提供功能,只是提供試用(DEMO),或是不能通過(guò)軟件本身進(jìn)行(例如需要獲取另外一個(gè)專用的程序,通過(guò)

INTERNET

的等等),或者是軟件本身的加密技術(shù)比較復(fù)雜,軟件破解者的能力、精力、時(shí)間有限,不能直接得到正確的碼,此時(shí)我們需要去修改軟件本身的程序碼,即人為改淙砑?腦誦蟹較潁?庋?鈉平獬浦??┝ζ

平狻?

6.關(guān)于破解教程中程序代碼地址問(wèn)題:破解教程中都會(huì)放上一部分程序代碼以幫助講解程序的分析方法

,

例如下面的一段程序代碼:......0167:00408033PUSH000167:00408035PUSHEBX0167:00408036CALL[USER32!EndDialog]0167:0040803CJMP0040812C......似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨

在這里程序中的代碼地址如

0167:00408033,其代碼段的值(即

0167)有可能根據(jù)不同的電腦會(huì)有區(qū)別,不一定一模一樣,但偏移值應(yīng)該是固定的(即

00408033

不變),所以如果看到破解文章里的程序代碼的地址值和自己的電腦里不一樣,不要以為搞錯(cuò)地方了,只要你的程序代碼正確就不會(huì)有問(wèn)題。7.關(guān)于如何設(shè)置斷點(diǎn)的問(wèn)題:正確恰當(dāng)?shù)脑O(shè)置好斷點(diǎn)對(duì)于快速有效的解密非常重要,好的斷點(diǎn)設(shè)置可以使我們迅速找到關(guān)鍵的程序段,而不恰當(dāng)?shù)臄帱c(diǎn)則會(huì)對(duì)解密造成不必要的精力消耗,甚至根本就不能攔截到程序的運(yùn)行。但是具體什么時(shí)候用什么斷點(diǎn)比較合適很難說(shuō),這需要自己用經(jīng)驗(yàn)去累積,總的說(shuō)來(lái)

bpxhmemcpy

這個(gè)萬(wàn)能斷點(diǎn)對(duì)大多數(shù)碼方式的軟件都有用,初學(xué)者不妨多試試這個(gè)斷點(diǎn)(通常我也是用這

個(gè)斷點(diǎn)設(shè)置,

懶嘛^_^,哈哈。。。)。對(duì)于那些需要暴力破解的非碼方式的軟

,

常我

們應(yīng)

該攔

截對(duì)

話框

(

如bpxDialogBox)和消息框(如

bpxMessageBox(A))等。不論對(duì)于哪一類軟件,當(dāng)我們?cè)O(shè)置的斷點(diǎn)均似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨沒(méi)有效果時(shí),可是試一下

bpxlockmytask,這個(gè)斷點(diǎn)的作用是攔截任何一個(gè)按鍵的動(dòng)作,具體常用的一些斷點(diǎn)設(shè)置請(qǐng)參考"破解常用斷點(diǎn)設(shè)置"一文。另外,在碼的破解中通常需要輸入用戶名和碼,一般說(shuō)來(lái)用戶名和密碼都可以隨意輸入,但是根據(jù)我自己的經(jīng)驗(yàn),很多軟件對(duì)于碼都會(huì)逐位的進(jìn)行處理,假如輸入"78787878"這串?dāng)?shù)字,那么在跟蹤程序的時(shí)候我們就無(wú)法知道我們當(dāng)時(shí)所看到的"78"倒底是哪一個(gè)"78",所以我比較喜歡用"12345678"這樣的碼輸入方式,這樣的話就就能知道程序是在對(duì)碼的哪一位進(jìn)行運(yùn)算,同樣的對(duì)于那些需要輸入較長(zhǎng)序列號(hào)的軟件,輸入類似"12345-67890-ABCDEF"這樣的序列號(hào)較好。不過(guò)有一點(diǎn)大家需要特別的注意:上面講的碼輸入方式"12345678"是針對(duì)攔截

WIN32API

函數(shù)來(lái)說(shuō)的,假如有些時(shí)候直接攔截

WIN32API

函數(shù)難以找到程序的突破口,而要借助于"S"指令在內(nèi)存中尋找我們輸入的用戶名或碼時(shí),就最好不要采

用"12345678"作為碼,因?yàn)閮?nèi)存中很可能有許多的"12345678"字符串,這樣我們沒(méi)有辦法知道倒底我們要破解的程序使用的是哪一個(gè)"12345678",所以我們應(yīng)該選擇一個(gè)不易和內(nèi)存似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨數(shù)據(jù)相同的碼,比如:74747474(本人喜歡用,意思嘛:去死去死。。。哈哈哈^_^),對(duì)應(yīng)的搜索指令為:S30:0LFFFFFFFF&39;74747474&39;。當(dāng)然,以上只是我個(gè)人的習(xí)慣而已,具體用什么樣的輸入形式可以根據(jù)本人的愛(ài)好、習(xí)慣來(lái)定,不必拘泥于某一固定的模式。

8.關(guān)于如何跟蹤程序的問(wèn)題:初學(xué)者在開(kāi)始學(xué)習(xí)解密的時(shí)候往往不知道怎么樣去跟蹤程序,怎么樣找到碼比較的地方,當(dāng)面對(duì)長(zhǎng)長(zhǎng)的一堆程序代碼時(shí)顯得不知所措。通常軟件的程序內(nèi)部都會(huì)利用一個(gè)子程序(即

CALL********)去驗(yàn)證我們輸入的碼正確與否,對(duì)于碼顯式存在的程序,一般都會(huì)將所輸入的碼和正確的碼放進(jìn)寄存器,然后調(diào)用驗(yàn)證子程序進(jìn)行判斷,將結(jié)果返回,應(yīng)用程序根據(jù)子程序返回的結(jié)果決定是否成功,這樣的程序經(jīng)常具有如下的形式:或或

****:********MOVEAX,[********](PUSHEAX

等形式)

****:********MOVEDX,[********](PUSHEDX

等形式)

****:********CALL********似若來(lái)生愿.想一起去看星星,那最亮一顆是我心大雨****:********TESTEAX,EAX(或

TESTAL,AL,或是沒(méi)有這一句等形式)****:********JNZ********(或

JZ********等形式)

其中

EAX

EDX

指向的內(nèi)存區(qū)域就是我們輸入的碼和正確的碼,這里的寄存器

EAX

EDX

是隨意寫(xiě)的,也可以是

ECX,EBX,EDI,ESI

等等。對(duì)于碼隱式存在的程序,雖然不能直接看到正確的碼,但是通常也是先將所輸入的碼地址放進(jìn)某個(gè)寄存器,然后調(diào)用子程序去驗(yàn)證,破解時(shí)就需要進(jìn)入子程序去分析算法??傊?看到子程序(call********)

轉(zhuǎn)

令(JNZ********或

JZ********)的地方我們就應(yīng)該提高警惕,多用

DEAX(或

EBX、ECX、EDX、EDI、ESI...等)去看看寄存器指向的內(nèi)存區(qū)域藏著什

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論