逆向---02.je & jmp & jnz 、OD調試
阿新 • • 發佈:2018-02-05
str 匯編 .com blog 程序 一課 bsp lock 分享圖片
OD調試基礎:
nop是刪除跳轉,你別問我,我看不見也聽不見
je是條件跳轉,滿足條件就跳轉,不滿足就不跳轉
jnz也是條件跳轉,不滿足條件就跳轉
jmp是無條件跳轉,管你啥呢,先跳再說
(姑且可以這麽理解)
快捷鍵:F2下斷點、F8單步執行,F9運行,重新載入:點 << 按鍵 (在工具欄下方的圖標欄中)
EIP是32位機的指令寄存器,Z標誌位1~真,0~假(案例中1代表je跳轉實現,0代表je跳轉不實現)
OD寄存器修改或者標誌位修改是不能保存修改的,一般用於調試(類似於VS調試時自己臨時改變量的值,程序重新運行該怎麽滴還怎麽滴)
舉個應用的栗子:
文章中有太基礎部分如果看不懂就看上一篇
這是一個老版本的視頻播放軟件(有加密功能),先找關鍵詞,Wrong (最好大小寫一樣)
字符串搜索後雙擊打開
發現上面有一個跳轉,下個斷點看看F2(HEX數據窗口對應行處雙擊也可以),然後運行F9
擴充,斷點有沒有實現不是直接看,得調試的過程中看(紅色跳轉線代表跳轉實現,灰色的代表跳轉沒實現)
先Z標誌位改下看看(雙擊就會取反0》1)Z標誌位1~真,0~假(案例中1代表je跳轉實現,0代表je跳轉不實現)
F9繼續運行,發現可以打開播放了,這時候還是偽破解(OD寄存器修改或者標誌位修改是不能保存修改的)
進入正常破解流程,je是條件跳轉,想要無條件跳就來個jmp,雙擊反匯編窗口的這行,把je改成jmp(有些人是 je X0040....,在X前加個0,0x代表十六進制,工具問題可能會把0幹掉了)
保存一下,過程從簡,不明白的看第一課
KO了
逆向---02.je & jmp & jnz 、OD調試