使用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服務就可以停止調試器!
?
總結
以上是生活随笔為你收集整理的使用IDA 进行远程调试的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: OD消息断点的设置方法
- 下一篇: IDA来远程调试Linux程序
