日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用IDA6.6进行apk dex代码动态调试

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用IDA6.6进行apk dex代码动态调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上公開IDA6.6已經有一段時間,這個版本有個好處就是可以動態調試java代碼。正好現在需要動態調試,所以順便練習一下。

根據android的官方文檔,如果要調試一個apk里面的dex代碼,必須滿足以下兩個條件中的任何一個:

1.apk中的AndroidManifest.xml文件中的Application標簽包含屬性android:debuggable=”true”

2./default.prop中ro.debuggable的值為1

由于一般軟件發布時都會把android:debuggable設置為false,所以要達成條件1需要反編譯原apk,修改AndroidManifest.xml并進行重新打包,這樣不僅麻煩,而且很多軟件進行了加固,要破解很難。所以想辦法滿足第2個條件是個一勞永逸的辦法。

由于default.prop是保存在boot.img的ramdisk中,這部分每次重新啟動都會重新從rom中加載,所以要到目的必須修改boot.img中的ramdisk并重新刷到設備中。修改步驟如下:

1.從Google官方網站下載到boot.img2.使用工具(abootimg,gunzip, cpio)把boot.img完全解開,獲取到default.prop3.修改default.prop4.把修改后的文件重新打包成boot_new.img5.使用fastboot工具把boot_new.img刷入設備(fastboot flash boot boot_new.img)

具體可參考:http://www.cnblogs.com/goodhacker/p/4106139.html

由于我們這篇文章的重點是如何動態調試dex代碼,所以我們就假設該dex是可調試的。

1.用ida打開apk文件,選擇dex文件進行加載 2.設置debugger選項,Debugger->Debugger options->Set specific options,按如圖1所示進行設置(adb路徑也要設置),然后一路確定返回 3.找到要下斷點的位置,光標移到要下斷點的那一行,按f2下斷點 4.手機開啟調試選項,連接到電腦,運行apk 5.選中IDA pro窗口,按f9運行,如果出現如圖2的畫面,就說明設置成功,可以進行動態調試了。

圖1 調試設置?

圖2 調試界面

如何查看寄存器的值呢?選中ida->debugger->use source level debugger,然后點擊ida->debugger->debugger windows->locals打開本地變量窗口,就可以查看寄存器的值了。

如果變量的值出現“Bad type”的情況,如下圖所示:

可以按下述步驟解決:

點擊“Debugger->Debugger windows->Watch view”,會彈出“Watch view”窗口:

然后在Watch view窗口中右擊,選擇“Add watch”:

然后在彈出的窗口中自己為變量添加一個類型,類似這樣:

(Object*)v0 (String)v0 (char*)v0 (int)v0

假設我們要設置v0寄存器值的類型為String類型,就在在彈出的對話框中輸入(String)v0,點擊“OK”就可以在Watch view窗口中看到變量值了。

注意:如果運行過程中一直顯示如圖3所示窗口,就需要關注一下你的手機屏幕,看是否是需要與用戶進行交互了。

圖3

參考文章:http://www.joenchen.com/archives/1196

總結

以上是生活随笔為你收集整理的利用IDA6.6进行apk dex代码动态调试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。