IDA Pro 6.6 反匯編程序?qū)嵗?/h1>

IDA Pro是一款強(qiáng)大的反匯編軟件备恤,特有的IDA視圖和交叉引用,可以方便理解程序邏輯和快速定位代碼片斷渠牲,以方便修改频祝。

這里寫圖片描述
這里寫圖片描述
                            **IDA視圖**

示例程序

下面會通過修改示例程序的輸出字符串泌参,來講解如何使用IDA Pro。

#include

main()
{
    int n;
    scanf ("%d",&n);
    if (n > 0)
       printf("a > 0");  //后面會用IDA Pro把'a'改成'n'
    else
       printf("n < 0");
}

編譯后的程序下載:demo

運行IDA Pro

運行IDA Pro常空,并使用PE文件的方式打開示例的test.exe文件沽一。IDA Pro會新建一個工程,并開始反匯編程序漓糙。反匯編完成后铣缠,在[IDA-View]窗口中,可以看到程序邏輯的樹形圖昆禽,如下:

這里寫圖片描述
這里寫圖片描述

樹形圖把條件分支清晰地顯示出來了蝗蛙。左下角有IDA視圖的縮略圖,在上面點擊可以快速定位到視圖的指定位置醉鳖。 IDA的View有幾個按鈕對定位代碼很重要歼郭,如下圖所示:

這里寫圖片描述
這里寫圖片描述

從上到下分別是:
Open exports window:打開導(dǎo)出窗口
Open import window:打開導(dǎo)入窗口
Open names window:函數(shù)和參數(shù)的命名列表
Open functions window:程序調(diào)用的所有函數(shù)窗口
Open strings window:打開字符串顯示窗口,會列出程序中的所有字符串辐棒,該窗口有助于你通過程序的運行輸出逆向找出對應(yīng)的代碼片斷。

定位代碼片斷

假設(shè)我們現(xiàn)在接到個任務(wù),需修正程序漾根,把輸出“a > 0”修正為“n > 0”泰涂。示例程序比較簡單,直接看IDA視圖我們就能找到需修改的代碼片斷辐怕,但實際處理時逼蒙,可能程序有幾m大,通過一個個看IDA視圖已沒法有效找到相關(guān)的執(zhí)行代碼片斷寄疏,這時怎么辦是牢? 使用字符串窗口和IDA強(qiáng)大的交叉引用! 點擊View里的[Open strings windows]按鈕陕截,可以看到如下的程序字符串:

這里寫圖片描述
這里寫圖片描述

程序的字符串較少驳棱,可以很快地看到我們需要的字符串“a > 0”在數(shù)據(jù)段00403003位置。假如字符串多到已不能肉眼定位查找农曲,因為字符串窗口是沒有查找功能的社搅,這時需要借助其他的文本編輯器,如notepad乳规,editplus等形葬。在字符串窗口內(nèi)右鍵,選擇菜單[copy]命令暮的,會把字符串窗口的所有內(nèi)容復(fù)制到剪貼板笙以,再粘貼到記事本中查找就可以了。 雙擊字符串窗口的該行字符串冻辩,會跳轉(zhuǎn)到IDA視圖的00403003位置猖腕,如下圖所示

這里寫圖片描述
這里寫圖片描述

單擊’a > 0’中的a,a會高亮微猖,

這里寫圖片描述
這里寫圖片描述

最后定位的代碼片斷谈息,上圖顯示的匯編指令即是我們要找的代碼片斷,這時點擊[Hex View-A]窗口凛剥,會切換到二進(jìn)制瀏覽模式侠仇,并高亮了匯編代碼的二進(jìn)制格式指令,如下圖所示:

這里寫圖片描述
這里寫圖片描述

已找到需修改的代碼片斷犁珠,剩下的只需把a(bǔ)改成n逻炊。

修改程序文件

在IDA中,可以在[Hex View-A]窗口右鍵選擇[Edit]來修改二進(jìn)制指令犁享。修改后通過右鍵選擇[Commit Change]可以看到修改后的IDA視圖余素。但需要注意的是,這種方式的修改并不會更新原始程序文件炊昆,實際只是修改了IDA的項目文件桨吊!IDA中只適合做一些驗證性的修改威根,確保正確后再使用其他工具修改原始程序文件。 在IDA中驗證修改正確后视乐,可以使用UltraEdit或Hex Workshop來修改原始程序文件洛搀。下面會以UltraEdit為例來說明如何修改。

這里寫圖片描述
這里寫圖片描述

下載好UltraEdit佑淀,用UltraEdit直接打開程序文件留美,如上圖所示,UltraEdit會以16進(jìn)制模式顯示程序文件伸刃。UltraEdit顯示的地址和IDA顯示的地址是不同的谎砾,為了找到對應(yīng)代碼片斷在UltraEdit中的實際地址,需要使用到UltraEdit的查找功能捧颅。在IDA中復(fù)制需修改的16進(jìn)制模式顯示的指令景图,在UltraEdit中打開查找,粘貼并查找該16進(jìn)制字符串隘道,UltrEdit會很快定位到該指令處症歇,如下圖所示:

這里寫圖片描述
這里寫圖片描述

找到了UltraEdit的對應(yīng)位置 現(xiàn)在我們要把“a > 0”改成“n > 0”,a對應(yīng)的ASCII碼是61谭梗,而n對應(yīng)的ASCII碼是6E忘晤,只需把61改成6E就可以了,修改后保存激捏。

這里寫圖片描述
這里寫圖片描述

再次運行设塔,可以看到結(jié)果已改變!

這里寫圖片描述
這里寫圖片描述

示例只是修改了字符串远舅,只需更改數(shù)據(jù)段內(nèi)容就可以了闰蛔,不用更改指令。假如需要更改指令图柏,需要參考指令集的指令操作表寫出對應(yīng)指今的16進(jìn)制形式序六,再修改。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末蚤吹,一起剝皮案震驚了整個濱河市例诀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌裁着,老刑警劉巖繁涂,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異二驰,居然都是意外死亡扔罪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門桶雀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矿酵,“玉大人唬复,你說我怎么就攤上這事』荡瘢” “怎么了盅抚?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長倔矾。 經(jīng)常有香客問我,道長柱锹,這世上最難降的妖魔是什么哪自? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮禁熏,結(jié)果婚禮上壤巷,老公的妹妹穿的比我還像新娘。我一直安慰自己瞧毙,他們只是感情好胧华,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宙彪,像睡著了一般矩动。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上释漆,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天悲没,我揣著相機(jī)與錄音,去河邊找鬼男图。 笑死示姿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逊笆。 我是一名探鬼主播栈戳,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼难裆!你這毒婦竟也來了子檀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤差牛,失蹤者是張志新(化名)和其女友劉穎命锄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偏化,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡脐恩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了侦讨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驶冒。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡苟翻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骗污,到底是詐尸還是另有隱情崇猫,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布需忿,位于F島的核電站叠纹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赡突。R本人自食惡果不足惜咖气,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汗洒。 院中可真熱鬧议纯,春花似錦、人聲如沸溢谤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽世杀。三九已至阀参,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玫坛,已是汗流浹背结笨。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留湿镀,地道東北人炕吸。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像勉痴,于是被迫代替她去往敵國和親赫模。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容