這集視頻的主要內(nèi)容是修改call的返回值,達(dá)到破解的目的。
- PEiD查殼
- 輸入假碼
打開程序绅喉,輸入用戶名和假碼,會提示“注冊失敗”的對話框叫乌。 - 尋找關(guān)鍵跳
用OD打開程序柴罐,搜索關(guān)鍵字“注冊”,關(guān)鍵字越簡單越好憨奸,結(jié)果找到了一個(gè)注冊成功的字符串革屠,雙擊過去看看。 - 觀看關(guān)鍵跳
找到關(guān)鍵跳后排宰,往上看似芝,會找到一個(gè)call。這個(gè)call的返回值決定了關(guān)鍵跳板甘,所以叫它關(guān)鍵call党瓮。
在這個(gè)關(guān)鍵call處下斷點(diǎn)。
自己想法
之所以不修改關(guān)鍵跳盐类,而是關(guān)鍵call寞奸。因?yàn)檫@個(gè)call可能會被調(diào)用多次,而修改一次這個(gè)call就可以把每次調(diào)用都修改了在跳。
- 運(yùn)行程序
程序會斷在關(guān)鍵call枪萄。然后F8,運(yùn)行到關(guān)鍵跳je猫妙。此時(shí)瓷翻,je執(zhí)行了,跳過了注冊成功的部分 - 修改關(guān)鍵call
再次運(yùn)行程序割坠,輸入用戶名和假碼齐帚,又會斷在了關(guān)鍵call。
在關(guān)鍵call的開頭彼哼,把匯編代碼改為:
mov eax, 1
retn
自己想法
為什么改為1对妄?因?yàn)樵诓襟E5中,eax為0的時(shí)候關(guān)鍵跳je執(zhí)行了沪羔。要想讓je不再執(zhí)行饥伊,就把eax改為1,從而進(jìn)入注冊成功的部分蔫饰。
- 保存破解后的exe
復(fù)制修改部分琅豆,右鍵——“復(fù)制到可執(zhí)行文件”——選擇,會彈出另一個(gè)窗口篓吁,再次右鍵——“保存文件”茫因。 - 運(yùn)行破解后的exe