軟件破解的目的是
:::有些需要注冊的軟件,可是找不到注冊碼,將其破解之后,輸入任何注冊碼都會(huì)提示注冊成功。
!
我要破解的軟件:萬事通.exe
破解需要的軟件:偵殼
language.exe 脫殼AspackDie.exe
反編譯
W32Dasm黃金中文版 16進(jìn)制編輯器
UltraEdit.rar
在破解之前先復(fù)習(xí)一下基礎(chǔ)知識:
一.破解的等級
初級,修改程序,用ultraedit修改exe文件,稱暴力破解,簡稱爆破
中級,追出軟件的注冊碼
高級,寫出注冊機(jī)
二.用w32dasm破解的一般步驟:
1.看軟件的說明書,軟件注冊與不注冊在功能上有什么區(qū)別,如何注冊
2.運(yùn)行此軟件,試著輸入你的姓名和任意注冊碼去注冊,有什麼錯(cuò)誤
提示信息,將錯(cuò)誤提示信息記下來

3.偵測有無加殼(第一課).若加殼,脫殼(第二課)
4.pw32dasmgold反匯編
5.串式參考中找到錯(cuò)誤提示信息或可能是正確的提示信息雙擊鼠標(biāo)左鍵
6.pw32dasmgold主窗口中分析相應(yīng)匯編,找出關(guān)鍵跳轉(zhuǎn)和關(guān)鍵call
7.綠色光條停在關(guān)鍵跳轉(zhuǎn),在pw32dasmgold主窗口底部找到關(guān)鍵跳轉(zhuǎn)
的偏移地址(實(shí)際修改地址)
8.用ultraedit找到偏移地址(實(shí)際修改地址)修改機(jī)器碼,保存
殼的概念:版權(quán)信息需要保護(hù)起來,不想讓別人隨便改動(dòng),exe可執(zhí)行文件壓縮,最常見的加殼軟件ASPACK
,UPX,PEcompact
脫殼:拿到一個(gè)軟件,偵測它的殼,然后我們要把它的殼脫去,還原它的
本來面目.若它沒有加殼,就省事不用脫殼了.脫殼軟件
unaspack,caspr,upx,unpecompact,procdump
實(shí)際修改地址(偏移地址)和行地址(虛擬地址)
pw32dasmgold反匯編出來的代碼由三列組成
第一列
行地址(虛擬地址)
第二列 機(jī)器碼(最終修改時(shí)用ultraedit修改)
第三列
匯編指令
第一列第二列 第三列
:0041BE38
2B45F0 sub eax, dword ptr [ebp-10]
:0041BE3B 6A42
push 00000042
:0041BE3D 50
push eax
:0041BE3E FF75F4 push [ebp-0C]
:0041BE41 FF75F0 push [ebp-10]
:0041BE44 FF35A8AB4400 push
dword ptr [0044ABA8]
常見修改(機(jī)器碼)
74=>75 74=>90 74=>EB
75=>74
75=>90 75=>EB
jnz->nop
75->90(相應(yīng)的機(jī)器碼修改)
jnz -> jmp
75
-> EB(相應(yīng)的機(jī)器碼修改)
jnz -> jz
75->74 (正常) 0F 85 -> 0F
84
兩種不同情況的不同修改方法
1.修改為jmp
je(jne,jz,jnz) =>jmp相應(yīng)的機(jī)器碼EB
(出錯(cuò)信息向上找到的第一個(gè)跳轉(zhuǎn))jmp的作用是絕對跳,無條件跳,從而跳過下面的出錯(cuò)信息
2.修改為nop
je(jne,jz,jnz)
=>nop相應(yīng)的機(jī)器碼90 (正確信息向上找到的第一個(gè)跳轉(zhuǎn))
nop的作用是抹掉這個(gè)跳轉(zhuǎn),使這個(gè)跳轉(zhuǎn)無效,失去作用,從而使程序順利來到緊跟其后的正確信息處
好了,下面開始我們的破解之旅。。。。。。。。。。
1,偵殼:先打開偵殼
language.exe,選擇打開----找到要破解的"萬事通.exe":點(diǎn)確。language.exe便顯示出軟件的殼又是:Aspack,
2,脫殼:雙擊脫殼AspackDie.exe,出現(xiàn)一個(gè)對話框,選擇萬事通.exe,打開。點(diǎn)確定脫殼完成。在萬事通.exe:同目錄下生成一個(gè)unpacked.exe文件,這就是脫殼后的萬事通.exe
3,運(yùn)行脫殼后的unpacked.exe,點(diǎn)幫助----注冊,注冊名稱,注冊碼隨便添。。點(diǎn)注冊,提示:“注冊碼不符”,好了記住這5個(gè)字。關(guān)了它。
4,開始反匯編:打開
反編譯
W32Dasm黃金中文版,選擇反匯編----打開脫殼后的unpacked.exe,變開始加載。。返匯編之后。點(diǎn)擊上面的參考----串式參考,出現(xiàn)這個(gè)對話框。找到
“注冊碼不符”,雙擊它,匯編主程序便來到這里:圖1。(注意:正確注冊信息在錯(cuò)誤信息之下)關(guān)閉串式參考框??粗鞒绦颍?。從注冊碼錯(cuò)誤向上找到第一個(gè)跳轉(zhuǎn)(關(guān)鍵跳,除了jmp的其它跳:je,jne,jz,jnz),來到這里。(它上面的call叫關(guān)鍵call。),雙擊關(guān)鍵跳,看軟件最下面有一行字的后面:@Offset
000b6fe8H in File:unpacked.exe.其中@Offset
000b6fe8H就是偏移地址,記住000b6fe8(后面的h代表16進(jìn)制,不用管他),
5,開始修改軟件:打開16進(jìn)制編輯器
UltraEdit.rar,。打開脫殼后的unpacked.exe,直接按ctrl+g,出現(xiàn)對話框,輸入0xb6fe8(即偏移地址,不要前面的000)。點(diǎn)確定,來到圖2,說過正確注冊信息在錯(cuò)誤信息之下,所以這里將74改為eb。圖2.3。。將光標(biāo)移到74上直接輸入數(shù)字eb即可,其他地方不要?jiǎng)?。好了,改好只后左上角的文?--另存為unpacked222.exe。
6,關(guān)閉所以軟件,運(yùn)行另存的unpacked222.exe,點(diǎn)幫助---注冊,注冊名稱,注冊碼隨便添,點(diǎn)確定,提示注冊完成。?;氐杰浖缑婵纯?,幫助,注冊一項(xiàng)已經(jīng)沒有了。
7,破解全部完成。
愛華網(wǎng)



