日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

IDA遠(yuǎn)程調(diào)試android so

 herowuking 2015-01-11
  這里記錄本人的學(xué)習(xí)的過程,分享給大家.希望大家不要像我一樣走彎路.
我的方法只需要ida,不用sdk,ndk,jre什么一大票東西,很快就能上手
有什么不對之處歡迎指正.
-----------------------------------------
在xda看到受到某人鼓動,心血來潮想寫一個官方rom的解擾器.
sony的平板的的官方rom是加密的,直接看不到文件內(nèi)容.心想既然平板自己能解開升級,解密程序一定在板子能找到.但如何跟蹤平板里面的c程序就成了攔路虎.
(本人平板系統(tǒng)3.2.1,已root)

以前用過幾次IDA PRO,略懂.于是找了新一點(diǎn)的6.1版本,看看說明,在平板運(yùn)行客戶端就行
讓豌豆莢幫我連好驅(qū)動.
把ida的android_server推送到/data/local/tmp
Plain Text code?
1
adb push android data/local/tmp


進(jìn)shell加運(yùn)行屬性,以root身份運(yùn)行
Plain Text code?
1
2
3
4
5
6
adb shell
su
cd data/local/tmp
chown 0.0 *
chmod 777 *
./android_server



讓adb轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)
Plain Text code?
1
adb forward tcp:23946 tcp:23946



啟動ida pro,選擇調(diào)試器remote android debugger,設(shè)置網(wǎng)絡(luò)127.0.0.1端口23946
在debugger菜單選attach

彈出窗口讓我選進(jìn)程


然后選擇我的目標(biāo)程序,確定,哈哈,停到程序里了

第一次看到這,讓我興奮不已。
隨后發(fā)現(xiàn)根不能進(jìn)斷點(diǎn)。仔細(xì)看命令窗口才發(fā)現(xiàn)
Plain Text code?
1
2
3
4
Could not set the shlib bpt, shared object events will not be handled
B0001000: loaded /system/bin/linker
8000: process /system/bin/app_process has started (pid=4473)
Debugger: attached to process /system/bin/app_process (pid=4473)


慘,這個是怎么回事?一番谷歌,才找到這個
www.woodmann.com/forum/archive/index.php/t-14714.html
大概是說ida6.1帶的調(diào)試服務(wù)端只兼容安卓2.x版本,在我的3.2水土不服,無法附加到指定線程。
好吧,只好另想辦法,不過此時,仔細(xì)瀏覽一下開始停的地方,上下看看,看到我想要跟的so文件的加載地址是0x81000000,記下來,這有用。另外在attach也看到目標(biāo)進(jìn)程的pid,這也有用。

看到debugger選擇里有remote GDB,這提醒我要找個arm版本gdb server.哪里有預(yù)編譯好文件呢。NDK!,下載NDK,不用裝,解壓就能看到在預(yù)編譯文件夾就有。于是又把gdbserver推送到平板運(yùn)行起來,別忘了讓adb轉(zhuǎn)發(fā)你的端口,我這里用1111端口,假設(shè)上面記得pid是1234
Plain Text code?
1
2
3
4
adn forward rcp:1111 tcp1111
adb shell
su
./gdbserver --attach :1111 1234 

重新運(yùn)行ida,換debugger,指定端口1111,再attach.

好了我又進(jìn)來了,可是怎么斷點(diǎn)還不停?
哦,前面不是看到我要跟蹤的so地址是0x81000000嘛,ida里rebase到那個地址,再下斷點(diǎn)

哈哈,終于停到我要的地方了。大功告成!
能跟蹤了,看不看得懂代碼意圖,就看你的功力了 




注,調(diào)試命令,如單步什么的都無效,你只能多下些斷點(diǎn)了。
運(yùn)行到斷點(diǎn)是,斷點(diǎn)所在位置代碼會顯示成別的,影響閱讀,也影響流程圖繪制,這只能克服。
斷點(diǎn)停的太久,系統(tǒng)聽不到進(jìn)程的心跳,就會詢問是否結(jié)束程序,別點(diǎn)哦

至于我的程序,我只看懂流程,不全懂(不是上面的程序)。但是還是照貓畫虎的移植到windows上,完成解碼器。
具體方法,下回再說,嘻嘻

gdbserver我已上傳到下載頻道,還在審核,晚些應(yīng)該能搜索到。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多