x64dbg中設置條件斷點 ,IDA Pro常用基礎操作


[原創]在x64dbg中設置條件斷點 

 2019-5-17 10:04  18326

x64dbg是逆向分析win64程序的利器,它的地位類似於OllyDbg。最近遇上了怎樣在x64dbg設置條件斷點的問題,網上搜索了一遍僅看到x64dbg的使用手冊,沒有圖文並茂的說明文檔,琢磨了一番搞明白了,現寫出來分享給大家。

1、  條件斷點

在想要設置斷點的指令處按F2設置斷點,然后在斷點窗口選中該斷點,右鍵選擇“Edit”

在Break Condition寫入中斷條件,如下圖中寫的:(esi == 73) && (eax==64)

注:此處的73,64都為16進制數。

設置后運行將在滿足條件的指令處停下來。

2、  條件記錄斷點

條件記錄斷點就是沒有中斷條件,僅將關注的數據記錄下來。

如下圖所示,設置break condition為0,Log text設置需要記錄的數據,同時將silent項選上。

設置完運行后,在Log窗口就可以看到記錄的數據。

IDA Pro切換圖形或代碼模式

1、空格

2、右鍵選擇Text View/Graph View切換

 

圖形模式

 

代碼模式

 

IDA Pro常用基礎操作

IDA Pro常用基礎操作

1、查看字符串

 

2、跳轉到代碼中

 

3、跳轉到地址

跳轉到_text_410CC9位置

 

4、堆棧窗口

IDA-ESP窗口現在列出了我們感興趣的函數的堆棧結構

通過調試器窗口指向堆棧窗口,點擊"箭頭"

5、把匯編轉換成源代碼

強大的F5

6、監視

我們可以添加監視,通過監視觀察在程序執行過程中數據的變化。

7、轉到入口點

 

8、Text view

 

9、Graph view

 

 

10、查看string

 

1、IDA Pro下斷點

F2下斷點

F9運行

變成紅色

或右鍵

2、查看導入導出表

 

3、打開調試器窗口

 

 

4、視圖窗口

 

5、查看數據段的字符串在代碼段中的引用位置

函數可以利用交叉定位找到調用的地址.

字符串無法找到,可能調用的地址經過變化

6、CODE XREF

外部參照代碼

7、每個函數最上方為函數的棧幀。

8、ESC鍵經常會關掉窗口,可以RESET…

String每次打開都會掃描,可以設置不同語言特性對應的字符串。

9、快捷鍵G.跳轉到地址或者名稱。go窗口。在反匯編窗口,esc鍵是返回。ctrl+enter是下一步。或者用圖標:

 

10、IDA對函數棧幀的表示方法。。。挺有用。。命名方式與大小:

詳細棧幀:

其中r表示返回地址。

11、棧幀為了對齊等,一般在ebp上面留開8個字節。

12、Alt+T 搜索字符串。 N重命名。。ALT+I 搜索值

13、D,把代碼變成數據,C反之。U,取消格式。

x64dbg使用技巧與實用插件合集

本文是針對剛開始接觸X64dbg的新人寫的實用技巧和插件合集

前言

萌新一個,接觸逆向時間不長,但因為很喜歡x64dbg這款調試器,所以花了一些時間去了解,x64dbg的這類帖子相對較少,本貼的初衷是希望其他新人在學習的時候可以多一些參考,少一些時間精力的浪費。希望大家為我的帖子指正錯誤和做補充。

以下均基於Mar 12 2021版本x64dbg官方版本,可到官方網站直接下載

官方網站:https://x64dbg.com/

第一次運行

雙擊x96dbg,出現三個彈窗,會生成x96dbg.ini文件。當你需要把整個程序文件夾移動到其他路徑時,最好把這個ini刪除,重新雙擊讓它再生成。當你需要把它加到發送到菜單中的時候,也推薦添加x96dbg,它會自動選擇用x32還是x64dbg打開。

 

你需要做些什么設置

