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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

這樣的^_^,現(xiàn)在說起來都不好意思喔!)。所謂程序的領空,說白了就是程序自己的地方,也就是我們要破解的程序自己程序碼所處的位置。也許你馬上會問:我是在程序運行的時候設置的斷點,為什么中斷后不是在程序自己的空間呢?因為每個程序的編寫都沒有固定的模式,所以我們要在想要切入程序的時候中斷程序,就必須不依賴具體的程序設置斷點,也就是我們設置的斷點應該是每個程序都會用到的東西。在

DOS

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

DOS

程序都會去調(diào)用各種中斷來完成任務。但是到了

WINDOWS

時代,程序沒有權力直接調(diào)用中斷,WINDOWS

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

DOS

程序以中斷程序為基礎一樣,WINDOWS程序以API為基礎來實現(xiàn)和系統(tǒng)打交道,從而各種功能,所以

WINDWOS

下的軟件破解其斷點設置是以

API

函數(shù)為基礎的,即當程序調(diào)用某個

API

函數(shù)時中斷其正常運行,然后進行解

。

SOFTICE

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

GetDlgItemText的程序區(qū),而

GetDlgItemText

是處于

WINDWOS

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

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

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

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

API

接口同

WINDOWS

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

API

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

API

有兩中基本形式:Win16

Win32。Win16

是原來的、API

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

Windows3.1;Win32

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

32

位版本,用于

Windows95/98/NT/ME/2000。Win32

包括了

Win16,是

Win16

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

位的

API

函數(shù)和32

位的

API

函數(shù)的區(qū)別在于最后的一個字母,例如我們設置這樣的斷點: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ù))則比較少

。

Win32API

數(shù)

態(tài)

庫(DynamicLinkLibraries,簡稱

DLLs)中,即包含在

kernel32.dll、user32.dll、gdi32.dll

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

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

softice

中的原因。因為不這樣做的話,我們就無法攔截到系統(tǒng)Win32API

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

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

SOFTICE

的數(shù)

據(jù)窗口中看

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

8086

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

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

INTERNET

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

平狻?

6.關于破解教程中程序代碼地址問題:破解教程中都會放上一部分程序代碼以幫助講解程序的分析方法

,

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

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

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

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

00408033

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

bpxhmemcpy

這個萬能斷點對大多數(shù)碼方式的軟件都有用,初學者不妨多試試這個斷點(通常我也是用這

個斷點設置,

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

,

常我

們應

該攔

截對

話框

(

如bpxDialogBox)和消息框(如

bpxMessageBox(A))等。不論對于哪一類軟件,當我們設置的斷點均似若來生愿.想一起去看星星,那最亮一顆是我心大雨沒有效果時,可是試一下

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

WIN32API

函數(shù)來說的,假如有些時候直接攔截

WIN32API

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

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

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

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

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

等形式)

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

等形式)

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

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

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

其中

EAX

EDX

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

EAX

EDX

是隨意寫的,也可以是

ECX,EBX,EDI,ESI

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

轉(zhuǎn)

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

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

DEAX(或

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

溫馨提示

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

評論

0/150

提交評論