ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序
1 背景
在學(xué)習(xí)Linux系統(tǒng)上的一些漏洞知識的時候,往往需要進(jìn)行“實地測試”,但是在Linux系統(tǒng)上進(jìn)行調(diào)試并不太方便,因為LINUX自帶的GDB調(diào)試工具真的不太人性化,即使有GDBTUI之類的“偽圖形界面調(diào)試器”,也跟IDA PRO之類的調(diào)試器相差甚遠(yuǎn)。這里又遇到另一個問題了——LINUX平臺的IDA PRO不太好找。
綜上,對于初學(xué)者而言最佳方案就是使用IDA PRO的遠(yuǎn)程調(diào)試功能!
2 環(huán)境配置
本文主要說明在MAC系統(tǒng)上如何通過IDA PRO對linux程序進(jìn)行遠(yuǎn)程調(diào)試(如果宿主機(jī)為WINDOWS系統(tǒng)的話,原理類似)。
2.1 遠(yuǎn)程Linux端環(huán)境配置
首先,需要將IDA PRO中自帶的用于遠(yuǎn)程調(diào)試的程序拷貝到LINUX機(jī)器中,這個程序就是linux_server或者linux_serverx64,前者用于調(diào)試32位程序,后者用于64位程序,且后者并不能兼容前者,因此在調(diào)試的時候需要注意了。后文以調(diào)試32位程序為例。
筆者的遠(yuǎn)程Linux系統(tǒng)為Ubuntu14.04,這是一個64位系統(tǒng),因此默認(rèn)情況下無法運(yùn)行32位的linux_server程序,主要報錯為缺少?libstdc++.so.6系統(tǒng)庫,解決辦法很簡單:
sudo apt-get install lib32stdc++6
然后再運(yùn)行l(wèi)inux_server就沒問題了,成功運(yùn)行效果如下:
chouchou:~$ ./linux_server
IDA Linux 32-bit remote debug server(ST) v1.20. Hex-Rays (c) 2004-2015
Listening on port #23946...
至此,Linux端的環(huán)境配置就完成了,是不是很簡單^_^ ?
2.2 宿主MAC端環(huán)境配置
1. 首先,需要將等待調(diào)試的Linux應(yīng)用程序拷貝到MAC端,以調(diào)試overFlow程序為例,將該程序拷貝到MAC目錄中,筆者為~/Documents/vmWare/share/overFlow .
2. 然后,使用IDA打開該程序,注意因為是32bit程序,所以我們也需要選擇32bit的IDA,通常命名為idaq.(64bit IDA通常命名為idaq64)
3. 在IDA的菜單選擇Debugger->Select debugger,然后選擇Remote Linux debugger,如下圖所示:
4. 再次點擊Debugger菜單,選擇Process options,然后參照下圖進(jìn)行設(shè)置:
至此,MAC端的環(huán)境配置完畢。
3 開始調(diào)試
首先,我們在IDA中的main函數(shù)中下斷點,如下圖所示:
然后在Debugger中選擇Start process,在彈出的窗口中根據(jù)提示信息選擇yes和cancle即可,最終得到如下圖所示的調(diào)試界面:
大功告成!開始愉快的享受IDA帶來的非一般的調(diào)試體驗吧!
Visual Studio 2015中使用gdb遠(yuǎn)程調(diào)試linux程序
VS的debug功能非常強(qiáng)大,相比而言linux上的圖形化調(diào)試一直不是很好用. 如果可以使用VS來調(diào)試linux程序,應(yīng)該是一件比較愉快的事情. 這在2015中變得可能,因為從2015開始VS支持An ...
eclipse/idea遠(yuǎn)程調(diào)試Linux程序
第一步.在Tomcat的bin目錄下的startup.sh文件的倒數(shù)第二行增加“JPDA_ADDRESS=8787”,最后一行在start的前邊增加“jpda”,之后重啟Tomcat 第二步.配置Ec ...
visual studio 在windows遠(yuǎn)程調(diào)試 linux 程序 cout 輸出亂碼
轉(zhuǎn)載:https://www.cnblogs.com/findumars/p/6627255.html 反正是解決了. 以gcc為例,它有三個命令選項:-finput-charset=gb18030- ...
java遠(yuǎn)程調(diào)試(斷點)程序/tomcat( eclipse遠(yuǎn)程調(diào)試Tomcat方法)
tomcat遠(yuǎn)程調(diào)試: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug? -Xrunjdwp:transport=dt_soc ...
使用VS+VisualGDB編譯調(diào)試Linux程序
Linux程序開發(fā)變得越來越多,越來越多的程序.產(chǎn)品需要跨平臺,甚至有些開源項目只支持Linux平臺,所以掌握Linux開發(fā)變得越來越重要. 但是對于習(xí)慣了Windows下的開發(fā),使用了VS這個宇宙第 ...
ida GDB 遠(yuǎn)程調(diào)試
在看雪上回答的問題,有人問在WinDbg下斷KiDebugRoutine或者KdEnterDebugger函數(shù)會引發(fā)藍(lán)屏!因為是在調(diào)試Windows的內(nèi)核調(diào)試引擎,我給出的解決辦法是用不依賴Windo ...
NetBeans遠(yuǎn)程調(diào)試Linux c++ 11項目
NetBeans遠(yuǎn)程調(diào)試Linux c++ 11項目 由于好多原因,好久沒有寫博客了,隨著c++ 11的普及率越來越高,開發(fā)c++ 項目的人也越來越多,可以說c++ 11 給了c++ 這門語言第二次生 ...
MAC 下用 Common Lisp 調(diào)試 OpenGL 程序
MAC 下用 Common Lisp 調(diào)試 OpenGL 程序 環(huán)境搭建 運(yùn)行環(huán)境: OSX 10.11.3 EI Capitan Common Lisp: SBCL 使用 SBCL, 首先要安裝這幾 ...
在windows通過visual studio遠(yuǎn)程調(diào)試linux mono程序
本文參考文章?https://github.com/techl/MonoRemoteDebugger 1.通過連接https://github.com/techl/MonoRemoteDebugger ...
隨機(jī)推薦
小議jQuery插件開發(fā)
1.寫在前面: 大家都知道PHP專注后臺與數(shù)據(jù)庫的交互,前端頁面中是js的天下,而jQuery作為使用最廣泛,最簡單有效的js的框架.深受大家的喜歡. 而js作為一門面向?qū)ο蟮拈_發(fā)語言,它獨特的語法和 ...
自制操作系統(tǒng)(二) 讓bootsector開機(jī)啟動打印一首詩
qq:992591601 歡迎交流 2016-03-31作 2016-06-01.2016-06-27改 我總結(jié)了些基本原理: 1.軟盤的第一個扇區(qū)為啟動區(qū) 2.計算機(jī)讀軟盤是以512字節(jié)為單位來讀寫 ...
認(rèn)識CoreData-基礎(chǔ)使用
第一篇文章中并沒有講CoreData的具體用法,只是對CoreData做了一個詳細(xì)的介紹,算是一個開始和總結(jié)吧. 這篇文章中會主要講CoreData的基礎(chǔ)使用,以及在使用中需要注意的一些細(xì)節(jié).因為文章 ...
android 窗體透明的,黑暗度等的設(shè)置技巧
設(shè)置透明度(這是窗體本身的透明度,非背景) 1 WindowManager.LayoutParams lp=getWindow().getAttributes(); 2 lp.alpha=0.3f; ...
Response.Expires 屬性 (轉(zhuǎn)載于瘋狂客的BLOG)
Expires 屬性 Expires 屬性指定了在瀏覽器上緩沖存儲的頁距過期還有多少時間.如果用戶在某個頁過期之前又回到此頁,就會顯示緩沖區(qū)中的版本 語法 Response.Expires [= nu ...
jQuery 事件綁定 和 JavaScript 原生事件綁定
總結(jié)一下:jQuery 事件綁定 和 JavaScript 原生事件綁定 及 區(qū)別 jQuery 事件綁定 jQuery 中提供了四種事件監(jiān)聽綁定方式,分別是 bind.live.delegate.o ...
input驅(qū)動12種事件類型Event types的含義
linux2.6?input?subsystem中部分相關(guān)結(jié)構(gòu)體的分析 ?最近在做linux2.6的鍵盤驅(qū)動程序的工作,接觸到了input subsystem這一概念,現(xiàn)把我對其中相關(guān)結(jié)構(gòu)體的理解寫出 ...
vmware提示:此虛擬機(jī)似乎正在使用中,無法取得所有權(quán)的解決辦法
在虛擬機(jī)運(yùn)行時,一次非正常關(guān)機(jī).導(dǎo)致虛擬機(jī)出現(xiàn)以下錯誤: 此虛擬機(jī)似乎正在使用中.?如果此虛擬機(jī)已在使用中,請按“取消”按鈕,以免損壞它.如果此虛擬機(jī)未使用,請按“取得所有權(quán)(&T)”按鈕以獲 ...
C#高級編程9-第4章 繼承
繼承是面向?qū)ο蟮囊淮筇卣?要深刻學(xué)習(xí)繼承,需要學(xué)會使用調(diào)試的技巧來學(xué)習(xí)它,因為它比較抽象. 繼承 繼承是指一個具體的類型直接使用另一類型的某些數(shù)據(jù)成員或函數(shù)成員,繼承的類是基類(父類),被繼承的類是派 ...
25個非常實用的jQuery/CSS3應(yīng)用組件
今天分享25款功能十分強(qiáng)大的jQuery/CSS3應(yīng)用插件,歡迎收藏. 1.jQuery水晶樣式下拉導(dǎo)航 這是一款非常不錯的jQuery多功能下拉菜單插件,菜單外觀呈水晶樣式,晶瑩剔透,功能豐富,包含 ...
總結(jié)
以上是生活随笔為你收集整理的ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kingsoft是什么文件夹?kings
- 下一篇: 顺丰速运怎么改收货地址