外觀

  • 字體大小調整    選項——外觀——字體——最右邊那個數字(圖右)(我個人用12)
  • 主題選擇            選項——主題——選擇你喜歡的(圖左),也可以在Github搜索x64dbg theme,或者百度搜索x64dbg 配色,使用別人的配色方案文件

 

選項設置

  • 事件   

    推薦萌新只勾選入口斷點(這樣相當於OD設置為 第一次暫停於主模塊入口點)

  • 引擎   

    保持默認即可,需要特別說明的是禁用數據壓縮將數據保存於應用程序目錄,所指的數據是指調試相關數據,默認保存在調試器db文件夾下。調試引擎選項里的GleeBug,據作者以前博客內容說是跟蹤速度會比默認的Titan快很多,但我試了沒什么感覺。

  • 異常

    保持默認

  • 反匯編

    僅在CIP處顯示自動注釋——勾選之后界面會更整潔,該有的自動注釋也還是有的,自行體驗取舍

    模塊名最長長度——默認-1不限制,如果遇到比較長的文件名,調試起來界面觀感會比較差(圖左),OD的限制長度為8,自行取舍。

    值前加0x前綴——x64dbg里默認以16進制顯示數值(不顯示0x),如果你需要表示十進制,可以在前面加點,匯編里輸入加點10進制需要設置XEDparse引擎(圖右)。

 

  • 圖形界面

    其他選項根據個人需要調整,一般保持默認,特別說明一項

    圖形縮放模式——這里指的是x64dbg流程圖功能 是否支持縮放,勾選后流程圖操作體驗會稍微接近IDA。流程圖功能會在后面提到

  • 雜項

    其他選項根據個人需要調整,一般保持默認

    可以將搜索引擎改為百度:https://www.baidu.com/s?wd=@topic    遇到不認識的函數選中,右鍵,符號名稱幫助,直接進行查詢。

