IDA 遠程調試

從4.8 版開始,IDA PRO 支持通過TCP/IP 網絡對x86/AMD64 Windows PE 應用程序和Linux 
ELF 應用程序進行遠程調試。所謂“遠程調試”是指通過網絡調試在另一個網絡上的計算
機運行的代碼的過程: 
l 運行IDA PRO界面的計算機被稱爲“調試器客戶端”。 
l 運行被調試的應用程序的計算機被成爲“調試器服務器  ”。 
遠程調試主要用於下面一些特殊應用: 
l 用於調試病毒/木馬/惡意軟件:通過這種方法,調試器客戶端可以與可能受到這些
軟件攻擊的計算機隔離。 
l 調試那些在一臺計算機上運行遇到問題,而且沒有被拷貝安裝在其他計算機上的應
用程序。 
l 調式分佈式應用程序 
l 始終在你的主工作站上運行,因此你無需將IDA配置、文件和不同的調試相關資源
拷貝到其它機器上。 
l 以後,將可以在更多的操作系統和結構下調試應用程序。 
這個小教程將會講述如何在實際應用中配置和使用遠程調試。

遠程IDA 調試器服務端 
爲了讓IDA客戶端和調試器服務端可以通過網絡進行通信,我們必須首先啓動一個小的服務
端,它會處理所有低級操作和調試器操作。IDA的軟件包中包括一個Windows調試器服務端
(win32_remote.exe文件)和一個Linux調試器服務端(linux_server.exe文件),通過這
兩個文件,我們可以: 
l 在IDA窗口中本地調試x86/AMD64的Windows應用程序和DLL文件。 
l 在IDA窗口中遠程調試x86/AMD64的Windows應用程序和DLL文件。 
l 在IDA窗口中本地調試x86的Linux應用程序和共享庫文件。 
l 在IDA窗口中遠程調試x86的Linux應用程序和共享庫文件。 
 
我們先拷貝這個小的windows調試器服務端文件到我們的調試器服務器上。 
服務端可以接收下面幾種命令行參數: 
C:\> win32_remote -? 
IDA Windows32 remote debugger server. Version 1.0. Copyright Datarescue 2004 
Error: usage: ida_remote [switches] 
-p... port number 
-P... password 
-v     verbose 
 
我們可以設定一個密碼,以阻止那些未授權的鏈接: 
C:\>win32_remote -Pmypassword

IDA Windows32 remote debugger server. Version 1.0. Copyright Datarescue 2004 
Listening to port #23946... 
注意遠程調試器服務器同時只能處理一個調試會話。如果你需要在一個相同的主機上同時調
試幾個應用程序,則需要使用–p開關在不同的端口啓動多個服務端。

設置調試器客戶端 
首先,把我們想要在調試器服務端(Windows或Linux)調試的可執行文件拷貝到調試器客
戶端(Windows或Linux)。我們可以像通常那樣把這個文件裝入IDA。通過點擊在Debugger
菜單中的“Process options…”菜單條,來設置遠程調試

在上面的窗口中我們設定Application,Directory,和Input file路徑。注意這些文件路徑應該
在遠程調試器服務端上有效,同時不要忘記輸入調試器服務端的主機名字和IP地址:遠程調
試只有當這些設置完成後纔有效!最後,輸入我們在IDA的調試器服務端設定的密碼。

 

啓動遠程調試 
現在,調試器服務端和調試器客戶端均已設置完成,可以開始遠程調試了。事實上,你現在
可以使用本地調試可以用到的所有調試命令。例如,我們可以跳到程序入口點,然後使用
F4快捷鍵,運行進程到程序的入口點。

如果我們現在直接終止進程(通過CTRL-F2)並查看win32_remote’s的輸出(在調試器服務
端),我們看到它確實接受了這個命令並關閉了我們的網絡鏈接: 
C:\> win32_remote -Pmypassword 
IDA Windows32 remote debugger server. Version 1.0. Copyright Datarescue 2004 
Listening to port #23946... 
Accepting incoming connection... 
Closing incoming connection...

 

附加到一個正在運行的進程  
另一有趣的功能的是,可以附加調試器到一個在遠程計算機上已經存在並運行着的進程上。
如果你在Debugger菜單中點擊“Attach to process…”命令,IDA將會顯示所有與你的反匯
編數據庫中的文件對應的遠程運行進程的列表:

在列表中雙擊一個進程,將會自動掛起並附加調試器到這個進程上,這可以讓你無需手動啓
動這個進程就可以調試它。附加進程的功能可以工作在Windows到Linux,Windows到
Windows,  Linux到Linux和從Linux到Windows多種情況下。

 

從調試進程中解除附加 
最後,如果如果調試器服務端運行在Windows XP,Windows Server 2003或Linux,你也可
以從你當前調試的進程中解除附加,只需要使用Debugger菜單中的“Detach from process”
命令即可。 
IDA支持調試Windows下的DLLs和Linux下的共享庫文件。在Windows下,  IDA也可以附加
到Windows服務上,無論該服務是運行在本地或遠端。尤其是當你附加到Windows服務上
後,“Detach from process”命令非常有用:這可以使你無需終止調試器服務端的關鍵
Windows服務就可以停止調試器!

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章