Ollydbg使用教程学习总结(一)
解密系列之OD使用教程1
使用例子程序為Hello.exe
OD基本快捷鍵及功能
從系統DLL領空返回到程序領空,Alt+F9
通過OD將程序的標題“Hello world”改為“OD Class 01”
直接單步執行法
按F8單步執行,找到MessageBox傳參的地方,直接在數據窗口修改即可。如下圖:
解密系列之OD使用教程2
使用例子程序為TraceMe.exe
獲取編輯框輸入內容的API斷點法
1、在反匯編窗口中按下Ctrl+G,輸入GetDlgItemTextA,發現存在這個API函數,點擊OK,并按F2下斷點;
2、按F9運行程序,輸入用戶名和序列號,點check,程序斷下;
3、單步執行程序,共斷下兩次,依次用Ctrl+F9執行到返回,繼續向下執行,則可看到
004011D7 . 8D5424 4C lea edx,dword ptr ss:[esp+0x4C] 004011DB . 53 push ebx 004011DC . 8D8424 A00000>lea eax,dword ptr ss:[esp+0xA0] 004011E3 . 52 push edx 004011E4 . 50 push eax 004011E5 . E8 56010000 call TraceMe.00401340 ; 驗證程序 004011EA . 8B3D BC404000 mov edi,dword ptr ds:[<&USER32.GetDlgIte>; user32.GetDlgItem 004011F0 . 83C4 0C add esp,0xC 004011F3 . 85C0 test eax,eax 004011F5 . /74 37 je short TraceMe.0040122E00401340這個call就是驗證程序
爆破方法:
①將測試其返回值后的跳轉Nop掉;
②將test eax,eax改為mov al,1
右鍵=>復制到可執行文件=>選擇;右鍵=>備份=>保存數據到文件,命名為TraceMe1.exe,運行之,輸入用戶名和密碼,點check,提示成功。
此外,另一個讀取編輯框函數:GetWindowText;還可通過Ctrl+N打開應用程序的導入表,查看程序總共導入了哪些API函數。
解密系列之OD使用教程3
程序:reverseMe.exe
- EAX:擴展累加寄存器
- EBX:擴展基址寄存器
- ECX:擴展計數寄存器
- EDX:擴展數據寄存器
- ESI:擴展來源寄存器
- EDI:擴展目標寄存器
- EBP:擴展基址指針寄存器
- ESP:擴展堆棧指針寄存器
- EIP:擴展的指令指針寄存器
除了以下三個寄存器,其他我們都可以隨意使用:
- EBP:主要是用于棧和棧幀;
- ESP:指向當前進程的棧空間地址。
- EIP:總是指向下一條要被執行的指令。
call XXX;等價于 push eip; + jmp XXX;
真正需要關心的標志位只有三個,也就是cmp指令能修改的那三個:Z/O/C。
- Z標志位(0標志),這個標志位是最常用的,運算結果為0時候,Z標志位置1,否則置0。
- O標志位(溢出標志),在運行過程中,如操作數超出了機器能表示的范圍則稱為溢出,此時OF位置1,否則置0。
- C標志位(進位標志),記錄運算時從最高有效位產生的進位值。
①方法一:找到每次陷阱跳轉,并jmp跳過或者nop掉即可
②方法二:找到驗證算法,需要一個名為Keyfile.dat的驗證文件,其內容包含16個G即可。
總結
以上是生活随笔為你收集整理的Ollydbg使用教程学习总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复信号两种不同加噪方式的比较
- 下一篇: green安卓版下载(green安卓)