十招教你學(xué)會(huì)破譯軟件我講了一些在學(xué)習(xí)破譯過程中經(jīng)常遇到的問題。我將根據(jù)我自己的經(jīng)驗(yàn)簡(jiǎn)單地談一談。這些問題對(duì)于初學(xué)者來說往往很難理解。根據(jù)我自己的學(xué)習(xí)經(jīng)驗(yàn),如果直接按照很多破解教程學(xué)習(xí)的話,大部分都會(huì)把自己搞糊涂,因?yàn)橛泻芏喔拍钜床皇呛芮宄?,要么你根本不知道是什么,所以我希望通過下面的討論給大家一些幫助: 1. 斷點(diǎn):所謂斷點(diǎn),就是程序中斷的地方。解密者對(duì)這個(gè)詞太熟悉了。那么什么是中斷呢?中斷是由于特殊事件(中斷事件)的發(fā)生,計(jì)算機(jī)暫停當(dāng)前任務(wù)(即程序),轉(zhuǎn)而執(zhí)行另一個(gè)任務(wù)(中斷服務(wù)程序),然后返回原來的任務(wù)繼續(xù)執(zhí)行。例如:你在上班,突然一個(gè)同學(xué)打電話告訴你簡(jiǎn)單五角星筆刷,他從外地坐火車過來,要你去火車站接他。然后你向老板請(qǐng)假,趕到火車站接同學(xué),安頓下來,然后你回公司繼續(xù)工作。這是一個(gè)中斷過程。我們解密的過程就是等待程序獲取我們輸入的注冊(cè)碼,并在準(zhǔn)備好與正確的注冊(cè)碼進(jìn)行比較時(shí)停止,然后我們分析程序找到正確的注冊(cè)碼。所以,
2. 空域:這是一個(gè)非常重要的概念,但初學(xué)者往往不理解。我們可以在各種破解文章中看到空域這個(gè)詞。如果你不知道程序的空域在哪里,那么你就無(wú)法進(jìn)入破解之門。也許你已經(jīng)破解了一些軟件,但這只是一只盲貓遇到一只死老鼠。所謂程序的空域,說白了就是程序本身的位置,也就是我們要破解的程序的程序代碼所在的位置??赡苣泷R上會(huì)問:我在程序運(yùn)行的時(shí)候設(shè)置了斷點(diǎn),為什么斷點(diǎn)后不在程序自己的空間?因?yàn)槊總€(gè)程序的編寫都沒有固定的模式,如果我們想切入程序時(shí)要中斷程序,我們必須獨(dú)立于特定程序設(shè)置斷點(diǎn),即我們?cè)O(shè)置的斷點(diǎn)應(yīng)該被每個(gè)程序使用。對(duì)某事。在DOS時(shí)代,基本上所有的程序都工作在中斷程序上,也就是說幾乎所有的DOS程序都會(huì)調(diào)用各種中斷來完成任務(wù)。但是在那個(gè)時(shí)代,程序沒有直接調(diào)用中斷的權(quán)利,系統(tǒng)提供了一個(gè)系統(tǒng)函數(shù)調(diào)用平臺(tái)(API),就像DOS程序是基于中斷程序的,程序是基于API來調(diào)用的處理系統(tǒng),讓各種函數(shù),所以下面軟件破解的斷點(diǎn)設(shè)置是基于API函數(shù)的,即程序調(diào)用一個(gè)API函數(shù)時(shí),中斷其正常運(yùn)行,然后解密被執(zhí)行。我們?cè)O(shè)置的斷點(diǎn)應(yīng)該被每個(gè)程序使用。對(duì)某事。在DOS時(shí)代,基本上所有的程序都工作在中斷程序上,也就是說幾乎所有的DOS程序都會(huì)調(diào)用各種中斷來完成任務(wù)。但是在那個(gè)時(shí)代,程序沒有直接調(diào)用中斷的權(quán)利,系統(tǒng)提供了一個(gè)系統(tǒng)函數(shù)調(diào)用平臺(tái)(API),就像DOS程序是基于中斷程序的,程序是基于API來調(diào)用的處理系統(tǒng),讓各種函數(shù),所以下面軟件破解的斷點(diǎn)設(shè)置是基于API函數(shù)的,即程序調(diào)用一個(gè)API函數(shù)時(shí),中斷其正常運(yùn)行,然后解密被執(zhí)行。我們?cè)O(shè)置的斷點(diǎn)應(yīng)該被每個(gè)程序使用。對(duì)某事。在DOS時(shí)代,基本上所有的程序都工作在中斷程序上,也就是說幾乎所有的DOS程序都會(huì)調(diào)用各種中斷來完成任務(wù)。但是在那個(gè)時(shí)代,程序沒有直接調(diào)用中斷的權(quán)利,系統(tǒng)提供了一個(gè)系統(tǒng)函數(shù)調(diào)用平臺(tái)(API)LS-PrePost(前置后置處理器),就像DOS程序是基于中斷程序的,程序是基于API來調(diào)用的處理系統(tǒng),讓各種函數(shù),所以下面軟件破解的斷點(diǎn)設(shè)置是基于API函數(shù)的,即程序調(diào)用一個(gè)API函數(shù)時(shí),中斷其正常運(yùn)行,然后解密被執(zhí)行。幾乎所有的 DOS 程序都會(huì)調(diào)用各種中斷來完成任務(wù)。但是在那個(gè)時(shí)代,程序沒有直接調(diào)用中斷的權(quán)利,系統(tǒng)提供了一個(gè)系統(tǒng)函數(shù)調(diào)用平臺(tái)(API),就像DOS程序是基于中斷程序的,程序是基于API來調(diào)用的處理系統(tǒng),讓各種函數(shù),所以下面軟件破解的斷點(diǎn)設(shè)置是基于API函數(shù)的,即程序調(diào)用一個(gè)API函數(shù)時(shí),中斷其正常運(yùn)行,然后解密被執(zhí)行。幾乎所有的 DOS 程序都會(huì)調(diào)用各種中斷來完成任務(wù)。但是在那個(gè)時(shí)代,程序沒有直接調(diào)用中斷的權(quán)利,系統(tǒng)提供了一個(gè)系統(tǒng)函數(shù)調(diào)用平臺(tái)(API),就像DOS程序是基于中斷程序的,程序是基于API來調(diào)用的處理系統(tǒng),讓各種函數(shù),所以下面軟件破解的斷點(diǎn)設(shè)置是基于API函數(shù)的,即程序調(diào)用一個(gè)API函數(shù)時(shí),中斷其正常運(yùn)行,然后解密被執(zhí)行。
比如在:bpx(獲取對(duì)話框文本)中設(shè)置如下斷點(diǎn),當(dāng)我們要破解的程序被調(diào)用讀取輸入數(shù)據(jù)時(shí),立即被攔截,這樣破解程序就停留在程序區(qū),而它就是在我們自己管理的系統(tǒng)區(qū)域。如果我們擅自更改這部分程序代碼,那將是一場(chǎng)災(zāi)難!因此,我們需要從系統(tǒng)區(qū)域(即程序的空域)返回被破解程序所在的地方,才能破解程序。至于怎么看程序的空域,請(qǐng)看上圖。想一想:對(duì)于每個(gè)程序調(diào)用的程序段,我們可以在那里找到什么有用的東西嗎?(如何加密取決于程序本身,而不是調(diào)用系統(tǒng)函數(shù)?。?3. API:簡(jiǎn)寫,中文稱為應(yīng)用程序編程接口,是系統(tǒng)定義函數(shù)的大集合,它提供了訪問操作系統(tǒng)特性的方法。API 包含數(shù)百個(gè)由應(yīng)用程序調(diào)用的函數(shù)。這些函數(shù)執(zhí)行所有必要的與操作系統(tǒng)相關(guān)的操作,例如內(nèi)存分配、輸出到屏幕和創(chuàng)建窗口。用戶的程序通過API接口進(jìn)行通信,無(wú)論是什么應(yīng)用程序的底層最終都是通過調(diào)用各種AP??I函數(shù)來實(shí)現(xiàn)各種功能。例如內(nèi)存分配、輸出到屏幕和創(chuàng)建窗口。用戶的程序通過API接口進(jìn)行通信,無(wú)論是什么應(yīng)用程序的底層最終都是通過調(diào)用各種AP??I函數(shù)來實(shí)現(xiàn)各種功能。例如內(nèi)存分配、輸出到屏幕和創(chuàng)建窗口。用戶的程序通過API接口進(jìn)行通信,無(wú)論是什么應(yīng)用程序的底層最終都是通過調(diào)用各種AP??I函數(shù)來實(shí)現(xiàn)各種功能。
通常API有兩種基本形式:Win16和Win32。Win16 是用于 3.1 的 API 的原始 16 位版本;Win32 是適用于 95/98/NT/ME/2000 的 API 的當(dāng)前 32 位版本。Win32 包括 Win16,是 Win16 的超集。大多數(shù)函數(shù)具有相同的名稱和用法。16 位 API 函數(shù)和 32 位 API 函數(shù)之間的區(qū)別是最后一個(gè)字母。比如我們?cè)O(shè)置了這樣的斷點(diǎn):bpx、bpx、bpx,它們是16位API函數(shù),又是32位API函數(shù),表示函數(shù)使用單字節(jié)表示函數(shù)使用雙字節(jié)。現(xiàn)在我們?cè)谄平庵谐S玫腤in32單字節(jié)API函數(shù),都是類似的函數(shù),另外兩個(gè)(Win16 API和Win32雙字節(jié)API函數(shù))比較少見。Win32 API函數(shù)包含在動(dòng)態(tài)鏈接庫(kù)(Link掃碼賺錢軟件破解版,簡(jiǎn)稱DLLs)中,
因?yàn)槿绻覀儾贿@樣做,就無(wú)法攔截系統(tǒng) Win32 API 函數(shù)調(diào)用。4.關(guān)于程序中是否存在注冊(cè)碼:在破解過程中,我們會(huì)在程序中找到輸入的注冊(cè)碼與正確的注冊(cè)碼進(jìn)行比對(duì)的地方,然后通過以下方式找到正確的注冊(cè)碼跟蹤和分析程序。代碼。但是正確的注冊(cè)碼在程序中通常以兩種形式存在:顯式和隱式。對(duì)于顯式注冊(cè)碼,我們可以直接在程序所在的內(nèi)存中看到。比如可以直接在數(shù)據(jù)窗口中看到“”之類的注冊(cè)碼(這里隨便寫),就更容易破解注冊(cè)碼顯式存在的軟件;但是,< @軟件 不要我們不會(huì)直接將我們輸入的注冊(cè)碼與正確的注冊(cè)碼進(jìn)行比較。比如可以將注冊(cè)碼轉(zhuǎn)換成整數(shù),或者將注冊(cè)碼拆解,然后將不同地方的每個(gè)注冊(cè)碼一一對(duì)比。,或者對(duì)我們輸入的注冊(cè)碼進(jìn)行改造,然后用專門的程序進(jìn)行驗(yàn)證,以此類推。簡(jiǎn)而言之,應(yīng)用程序會(huì)使用各種復(fù)雜的操作來避免直接比較注冊(cè)碼。對(duì)于這樣的程序,我們通常要努力仔細(xì)地跟蹤和分析每個(gè)程序功能,找到加密算法,然后進(jìn)行破解。當(dāng)然,這需要一定的8086匯編編程技巧和很大的耐心和精力。5. 關(guān)于軟件的破解方法:
所謂完整破解主要是針對(duì)需要輸入注冊(cè)碼或者密碼等的軟件,如果我們可以通過跟蹤程序找到正確的注冊(cè)碼,就會(huì)通過注冊(cè)功能正常注冊(cè)軟件 本身的軟件,這樣的裂縫稱為完全裂縫;但是如果有的軟件本身不提供注冊(cè)功能,只提供試用(DEMO)放射元素筆刷,或者無(wú)法通過軟件本身進(jìn)行注冊(cè)(比如需要另外獲取專門的注冊(cè)程序,通過注冊(cè)等),或者軟件本身的加密技術(shù)比較復(fù)雜,破解者的能力、精力和時(shí)間有限,無(wú)法直接獲得正確的注冊(cè)碼,這時(shí)候我們就需要修改軟件本身的程序代碼,也就是人為的改變軟件的運(yùn)行方向,這樣的破解叫做暴力破解。6.關(guān)于破解教程中程序代碼的地址:破解教程中會(huì)包含部分程序代碼,幫助講解程序的分析方法,如以下程序代碼:00 EBX [ !] 0167:JMP。關(guān)于如何設(shè)置斷點(diǎn)的問題:正確、正確地設(shè)置斷點(diǎn)對(duì)于快速有效的解密非常重要。良好的斷點(diǎn)設(shè)置可以讓我們快速找到關(guān)鍵的程序段,而不合適的斷點(diǎn)會(huì)導(dǎo)致解密時(shí)不必要的努力。消費(fèi),甚至程序的運(yùn)行,根本無(wú)法攔截。但很難說何時(shí)使用哪個(gè)斷點(diǎn)更合適。需要用經(jīng)驗(yàn)來積累。一般來說,bpx 是一個(gè)通用斷點(diǎn),對(duì)大多數(shù) 軟件 注冊(cè)代碼方法都很有用。初學(xué)者不妨多嘗試。試試這個(gè)斷點(diǎn)。
對(duì)于那些不需要注冊(cè)碼就需要暴力破解的軟件,通常我們應(yīng)該攔截對(duì)話框(如bpx)和消息框(如bpx(A))等。不管是什么類型的軟件,當(dāng)我們?cè)O(shè)置的斷點(diǎn)無(wú)效時(shí),試試bpx。這個(gè)斷點(diǎn)的作用是攔截任意鍵的動(dòng)作。一些常用的斷點(diǎn)設(shè)置請(qǐng)參考《破解常用斷點(diǎn)設(shè)置》一文。另外,在破解注冊(cè)碼時(shí),通常需要輸入用戶名和注冊(cè)碼。一般來說,用戶名和密碼可以隨意輸入,但是根據(jù)我自己的經(jīng)驗(yàn),很多軟件會(huì)一點(diǎn)一點(diǎn)的處理注冊(cè)碼。如果輸入這串?dāng)?shù)字,那么我們將無(wú)法知道“78”是哪個(gè)“ 因?yàn)閮?nèi)存中可能有很多字符串,所以我們無(wú)法知道我們要破解的程序使用的是哪一個(gè)。所以我們應(yīng)該選擇一個(gè)不容易和內(nèi)存數(shù)據(jù)一樣的注冊(cè)碼,比如對(duì)應(yīng)的搜索命令是:S 30:0 L 。
當(dāng)然,以上只是我個(gè)人的習(xí)慣。具體的輸入形式可以根據(jù)自己的愛好和習(xí)慣來確定,不必拘泥于某種固定模式。8.關(guān)于如何追蹤程序:初學(xué)者在開始學(xué)習(xí)解密時(shí)往往不知道如何追蹤程序,面對(duì)一長(zhǎng)串程序時(shí)如何找到注冊(cè)碼比對(duì)的地方代碼不堪重負(fù)。通常軟件的程序會(huì)使用一個(gè)子程序(即CALL ********)來驗(yàn)證我們輸入的注冊(cè)碼是否正確。將輸入的注冊(cè)碼和正確的注冊(cè)碼放入寄存器,然后調(diào)用驗(yàn)證子程序進(jìn)行判斷,返回結(jié)果。應(yīng)用程序根據(jù)子程序返回的結(jié)果判斷注冊(cè)是否成功。這樣的程序通常有以下形式: **** :******** MOV EAX,[********] (或 PUSH EAX 等) ****:*** ***** MOV EDX,[**** ****](或 PUSH EDX 等) ****:******** CALL ******** *** *:******** TEST EAX, EAX (或TEST AL, AL, 或無(wú)此句等) ****:******** JNZ ******* *(或JZ********等)表格)EAX和EDX指向的內(nèi)存區(qū)域就是我們輸入的注冊(cè)碼和正確的注冊(cè)碼。這里的寄存器EAX和EDX是隨意寫的,也可以是ECX、EBX、EDI、ESI等。******** TEST EAX, EAX (或TEST AL, AL, 或不帶此句等) ****:******** JNZ ******** (或JZ ********等)表格)EAX和EDX指向的內(nèi)存區(qū)域就是我們輸入的注冊(cè)碼和正確的注冊(cè)碼。這里的寄存器EAX和EDX是隨意寫的,也可以是ECX、EBX、EDI、ESI等。******** TEST EAX, EAX (或TEST AL, AL, 或不帶此句等) ****:******** JNZ ******** (或JZ ********等)表格)EAX和EDX指向的內(nèi)存區(qū)域就是我們輸入的注冊(cè)碼和正確的注冊(cè)碼。這里的寄存器EAX和EDX是隨意寫的,也可以是ECX、EBX、EDI、ESI等。
對(duì)于帶有隱式注冊(cè)碼的程序,雖然不能直接看到正確的注冊(cè)碼,但通常是先將輸入的注冊(cè)碼地址放入某個(gè)寄存器,然后調(diào)用子程序進(jìn)行校驗(yàn)。破解時(shí)需要進(jìn)入子程序。分析配準(zhǔn)算法??傊?dāng)我們看到一個(gè)子程序(調(diào)用********)后跟一個(gè)跳轉(zhuǎn)指令(JNZ ********或JZ ********)時(shí),我們應(yīng)該警惕,使用 D EAX(或 EBX、ECX、EDX、EDI、ESI...等)查看寄存器指向的內(nèi)存區(qū)域隱藏了什么。有一件事要提醒大家:當(dāng)你在程序中看到下面這個(gè)函數(shù)的時(shí)候,要注意一下,就是這個(gè)API函數(shù)的作用是把輸入的文本轉(zhuǎn)換成整數(shù),所以這類程序不會(huì)顯示注冊(cè)碼。由于注冊(cè)碼轉(zhuǎn)換為整數(shù),程序通常使用CMP ECX、EDX類型的指令來驗(yàn)證注冊(cè)碼的正確性,其中ECX和EDX存儲(chǔ)輸入的注冊(cè)碼和正確的注冊(cè)碼。整數(shù)形式,此時(shí)可以看到它的十進(jìn)制形式,也就是我們輸入的,有?edx和?ecx。9.關(guān)于軟件的卸載:我們?cè)谑褂靡恍┸浖臅r(shí)候經(jīng)常會(huì)遇到一個(gè)問題,就是即使把原來的程序刪掉重裝了共享軟件 ,程序仍然無(wú)法使用,仍然提醒您試用期已過,請(qǐng)注冊(cè);或者你已經(jīng)破解了某個(gè)軟件,但還想繼續(xù)研究,
在這種情況下,原因其實(shí)很簡(jiǎn)單,因?yàn)槌绦蛟谙到y(tǒng)注冊(cè)表中保存了注冊(cè)或過期信息,所以單純重裝軟件是沒有用的。解決方法是自己刪除注冊(cè)表中的相關(guān)信息,但是由于注冊(cè)表是系統(tǒng)工作的基礎(chǔ),如果不小心很可能會(huì)損壞它并導(dǎo)致系統(tǒng)異常掃碼賺錢軟件破解版,所以如果你不是很熟悉使用注冊(cè)表,您應(yīng)該在進(jìn)行更改之前備份注冊(cè)表。無(wú)論是修改還是備份注冊(cè)表,都可以使用“”下的“注冊(cè)表管理工具”。一種方法是在“開始->運(yùn)行”下輸入“”啟動(dòng)它,也可以直接點(diǎn)擊“C:\\.exe”“運(yùn)行。大多數(shù)應(yīng)用程序軟件
10.關(guān)于破解練習(xí)題:學(xué)習(xí)破解需要大量的練習(xí)。對(duì)于破解目標(biāo)的選擇,初學(xué)者不要針對(duì)大而有名的軟件,因?yàn)檫@些軟件通常加密比較復(fù)雜,不容易破解。應(yīng)該選擇一些名氣不大、比較早的分享軟件來練習(xí),因?yàn)榧用鼙容^簡(jiǎn)單軟件有助于初學(xué)者快速掌握破解和破解的思路。技能。至于功法的來源,來源廣泛。您可以從 上 下載,也可以在市場(chǎng)上購(gòu)買一些共享的 軟件 CD。這里程序中的代碼地址為0167,其代碼段的值(即0167)可能根據(jù)不同的計(jì)算機(jī)不同,