使用技巧篇

  • 收藏夾參數

    這里直接貼上官方文檔對於收藏夾的使用說明:

    如果你在工具的命令行添加 %PID%,它將被調試對象(如果不進行調試或0)的(十進制) PID 替換。

    如果你添加%DEBUGGEE%,則它將添加調試對象(不帶引號)的完整的路徑。

    如果你添加 %MODULE%,則將添加在當前反匯編中模塊(不帶引號)的完整路徑。

    如果你添加 %-????-%,則它將執行無論你放在何處的 ????字符串格式。示例:%-{cip}-%將會用 cip 的十六進制值替換。

    所以你可以這樣 "C:\Tools\DIE\die.exe" %DEBUGGEE%  添加你常用的工具(記得路徑加雙引號),然后把收藏夾——收藏工具箱選上。點擊Die圖標,將會啟動並且分析當前在調試的模塊。這樣的方法好過安裝什么PE查看器插件,讓專業的工具做專業的事

     

  • 流程圖

    在反匯編窗口按下G鍵切換到流程圖,再按G回來。建議配合圖形縮放模式設置,可以用Ctrl+滾輪進行縮放。

    右鍵點擊脫離后,可以與反匯編窗口同時使用,讓我想起ret-sync那個插件,后面插件篇再說(我一般還是用IDA,但萬一有人喜歡這種呢)

 

  • Ctrl+G 跳轉到

    可以直接輸入API,會自動補全。默認是輸入VA,如果要輸入RVA需要這樣: :$RVA

    例: :$0  跳到基址處

    如果需要輸入FOA可以這樣:  :#FOA   或者按下Ctrl+Shift+G 再輸入FOA

  • 按H鍵進入高亮模式

    此時單擊需要高亮顯示的內容即可高亮顯示,再次按下H,點擊空白處可以取消。(也可以設置一直啟用高亮,但有誤點的問題)

     

  • 數據庫

    (或者是Database)

    遇到過幾次x64dbg數據丟失,寫了很多注釋就沒了,這種情況千萬不要慌張,因為你每次關閉x64dbg自動保存的時候,都會把上次的數據文件做備份(.bak),這時候可以試着點擊還原備份數據庫

     

  • x64dbg計算器

    個人覺得比系統自帶計算器好用,可以一邊調試一邊計算(非模態+置頂),不用切來切去,支持x64dbg的各種表達式

     

  • 右鍵——顯示指令提示

    會顯示匯編指令對應的解釋,對於初學者很有幫助,有一個王蘇漢化的版本,是將這些幫助文本也完全漢化了的。(自行搜索)

 

  • 文件——改變命令行

    可以支持帶參數調試

 

  • 復制各種格式的數據

    選中你要的部分——右鍵二進制——編輯——復制數據

 

  • 少數情況下64位系統使用x64dbg調試32位程序界面卡頓問題

    這個問題很玄學,我遇到了,搜了網上也有一個朋友遇到過,我身邊的同學也有極少數遇到的,這里給出解決方法。

    x32dbg.exe——右鍵屬性——兼容性——調成Windows 7   (那個遇到同樣問題的博主是這么解決的)

    但是我這么設置后還是卡頓,后來裝了個叫xAnalyzer的插件,又恢復了。(我的情況是這個插件和兼容性設置缺一不可,不然就會卡頓,非常奇葩,重裝了系統還是一樣,在此做個記錄,防止有人再遇到)

  • ESP硬件斷點

    寄存器窗口空白處右鍵

     

  • 自動跟蹤

    簡單說一下使用方法,因為我的了解也不是很深

    右鍵——追蹤記錄——啟動運行跟蹤——點擊菜單欄 跟蹤(N)——步進\步過直到條件滿足

    在暫停條件或者命令里類似這樣設置:eip==地址

    接着就可以在跟蹤窗口查看跟蹤結果了。

  • 切換XX

    切換斷點、切換書簽,這類命名在最初給我帶來了一些困擾和誤解,后來發現切換的意思就是 設置/取消設置。點一下是設置,再點一下就取消設置,所以命名為切換。

    這里順帶一說,x64dbg的搜索結果,內存窗口,跟蹤結果,幾乎所有帶地址的地方,都是支持直接F2設置斷點的,各位可以多加利用提高效率。

 

插件推薦篇

以下主要詳細介紹我平時常用的插件,建議大家按照需求來安裝(插件放在release\x32或者x64\plugins目錄下,以.dp32或.dp64結尾)

Scylla(脫殼與導入表修復)

  • 自帶的插件,個人覺得比OD+ImpREC更方便快捷

    常見的脫殼流程:x64dbg停在需要脫殼的地址上,點擊Scylla的圖標啟動,會自動為你設定IAT info里的OEP為當前地址,點擊dump。

    修復導入表:點擊IAT Autosearch,有可能提示:高級搜索結果和普通搜索結果不同,是否使用高級搜索結果。一般都選是,接着點Get Imports,自動獲取需要修復的函數。我遇到過高級搜索反而搜不到的情況,這時候可以試試點否之后再點Get Imports。確認結果無誤后點Fix Dump,選中剛才Dump出的文件,會生成SCY結尾的文件。

     

    xAnalyzer(代碼分析輔助)

    https://github.com/ThunderCls/xAnalyzer

    該插件對調試程序的API函數調用進行檢測,自動添加函數定義,參數和數據類型以及其他補充信息,安裝以后可以讓x64dbg與OllyDbg的使用體驗更接近。

    效果如圖,可以在插件菜單里把自動分析(Automatic Analysis)打開。我個人不喜歡插件自動添加很多注釋,會讓頁面看起來很亂,所以一般在需要分析的時候通過右鍵菜單來讓它分析當前函數。

 

SwissArmyKnife(導入Map文件)

https://github.com/Nukem9/SwissArmyKnife

