轉自:http://bbs.macd.cn/thread-654536-1-1.html
軟件破解的目的是:::有些需要注冊的軟件,可是找不到注冊碼,將其破解之后,輸入任何注冊碼都會提示注冊成功。
!
聲明:本人也只是一知半解,我們可以一起學習,但是不要給我出太難的題發一些大型軟件讓我破解,我怎么可能破的出來呢??此貼適合從來沒接觸過軟件破解或編程的同志學習
因為截圖制作圖示太費時間了,做個大貼要好幾個小時,才加4分,沒意思,本來想就此封筆,可是看兄弟們都這么熱情,忍不住再發一貼。昨晚夜班到現在還沒睡呢,所以偷點懶,大家麻煩一下到我上一個貼子:網絡添表破解教程看吧
下面開始今天的破解,相關軟件即圖示到我的這個帖子下載:
http://bbs.macd.cn/viewthread.ph ... ghlight=&page=1
我要破解的軟件:萬事通.exe
破解需要的軟件:偵殼 language.exe 脫殼AspackDie.exe
反編譯 W32Dasm黃金中文版 16進制編輯器 UltraEdit.rar
在破解之前先復習一下基礎知識:
一.破解的等級
初級,修改程序,用ultraedit修改exe文件,稱暴力破解,簡稱爆破
中級,追出軟件的注冊碼
高級,寫出注冊機
二.用w32dasm破解的一般步驟:
1.看軟件的說明書,軟件注冊與不注冊在功能上有什么區別,如何注冊
2.運行此軟件,試著輸入你的姓名和任意注冊碼去注冊,有什麼錯誤
提示信息,將錯誤提示信息記下來
3.偵測有無加殼(第一課).若加殼,脫殼(第二課)
4.pw32dasmgold反匯編
5.串式參考中找到錯誤提示信息或可能是正確的提示信息雙擊鼠標左鍵
6.pw32dasmgold主窗口中分析相應匯編,找出關鍵跳轉和關鍵call
7.綠色光條停在關鍵跳轉,在pw32dasmgold主窗口底部找到關鍵跳轉
的偏移地址(實際修改地址)
8.用ultraedit找到偏移地址(實際修改地址)修改機器碼,保存
殼的概念:版權信息需要保護起來,不想讓別人隨便改動,exe可執行文件壓縮,最常見的加殼軟件ASPACK ,UPX,PEcompact
脫殼:拿到一個軟件,偵測它的殼,然后我們要把它的殼脫去,還原它的
本來面目.若它沒有加殼,就省事不用脫殼了.脫殼軟件
unaspack,caspr,upx,unpecompact,procdump
實際修改地址(偏移地址)和行地址(虛擬地址)
pw32dasmgold反匯編出來的代碼由三列組成
第一列 行地址(虛擬地址)
第二列 機器碼(最終修改時用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]
常見修改(機器碼)
74=>75 74=>90 74=>EB
75=>74 75=>90 75=>EB
jnz->nop
75->90(相應的機器碼修改)
jnz -> jmp
75 -> EB(相應的機器碼修改)
jnz -> jz
75->74 (正常) 0F 85 -> 0F 84
兩種不同情況的不同修改方法
1.修改為jmp
je(jne,jz,jnz) =>jmp相應的機器碼EB (出錯信息向上找到的第一個跳轉)jmp的作用是絕對跳,無條件跳,從而跳過下面的出錯信息
2.修改為nop
je(jne,jz,jnz) =>nop相應的機器碼90 (正確信息向上找到的第一個跳轉) nop的作用是抹掉這個跳轉,使這個跳轉無效,失去作用,從而使程序順利來到緊跟其后的正確信息處
好了,下面開始我們的破解之旅。。。。。。。。。。
1,偵殼:先打開偵殼 language.exe,選擇打開----找到要破解的"萬事通.exe":點確。language.exe便顯示出軟件的殼又是:Aspack,
2,脫殼:雙擊脫殼AspackDie.exe,出現一個對話框,選擇萬事通.exe,打開。點確定脫殼完成。在萬事通.exe:同目錄下生成一個unpacked.exe文件,這就是脫殼后的萬事通.exe
3,運行脫殼后的unpacked.exe,點幫助----注冊,注冊名稱,注冊碼隨便添。。點注冊,提示:“注冊碼不符”,好了記住這5個字。關了它。
4,開始反匯編:打開 反編譯 W32Dasm黃金中文版,選擇反匯編----打開脫殼后的unpacked.exe,變開始加載。。返匯編之后。點擊上面的參考----串式參考,出現這個對話框。找到
“注冊碼不符”,雙擊它,匯編主程序便來到這里:圖1。(注意:正確注冊信息在錯誤信息之下)關閉串式參考框??粗鞒绦颍?。從注冊碼錯誤向上找到第一個跳轉(關鍵跳,除了jmp的其它跳:je,jne,jz,jnz),來到這里。(它上面的call叫關鍵call。),雙擊關鍵跳,看軟件最下面有一行字的后面:@Offset 000b6fe8H in File:unpacked.exe.其中@Offset 000b6fe8H就是偏移地址,記住000b6fe8(后面的h代表16進制,不用管他),
5,開始修改軟件:打開16進制編輯器 UltraEdit.rar,。打開脫殼后的unpacked.exe,直接按ctrl+g,出現對話框,輸入0xb6fe8(即偏移地址,不要前面的000)。點確定,來到圖2,說過正確注冊信息在錯誤信息之下,所以這里將74改為eb。圖2.3。。將光標移到74上直接輸入數字eb即可,其他地方不要動。好了,改好只后左上角的文件---另存為unpacked222.exe。
6,關閉所以軟件,運行另存的unpacked222.exe,點幫助---注冊,注冊名稱,注冊碼隨便添,點確定,提示注冊完成。?;氐杰浖缑婵纯矗瑤椭?,注冊一項已經沒有了。
7,破解全部完成。