IDA調(diào)試技巧(妥妥的干貨分享)

1裆蒸、 IDA中各種命名前綴(sub、loc必峰、offset等)的含義

IDA自動生成假名字洪唐。他們用于表示子函數(shù),程序地址和數(shù)據(jù)自点。根據(jù)不同的類型和值假名字有不同前綴

sub_ 指令和子函數(shù)起點(diǎn)
locret_ 返回指令 
loc_ 指令
off_ 數(shù)據(jù)桐罕,包含偏移量
seg_ 數(shù)據(jù)脉让,包含段地址值
asc_ 數(shù)據(jù)桂敛,ASCII字符串
byte_ 數(shù)據(jù),字節(jié)(或字節(jié)數(shù)組)
word_ 數(shù)據(jù)溅潜,16位數(shù)據(jù)(或字?jǐn)?shù)組)
dword_ 數(shù)據(jù)术唬,32位數(shù)據(jù)(或雙字?jǐn)?shù)組)
qword_ 數(shù)據(jù),64位數(shù)據(jù)(或4字?jǐn)?shù)組)
flt_ 浮點(diǎn)數(shù)據(jù)滚澜,32位(或浮點(diǎn)數(shù)組)
dbl_ 浮點(diǎn)數(shù)粗仓,64位(或雙精度數(shù)組)
tbyte_ 浮點(diǎn)數(shù),80位(或擴(kuò)展精度浮點(diǎn)數(shù))
stru_ 結(jié)構(gòu)體(或結(jié)構(gòu)體數(shù)組)
algn_ 對齊指示
unk_ 未處理字節(jié)

2设捐、在graph view里顯示offset

先切換到graph view借浊,然后在菜單上的“Options”、“General”里勾選

點(diǎn)擊ok萝招,即可看到效果

可以看到蚂斤,多了前面的地址,這樣就不用再graph view和text view之間來回切換了槐沼。

2曙蒸、Rebase Program

剛開始進(jìn)行逆向分析的時候捌治,我們就接觸到這個公式

偏移后模塊基地址 = 偏移前模塊基地址 + ASLR偏移

我們在每次下斷點(diǎn)的時候,都是通過先手工在IDA里查看的偏移前模塊基地址纽窟,再手工在LLDB里查看ASLR偏移肖油,最后手工在計算器里將兩者相加的方式來計算偏移后模塊基地址的,雖然結(jié)果可以保證100%正確臂港,但操作流程稍有些復(fù)雜森枪,特別是每次計算偏移后模塊基地址,每次copy趋艘,copy疲恢,然后add,這樣真的超級煩超級煩有木有瓷胧?那么显拳,有沒有簡單的方法呢?

接下來搓萧,我們一起看看杂数,如何才能只手工操作一次,就可以搞定所有斷點(diǎn)的地址瘸洛。那就是讓IDA直接顯示計算好的偏移后模塊基地址揍移。

1) 首先在LLDB里查看待分析模塊的ASLR偏移
(lldb) image list -o -f
[  0] 0x00000000000a0000 /var/containers/Bundle/Application/046BD91B-E9FB-4C77-8EC3-908237232716/TargetApp.app/TargetApp(0x00000001000a0000)
...

這里ASLR偏移是0x00000000000a0000。

2) 打開IDA設(shè)置rebase program

首先將鼠標(biāo)光標(biāo)點(diǎn)擊到IDA右邊的界面反肋,這樣才會有我們需要設(shè)置的選項(xiàng)那伐。

在菜單上的“Edit”、“Segments”石蔗、“Rebase program...”里將“Value”的值加上TargetApp的ASLR偏移罕邀,

我們可以看到起始的地址是0x100000000

加上ASLR偏移地址

點(diǎn)擊ok,這里需要等待一會养距。完成之后現(xiàn)在IDA里面的地址就是我們想要的偏移后模塊基地址了诉探,就可以直接拿來用了。

我們走起一個試驗(yàn)一下:

我們在右邊IDA view里搜索方法名onClickButtonPressed棍厌,對這個方法進(jìn)行下斷點(diǎn)

搜索匹配到:

然后我們在調(diào)試的時候lldb下斷點(diǎn)

(lldb) br delete
About to delete all breakpoints, do you want to do that?: [Y/n] y
All breakpoints removed. (4 breakpoints)
(lldb) br s -a '0x0000000100558270'
Breakpoint 21: where = lagouhr_appstore`-[LGNavigateCompanyInfoViewController onClickButtonPressed:], address = 0x0000000100558270
(lldb) 

ok肾胯,可以看到下面斷點(diǎn)的方法就是我們搜索的方法名。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耘纱,一起剝皮案震驚了整個濱河市敬肚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌束析,老刑警劉巖艳馒,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異畸陡,居然都是意外死亡鹰溜,警方通過查閱死者的電腦和手機(jī)虽填,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曹动,“玉大人斋日,你說我怎么就攤上這事∧钩拢” “怎么了恶守?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贡必。 經(jīng)常有香客問我兔港,道長,這世上最難降的妖魔是什么仔拟? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任衫樊,我火速辦了婚禮,結(jié)果婚禮上利花,老公的妹妹穿的比我還像新娘科侈。我一直安慰自己,他們只是感情好炒事,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布臀栈。 她就那樣靜靜地躺著,像睡著了一般挠乳。 火紅的嫁衣襯著肌膚如雪权薯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天睡扬,我揣著相機(jī)與錄音盟蚣,去河邊找鬼。 笑死威蕉,一個胖子當(dāng)著我的面吹牛刁俭,可吹牛的內(nèi)容都是我干的橄仍。 我是一名探鬼主播韧涨,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侮繁!你這毒婦竟也來了虑粥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤宪哩,失蹤者是張志新(化名)和其女友劉穎娩贷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锁孟,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡彬祖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年茁瘦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片储笑。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡甜熔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出突倍,到底是詐尸還是另有隱情腔稀,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布羽历,位于F島的核電站焊虏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秕磷。R本人自食惡果不足惜诵闭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澎嚣。 院中可真熱鬧涂圆,春花似錦、人聲如沸币叹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颈抚。三九已至踩衩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贩汉,已是汗流浹背驱富。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留匹舞,地道東北人褐鸥。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像赐稽,于是被迫代替她去往敵國和親叫榕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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