沒什么好解釋的,分析C程序的時候用IDA生成MAP文件,然后用這個插件加載。分析delphin程序推薦用Interactive Delphi Reconstructor先分析,再生成MAP文件用,還有其他程序也同樣。MAP文件可以讓你的分析進度大大加快,減少分析一些已知的庫函數。

x64dbg_tol(中文搜索支持)

https://bbs.pediy.com/thread-261942-1.htm

必裝插件,雖然官方在某個版本開始改善了對中文的支持,但他們在博客上也說了,可能會不全,建議自行安裝插件。我自己測試了,嗯,他們說的沒錯。裝了這個插件就能搜到之前搜不到的中文字符串了。

ScyllaHide(反反調試)

https://github.com/x64dbg/ScyllaHide

x64dbg官方開發的開源反反調試插件,同類插件也有好幾個,但官方的用得人比較多且更新快,所以這邊推薦官方的插件。使用方法也很簡單,插件菜單——Options——Loaded里可以選擇自帶的繞過方案(過一般的反調試可以用Basic甚至直接用自帶的 調試——高級——隱藏調試器)

試了下VM3.x的反調試可以用自帶的VM方案直接過掉(反而OD的StrongOD插件不行)

 

Ret-Sync (IDA x64dbg\OD 同步調試插件)

https://github.com/bootleg/ret-sync

https://bbs.pediy.com/thread-252634.htm

可以讓IDA和x64dbg\OD\windbg進行同步調試,支持在IDA中直接進行單步、下斷點、運行等操作,x64dbg將會與IDA保持同步,提高你調試效率的神器,關於安裝、使用說明可以參考官方github說明(更詳細)和看雪的帖子。

這里要特別提一點,如果你需要在虛擬機里用x64dbg,實體機里用IDA,需要創建兩個.sync文件,內容都為

 復制代碼 隱藏代碼
[INTERFACE]
host=192.168.128.1(實體機IP)
port=9234(端口)

一個在裝了IDA的機器上,放在你需要調試的程序目錄下(跟IDA生成的IDB文件放一起)

一個放在安裝了動態調試器的機器上,用戶文件夾根目錄(C:\Users\你的用戶名)

這樣就可以實現虛擬機和實體機同步調試了

 

E-ApiBreak(常用斷點設置)

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1384349

OD上常用的一個工具,現在x64dbg也有了。簡單易用,不多說明。

 

E-Debug(分析易語言程序必備)

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1374290

原作者githubhttps://github.com/fjqisba/E-debug-plus

最開始我在OD上用這個插件,可以讓分析易語言的效率倍增。最近發現有人移植到x64dbg了,在此推薦一波,打開后會自動識別易語言庫函數並且注釋。

 

HotSpots(用來尋找事件斷點)

https://github.com/ThunderCls/xHotSpots

下拉框選擇對應語言,按下按鈕可以在按鈕事件處理函數 下斷點。

 

 

  • 漏洞利用

    最后對於研究漏洞利用的同學(因為我們最近也剛開始學),我發現兩個好用的插件:

    ERC.Xdbg(二進制漏洞挖掘輔助,幫你找溢出點之類的)

    https://github.com/Andy53/ERC.Xdbg  (官方提供五篇教學文檔,關於插件的實戰,非常詳細)

    checksec (檢測各個模塊的各種安全措施狀態)

    https://github.com/klks/checksec

    以上就是一些適合萌新的實用插件推薦,其他還有一些沒提到的好用的插件,各位可以在底下補充。當然隨着你的學習,后面也會需要用到其他類型的插件,甚至自己寫插件。可以到官方的插件頁面逛逛(http://plugins.x64dbg.com/),翻翻官方的手冊

 x64dbg插件.7z (2.07 MB, 下載次數: 1076)


我把個人覺得必備的幾個插件打包了,下載覆蓋相應文件夾即可。(xAnalyzer,SwissArmyKnife,x64dbg_tol,ScyllaHide,BaymaxTools,xHotSpots)其他插件如果需要自行下載即可

https://www.52pojie.cn/thread-1393075-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM