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


    
歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

解密系列之OD使用教程4

程序1:RegisterMe.exe
把程序跑一遍之后我們發現程序有兩個NAG,一個是在程序界面啟動前出現,另一個是在程序關閉后出現的。

去掉第一個Nag方法如下:

①jmp跳過

②全部nop掉

③令hOwner參數為1,push 1,使其父句柄無意義

④更改入口地址為401024

雙擊這一行

將下面一行中AddressOfEntryPoint的值改為1024,如下圖

具體在數據窗口中定位到4000E8,按下空格鍵進行修改

同理,可去掉第二個NAG窗口。

解密系列之OD使用教程5

程序2:RegisterMe.Ops.exe
用OD加載,提示


打開內存頁,看到PE頭的大小為0x5000,雙擊進行查看;找到以下幾個地方,發現數值大得離譜,修改正確即可

解密系列之OD使用教程6

安裝程序:pixtopianbook107.exe
安裝后,打開軟件,標題欄顯示UNREGISTERED VERSION,About對話框顯示Unregistered version v1.07

發現只能建立3個組,每個組只能添加4個聯系人。

點擊Add后,彈出對話框,返回OD按下暫停,按Alt+F9執行到用戶代碼,此時左上角提示“返回到用戶”,回到軟件按下確定,程序斷下。

直接jmp掉,保存文件,即可突破聯系人數只能為4的限制。
同理,跳過增加組的限制,如下

在內存窗口,按下Ctrl+B查找字符串,在Unicode字符查找框中輸入UNREGISTERED VERSION點擊查找,即可在4D4830地址處找到該字符串,進行修改;繼續搜索,在4D570E、4E4BE8處找到,修改并保存;在ASCII字符查找框中輸入this is an…,在48F974處找到,修改成This is an registered version,然后按同樣的方法保存文件。

數據窗口中轉到48F974,在第一個字節右鍵=>查看參考,找到引用所在,雙擊來到反匯編窗口

使得該處直接跳轉,并保存,至此破解結束。

解密系列之OD使用教程7

程序:VisualSit. Design...exe
調試寄存器:Dr0~Dr3四個寄存器用來存放中斷地址,Dr4、Dr5保留不使用,Dr6、Dr7用來記錄Dr0~Dr3的屬性。
運行程序,發現有NAG窗口,且有次數限制,退出時有廣告窗口。

去NAG窗口

調試技巧:一路按F8,遇到產生NAG的call時,在該call下斷點;重新載入,運行,然后在剛才斷點斷下,F7進去,刪除斷點;繼續F8找下一個使NAG出現的call,依次操作,直到找到最終call出NAG 地方,需要注意的是,如果call在動態鏈接庫即系統領空時,只能下硬件斷點,方法是:右鍵=>斷點=>硬件執行。最終找到如下地方

將該call直接反匯編為mov eax,1即可去掉NAG窗口。

去廣告窗口。

廣告窗口彈出后,在OD中按下暫停,然后點擊K(堆棧)窗口,如下

在圖示的480C24處是唯一該軟件所在領空,雙擊回到反匯編窗口,下斷點重新運行并關閉軟件,斷下

按下F8,彈出廣告,說明nop掉該call即可。

破解萬能鑰匙

根據代碼試用期和到期后走向不同,找到關鍵所在。在關鍵跳轉出標出Y或者N,然后用完使用次數,重新找出是哪個跳轉有所變化,把變化了的跳轉進行如下修改即可

test eax,eax jle 00489998 => mov eax,1

解密系列之OD使用教程8

程序:pcsurg*on.exe

方法一

運行程序,同樣有NAG窗口,關閉后進入主窗口,顯示為未注冊版本且5 days remaining,關于窗口中也顯示未注冊版本,且要求輸入注冊碼等。

用OD載入,以標題欄的<unregistered為切入點,右鍵=>查找=>所有參考文本字串,來到文本子串窗口(R窗口),拉到最上面右鍵=>查找文本,輸入<unregistered,結果如下

雙擊上面高亮行,來到反匯編窗口

在該行上面的跳轉處和子程序的開頭處下斷點,重新載入程序并運行,發現斷在該跳轉處,跳轉未實現,修改ZF標志位使跳轉實現,按F9發現NAG窗口不再彈出且標題欄未注冊的信息消失,但是關于窗口仍有未注冊信息,尚未完全破解。根據About窗口

繼續找這個字符串<Unregistered Version>,發現并不能找到,重新查找<Unregister,找到如下位置

在這個跳轉處和程序入口點下斷,F9運行程序,繼續在5CC83C處修改ZF標志位使得跳過,然后按下Help=>About觸發剛才下的斷點,單步走到下圖處

同理修改ZF標志位使得跳轉實現,按F9運行起來

彈出關于對話框為已注冊版本,且注冊按鈕消失了!根據以上調試結果,接下來把兩處的jnz跳轉改為jmp,并保存到文件,運行驗證可知已完成破解。

方法二

繼續深入思考,載入原程序,觀察原來的斷點處

[60EB8C]=610C4A [60F1DC]=610C5E

為什么需要2個判斷?可能是是否注冊信息和試用天數。對可疑地址60EB8C進行跟蹤,右鍵=>查找參考=>地址常量,找到如下

可能對改地址值初始化的地方就是設置注冊信息的地方,如上圖對每個指令設置斷點,重新運行程序,斷下

觀察這段代碼,發現這是在程序開始運行不久就將al的值賦值給[60EB8C],然后和0進行比較,如果不為0則跳轉實現,猜測al中可能存放的是程序是否注冊的標志,因此直接將1賦值給它,查看是否能夠直接破解,如圖

保存到可執行文件,運行查看,完美破解。另一種方法是作如下修改

顯然方法二更加高效,但是需要仔細分析程序代碼的邏輯關系,難度較大,值得深入思考學習該種方法。

總結

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

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