日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ollydbg使用教程学习总结(五)

發布時間:2023/12/2 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ollydbg使用教程学习总结(五) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解密系列之OD使用教程17——inline patch

程序:ReverseMe. NAGs.exe
新內容:硬件斷點
用PEID打開,看到程序是用VC6.0寫的,用OD載入,按F9運行后,出現NAG窗口,在OD中按下暫停,再打開堆棧窗口

如上圖高亮行正是調用NAG窗口的call,雙擊來到反匯編窗口并下斷

重新運行程序,發現程序的3個窗口都是對話框,且都來自這個call,因此不能直接將該指令NOP掉。繼續往上瀏覽,發現有je跳轉語句,只要讓第1次和第3次跳轉實現,第2次跳轉不實現即可。

在數據段00445E80的位置定義個變量作為計數器,在這個字節下硬件寫入斷點進行測試,看程序在運行過程中有沒有改動該地址處的內容,發現程序并不會修改,可行。在該跳轉指令下斷,在00437D70地址處添加個書簽,方便來回查看。但此處直接用NonaWrite 1.2插件進行修改,打開插件,輸入

0x437D70: inc byte ptr [445E80] cmp byte ptr [445E80],2 jnz 004203BA lea ecx,dword ptr [esp+4C] jmp 42037F

然后點擊“匯編”按鈕即可修改完成。

再講該條指令修改如下

進行保存到文件即可。

解密系列之OD使用教程18

程序:Urlegal.exe
新工具:FishcOD、eXeScope.exe(可進行資源的修改)
首先安裝程序,再用eXeScope載入程序

得到退出時彈出的NAG窗口的模板名是103(0x07),由以下2個函數可知

HWND DialogBoxParam (HINSTANCE hlnstance, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROC IPDialogFunc, LPARAM dwlnitParam); HWND CreateDialogParam (HINSTANCE hlnstancem, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROCIpDialogFunc, LPARAM dwlniParam);

在OD里查找push 0x67

往上查看,這個過程并不是破解的關鍵,因為沒有關鍵跳轉,因此回溯到調用該過程的位置,由提示窗口

轉到調用處,查看

如上圖注釋所示,在關鍵call下斷并重新運行程序,跟進發現該過程非常短,猜測可能是程序驗證是否注冊的過程,在開始處下斷,重新運行程序;如果是的話,程序運行開始就會執行該過程以檢測是否注冊。

如猜測,程序運行后在此斷下,現在只需要將eax的值修改為1即可,但僅修改

00403E22 |. 8B40 2C mov eax,dword ptr ds:[eax+0x2C]

這條指令的話,將覆蓋掉后面的一條指令,因此可以直接同時修改2條指令

00403E1F |. 8B45 FC mov eax,[local.1] 00403E22 |. 8B40 2C mov eax,dword ptr ds:[eax+0x2C]

修改后保存到可執行文件,運行測試,發現注冊按鈕已經變成灰色,點擊關閉按鈕也不會彈出NAG窗口。

解密系列之OD使用教程19

程序:movgear.exe
運行程序,點關閉按鈕后,彈出NAG窗口,出現試用還剩30天等信息。同上一節課所講,用eXeScope載入程序,找到該NAG窗口的模板名為100(0x64),用OD載入,查找push 0x64指令。

在每個命令下斷,如上,運行程序并關閉后斷下的地方才是我們關注的地方,地址為00406725,刪掉其他斷點;往上瀏覽程序,發現有關鍵跳轉和call。

在該call和跳轉處下斷,重新運行程序并關閉,斷下,跟進

RegOpenKeyEx:打開注冊表的鍵值。

0043168A |. 8D5424 14 lea edx,dword ptr ss:[esp+0x14] LONG RegQueryValueEx(HKEY hKey, // handle of key to query LPTSTR lpszValueName, // address of name of value to query LPDWORD lpdwReserved, // reserved LPDWORD lpdwType, // address of buffer for value type LPBYTE lpbData, // address of data buffer LPDWORD lpcbData // address of data buffer size );

edx為倒數第2個參數,指向數據緩沖區。繼續往下瀏覽程序,發現在獲取了注冊表信息后,可能將用戶名和密碼壓棧,然后調用關鍵call進行檢測

最后,如果驗證失敗的話,會跳到過程的結尾

觀察程序,eax的值最終來源于ebx,因此可將該指令
mov eax,ebx修改為mov eax,1
但是經測試,這樣修改會覆蓋后面的指令,因此可修改為
mov al, 1即可爆破。

解密系列之OD使用教程20

程序:KeygenMe.exe
DialogBoxes類型常用APIs(通常在注冊界面獲取)

DialogBoxParamA GetDlgItem GetDlgItemInt GetDlgItemTextA GetWindowTextA GetWindowLong

該程序是一個注冊機程序,用的是GetDlgItemTextA來獲取輸入的文本,用OD載入,鍵入命令 bp GetDlgItemTextA下斷,輸入用戶名、密碼:Ontrd、1234567,點擊Check,在動態鏈接庫中斷下,再按下Alt+F9回到用戶領空。

待續。。。

總結

以上是生活随笔為你收集整理的Ollydbg使用教程学习总结(五)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。