【脫文標題】遊戲修改軟體fpe在破解中的妙用--------------用FPE確定關鍵地址後爆破之
【脫文作者】 doa007
【作者郵箱】 doc007@163.com
【使用工具】 Ollydbg,
【脫殼平臺】 WinXP
【軟體簡介】 MP3是一種能將音樂檔案加以壓縮,而且將音質保持在接近CD水準的一種壓縮格式,並廣 泛使用在計算機與各種家電音響產品上。不過你知道嗎?雖然MP3音樂檔案已經比原先的未壓縮檔案小很 多了,在使用DietMP3軟體後,它還是有繼續壓縮的潛力喔!
【軟 件】DietMP3 V4.03 4M
【加殼方式】 無
遊戲修改軟體fpe在破解中的妙用--------------用FPE確定關鍵地址後爆破之
正如我在上篇中說的一樣,<<破解有時並不需要很高的技術>>,這一篇破文也是講如何將複雜的問題簡單化的,開始之前先來看一下weiyi75的一個段子吧
硬體斷點(跟蹤關鍵標誌的斷點)
硬體斷點是Olldbg所特有的斷點,他不會因為重新執行就銷燬,只要不刪除。跟蹤這個程式時就有效。但他在98系統下會不起作用。 硬體斷點是根據關鍵標誌回逆到關鍵程式碼的好方法。下中斷的方法和記憶體斷點的方法相同,有三個方式〔硬體訪問〕、〔硬體寫入〕、〔硬體執行〕。一般用前2個。他也同樣有記憶體斷點的特性,所以可以用記憶體斷點的地方也可以用硬體斷點。這裡介紹利用他來跟蹤註冊標誌的使用方法,一般軟體的註冊都用到了標誌比較。即在記憶體地址中有一個標誌,在判斷是不是註冊時比較標誌的值。不同的值表示不同的註冊狀態。這個標誌的地址一般比較固定。根據這個特點可以下硬體斷點來跟蹤標誌位是什麼地方被標誌的。 方法:在轉存視窗中選擇到標誌存放的記憶體地址處,然後選擇標誌值。下〔硬體寫入〕中斷(根據標誌的位元組下不同的長度)。重新執行程式你會發現Ollydbg會不斷的中斷在這個標誌的記憶體地址處。在功能選單的〔除錯〕選項下選擇〔硬體斷點〕就開啟了硬體斷點的視窗,在這個視窗中選擇〔跟蹤〕,這時轉存視窗就會來到被下中斷的記憶體地址處。執行程式跟蹤記憶體地址中的值就會知道被賦標誌的程式碼,跟蹤到計算的核心。〔硬體訪問〕的使用可以知道程式在執行時多少地方用到了這個註冊標誌。對於破解複雜效驗的程式十分的有效。
今天我用來演示的是一個可以把mp3檔案壓得更小的軟體DietMP3.exe,本來我是沒空聽mp3的 但我的美眉老師(一個醫術高出我很多倍的同事)一個人在外租房住,實在很可憐,我自然要拿出點風度出來邀到家裡來玩,順便下點歌到mp3中回去聽,128M的東西嘛下了20多曲就快M了,我就選中了這個軟體壓一壓,媽的真少興,沒註冊就只能壓15個檔案,挑了幾個大點的壓了壓,慶幸的是美眉老師也很高興且還有5次沒有用完,呵呵
好了閒話少說我們開始吧,用OD載入,發現是一個VB寫的,要在模組中下斷了,由於我水平次了點,填寫註冊資訊後下斷,斷是斷開了卻沒跟到對自己有用的東西,突然發現這個破軟體的介面上居然有個計數器,每壓完一個檔案計數器減1,想起前些日子玩過新仙劍遊戲,是可見資料就用遊戲修改吧,把放這個資料的地方找出來,fpe2000的使用我想不用多說了吧,經過三次變化之後就只有一個地址了4B0054H,把這個地方改成”15”,回到遊戲,不回到軟體中看到計算器又是15了,一陣狂喜又能用了,呵呵,把這個地址記下來以後要用.先把15改為零發現軟體可執行卻不能用來壓縮,關了它,這時用OD載入先用F9讓它執行起來,作好壓歌的準備,在記憶體視窗4B0054處下個硬體訪問斷點,用byte就行了,點開始壓縮,第一次中斷在
0049E356 . 85C0 TEST EAX,EAX
0049E358 0F85 A2000000 JNZ DietMP3.0049E400 就是這裡
0049E35E . 66:830D 9C004>OR WORD PTR DS:[4B009C],0FFFF
就是這裡經典的比較後跳轉,還等什麼修改之,改為jmp最好,若改成jz如果還有一次沒完就過不去了,如果是第一次用這個軟體,那麼你做的破解版就不能用了,明白了嗎?按F9第二次斷在瞭如下地方
0049FB94 /0F8E A4020000 JLE DietMP3.0049FE3E 這裡改為jmp
0049FB9A |0FBF05 9C004B>MOVSX EAX,WORD PTR DS:[4B009C]
修改後的樣子0049FB94 /E9 A5020000 JMP DietMP3.0049FE3E
0049FB99 |90 NOP
0049FB9A |0FBF05 9C004B>MOVSX EAX,WORD PTR DS:[4B009C]
第三次
00498EEF |. 85C0 TEST EAX,EAX
00498EF1 0F85 2B010000 JNZ DietMP3.00499022
00498EF7 |. 833D 10004B00>CMP DWORD PTR DS:[4B0010],0
修改後如下
00498EEF |. 85C0 TEST EAX,EAX
00498EF1 E9 2C010000 JMP DietMP3.00499022
00498EF6 90 NOP
00498EF7 |. 833D 10004B00>CMP DWORD PTR DS:[4B0010],0
經過這三次後,發現壓縮成功了,做個破解版吧
在od中右鍵 複製到可執行檔案\全部修正 在出現的下一個介面上選”儲存檔案”就行了.執行一下試試,計數器為0檔案壓縮也成功了 哇塞成為無限次版的了,爽.
感謝網友Lenus推薦weiyi75的文章給我.
Doa007於2004.10.20凌晨3:00