IDA 動(dòng)態(tài)調(diào)試 android so

本篇介紹

使用 IDA 可以單步調(diào)試 so玖详,即使沒有源代碼也沒關(guān)系,這樣就可以逆向目標(biāo)應(yīng)用的so,分析內(nèi)部邏輯揽咕,本篇就介紹下如何操作。

ida debug so

首先得準(zhǔn)備一個(gè)android app套菜,帶jni的亲善。我這邊用了一個(gè)加法的例子,jni 代碼如下:

extern "C"
JNIEXPORT jint JNICALL
Java_com_example_idadebugdemo_MainActivity_addResultFromJNI(JNIEnv *env, jobject thiz, jint first,
                                                            jint second) {
    // TODO: implement addResultFromJNI()
    return first + second;
}

寫完后的界面如下:


WeChatWorkScreenshot_ba5b649d-8606-4dd2-b31e-a1e7786fbcb8.png

接下來就開始調(diào)試了:
運(yùn)行 android server逗柴,從IDA_Pro_7.7\dbgsrv下拷貝對(duì)應(yīng)的二進(jìn)制到手機(jī)/data/local/tmp目錄下蛹头,目前大部分Android手機(jī)都是64位的,選擇android_server64就可以了嚎于,然后給一個(gè)執(zhí)行權(quán)限

flame:/data/local/tmp # ./android_server64
IDA Android 64-bit remote debug server(ST) v7.7.27. Hex-Rays (c) 2004-2022                           
Listening on 0.0.0.0:23946...               

接下來在pc端配置下端口轉(zhuǎn)發(fā)掘而,這樣pc端才可以和手機(jī)正常通信

adb forward tcp:22222 tcp:23946

占用的電腦端口就是22222,在配置ida的時(shí)候也用這個(gè)端口就好了于购。

接下來以調(diào)試模式啟動(dòng)目標(biāo)應(yīng)用:

adb shell am start -D -n  com.example.idadebugdemo/com.example.idadebugdemo.MainActivity

這時(shí)候手機(jī)就會(huì)出現(xiàn)一個(gè)彈窗:


WXWorkCapture_16809283198923.png

接下來就是配置ida了袍睡,用ida 把so 加載進(jìn)去后,配置下debugger:


WXWorkCapture_16809283995015.png

接下來繼續(xù)設(shè)置bugger肋僧,將Events中的3個(gè)suspend選上斑胜,這樣即使目標(biāo)應(yīng)用有反逆向手段也可以在調(diào)試中繞過去控淡。


WXWorkCapture_16809284568433.png

接下來再配置下端口:


WXWorkCapture_16809286028796.png

然后attach 目標(biāo)應(yīng)用:


WXWorkCapture_16809287192239.png

接下來指令就會(huì)停止到一條svc 指令上:


WXWorkCapture_16809287816868.png

接下來設(shè)置下jdwp調(diào)試端口:

E:\02documents\01projects\01cpp\zego>adb shell
flame:/ # ps -ef |grep ida
radio          1133      1 0 15:45:29 ?     00:00:00 imsqmidaemon
u0_a141        2197    903 0 15:45:34 ?     00:00:00 .qtidataservices
u0_a144        2341    903 0 15:45:34 ?     00:00:00 .qtidataservices
u0_a142        2587    903 0 15:45:34 ?     00:00:00 .qtidataservices
u0_a3         27700    903 0 14:37:39 ?     00:00:00 com.example.idadebugdemo
root          27842  27838 0 14:50:02 pts/1 00:00:00 grep ida

adb forward tcp:8700 jdwp:27700 

繼續(xù)建立jdb鏈接:

jdb -connect "com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700"

接著就可以點(diǎn)F9運(yùn)行了。當(dāng)應(yīng)用開始加載到目標(biāo)so后止潘,就會(huì)出現(xiàn)一個(gè)彈窗


WXWorkCapture_16809292781788.png

這時(shí)候就根據(jù)實(shí)際情況選擇就好掺炭,最好是搞成一樣的so,這樣調(diào)試起來會(huì)方便一些凭戴。

接下來就可以找目標(biāo)地址打斷點(diǎn)了涧狮,當(dāng)然也可以提前打斷點(diǎn):


WXWorkCapture_16809299409604.png

接下來就可以觸發(fā)app邏輯了:


WXWorkCapture_16809299937607.png

這時(shí)候就命中斷點(diǎn)了:


WXWorkCapture_1680930046433.png

接下來就可以單獨(dú)調(diào)試了,甚至通過修改寄存器值修改代碼邏輯么夫,接下來就試試:


WXWorkCapture_16809302278998.png

我們輸入的是 1 +1,寄存器w8者冤,w9的值已經(jīng)加載成對(duì)應(yīng)的值了,接下來我們都修改成2:


WXWorkCapture_16809309523733.png

繼續(xù)運(yùn)行看看:


WXWorkCapture_1680930371225.png

這樣就完成單步調(diào)試和修改邏輯了档痪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涉枫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子腐螟,更是在濱河造成了極大的恐慌愿汰,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乐纸,死亡現(xiàn)場(chǎng)離奇詭異衬廷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锯仪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門泵督,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人庶喜,你說我怎么就攤上這事小腊。” “怎么了久窟?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵秩冈,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我斥扛,道長(zhǎng)入问,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任稀颁,我火速辦了婚禮芬失,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匾灶。我一直安慰自己棱烂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布阶女。 她就那樣靜靜地躺著颊糜,像睡著了一般哩治。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衬鱼,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天业筏,我揣著相機(jī)與錄音,去河邊找鬼鸟赫。 笑死蒜胖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惯疙。 我是一名探鬼主播翠勉,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼妖啥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼霉颠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荆虱,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蒿偎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后怀读,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诉位,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年菜枷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苍糠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啤誊,死狀恐怖岳瞭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蚊锹,我是刑警寧澤瞳筏,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站牡昆,受9級(jí)特大地震影響姚炕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丢烘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一柱宦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧播瞳,春花似錦掸刊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)说墨。三九已至,卻和暖如春苍柏,著一層夾襖步出監(jiān)牢的瞬間尼斧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工试吁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棺棵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓熄捍,卻偏偏與公主長(zhǎng)得像烛恤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子余耽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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