在OD中使用條件斷點進行除錯

2021-09-03 02:48:42 字數 1183 閱讀 6339

最近在逆向hr防毒軟體,感覺壓力很大,但是還好有前人已經幫助我們探過路了,並且也有大佬分享了一些經驗,讓我們逆向分析起來可以不用踩那麼多坑,這裡我就簡單的是記錄下我在逆向過程中,發現自己的一些問題,幫助自己成長。

在od使用過程中,為了能夠快速斷在指定解密**處,我就在讀寫檔案處下斷,再逐步跟call,發現等它開啟指定檔案的時候,很麻煩,而且要等很長時間,於是就覺得為什麼不用條件斷點呢?其實之前沒怎麼好好用過條件斷點,今天看了一篇博文,覺得寫的不錯,我就決定也在自己的部落格下面記錄下,這樣自己哪天看的時候一下子就明白了。本博文也是講條件斷點如何使用的。

這樣子主要是方便大家理解,對於經常除錯的人來說,不用切換成這樣也能每次定位到相應的棧位址空間中,之後我們在createfilew函式位址處,按下shift+f2,開啟條件斷點對話方塊,如下所示:

輸入條件:[unicode[esp+4]]=="c:\\test\\123.txt"

在輸入條件時注意兩點!

1、unicode或unicode都可以,大小寫都可以。

2、輸入路徑時一定是兩個反斜槓(\\),因為會被轉義,所以需要兩個,如果輸入乙個反斜槓(\)你會發現你的條件斷點一直斷不下來,我就是找了很長時間的原因,在我學習的那篇部落格中,博主沒提,我也沒怎麼注意,所以在這裡強調一下,不希望大家犯同樣的錯誤。

如果在createfilea函式處下條件斷點就需要把條件改為string:[string[esp+4]]=="c:\\test\\123.txt"

這種情況適用於某些迴圈的條件中,比如說,有條指令cmp eax,ebx,在判斷比較值時,我們也可以採用條件斷點來操作,就是如下圖所示:

當eax=0x25時,就會斷下來,這樣我們就可以除錯省時省事了,注意這裡條件對話方塊的數值統一是十六進製制的數值,所以大家在下斷點填寫數值時一定要填寫正確的十六進製制資料。

利用條件斷點進行程式除錯

利用條件斷點進行程式除錯 在乙個迴圈中如果使用簡單斷點來除錯程式,那麼將是非常耗時的。如果此時迴圈很多,根本就執行不完程式。所以visual c 還提供了條件斷點,也就是說在條件觸發時斷點才生效,程式進行到暫停狀態。在程式進行到暫停狀態前會彈出提示對話方塊,如圖1.66所示。圖1.66 利用條件斷點...

使用phpstorm進行PHP斷點除錯

php開發中都說乙個會偷懶的程式設計師才是合格的程式設計師,在php開發中除錯是必須要有的,可能要重複很多次的去除錯,一次又一次,今天我們就來教教大家如何偷懶的,那麼就來講講使用phpstorm進行偷懶吧!2 把xdebug安裝到php 在php.ini裡修改 在 module settings 下...

PHP使用phpstorm進行斷點除錯

啟用效能檢測分析 xdebug.profiler enable on 啟用 自動跟蹤 xdebug.auto trace on xdebug.profiler enable trigger on xdebug.profiler output name cachegrind.out.t.p 指定效能分...