[原創]在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打開。
你需要做些什么設置外觀
選項設置
使用技巧篇
插件推薦篇以下主要詳細介紹我平時常用的插件,建議大家按照需求來安裝(插件放在release\x32或者x64\plugins目錄下,以.dp32或.dp64結尾) Scylla(脫殼與導入表修復)
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文件,內容都為
一個在裝了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 下拉框選擇對應語言,按下按鈕可以在按鈕事件處理函數 下斷點。
我把個人覺得必備的幾個插件打包了,下載覆蓋相應文件夾即可。(xAnalyzer,SwissArmyKnife,x64dbg_tol,ScyllaHide,BaymaxTools,xHotSpots)其他插件如果需要自行下載即可 |
https://www.52pojie.cn/thread-1393075-1-1.html