




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/ZHCA 007-2019染發(fā)化妝品眼刺激性試驗(yàn)體外測(cè)試方法牛角膜渾濁和滲透性試驗(yàn)
- 2025年運(yùn)營(yíng)管理與戰(zhàn)略課程考試試卷及答案
- 2025年新興市場(chǎng)研究專業(yè)畢業(yè)考試真題及答案
- 2025年生態(tài)環(huán)境保護(hù)與管理考試的考核試題及答案
- 2025年體育賽事管理與策劃考試卷及答案
- 2025年電子商務(wù)與法律考試卷及答案
- 2025年互聯(lián)網(wǎng)營(yíng)銷職業(yè)資格考試試題及答案
- 2025年可再生能源技術(shù)及應(yīng)用學(xué)習(xí)考試試題及答案
- T/TMAC 085-2024燃煤發(fā)電機(jī)組智能控制與靈活性運(yùn)行技術(shù)導(dǎo)則
- T/TMAC 030-2020無(wú)砟軌道智能鋪設(shè)技術(shù)要求
- 2024版國(guó)開(kāi)電大??啤冬F(xiàn)代教育思想》在線形考(形考任務(wù)一至二)+終結(jié)性考試試題
- 沉香項(xiàng)目市場(chǎng)營(yíng)銷方案
- 辦公樓用電改造施工方案
- 安全風(fēng)險(xiǎn)四色分布圖圖例
- 物理才是最好的人生指南
- 來(lái)華留學(xué)生對(duì)中國(guó)文化認(rèn)同感的探究
- 軟件系統(tǒng)操作手冊(cè)模板
- 物流專線合作協(xié)議書(shū)
- 華興報(bào)告生物育種:前沿生物技術(shù)改造下的新農(nóng)業(yè)
- 四川玖誼源粒子科技有限公司回旋加速器生產(chǎn)及同位素應(yīng)用研發(fā)基地環(huán)境影響報(bào)告表
- 樓頂發(fā)光字制作安裝合同
評(píng)論
0/150
提交評(píng)論