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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ida动态调试apk(so层)

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ida动态调试apk(so层) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 查看所有設備
    • 在IDA里面找到android_server(dbgsrv目錄)
    • 提權
    • 運行android_server服務端進行監聽
    • 端口轉發
    • 打開DDMS:觀察程序的端口號
    • 打不開monitor.bat報錯(Androidstudio/tools)
      • 報錯1
        • 原因
      • 報錯2
        • 原因
    • 總結monitor.bat所需的jdk
    • 掛起程序
      • 注意
    • 打開ida,進行調試
      • 由于目標計算機積極拒絕,無法連接。 when connecting to 127.0.0.1:23946
      • 因為沒進行端口轉發
    • 進程列表:選擇要調試的程序(可以ctrl+f,搜索包名)
    • 進入后勾選三項:
      • 補充:
    • 掛載、釋放(放手)

查看所有設備

adb devices

在IDA里面找到android_server(dbgsrv目錄)

adb push C:\Program Files\IDA Pro 7.5 SP3\dbgsrv\android_server data/local/tmp/android_server adb push C:\Program Files\IDA Pro 7.5 SP3\dbgsrv\android_server64 data/local/tmp/android_server64

提權

adb shell su cd data/local/tmp chmod 777 android_server64 chmod 777 android_server

運行android_server服務端進行監聽


端口號默認是:23946
補充:運行andorid_server并且修改端口號:./android_server -p端口號

端口轉發

因為android_server監聽的是23946,所以呢,我們轉發端口也就需要轉發23946

adb forward tcp:23946 tcp:23946

打開DDMS:觀察程序的端口號

打不開monitor.bat報錯(Androidstudio/tools)

報錯1

原因

因為你的jdk不是64bit

報錯2

!ENTRY org.eclipse.osgi 4 0 2021-06-16 15:16:45.533 !MESSAGE Application error !STACK 1 java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:567)at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)at org.eclipse.equinox.launcher.Main.run(Main.java:1438)

原因

因為你的jdk不是1.8的

總結monitor.bat所需的jdk

  • 版本不能太高(最好是1.8,也就是JAVASE8)
  • 必須是64bit,不能是32bit
  • 掛起程序

    adb shell am start -D -n 包名/類名

    adb shell am start -D -n com.example.ichunqiu_2/com.example.ichunqiu2.P_ichunqiu

    注意

    這里的包名和類名不一定一樣,(不一樣的時候不能省略,不能寫成這樣)

    adb shell am start -D -n com.example.ichunqiu_2/.P_ichunqiu

    打開ida,進行調試

  • 打開ida,選擇debugger -第二項-Remote ARMlinux(第四項)
  • 添加hostname和port:
  • hostname:主機號(默認127.0.0.1)
    port:端口號(之前android_server運行時的端口號或者端口轉發的端口號)

    如果出現以下原因

    由于目標計算機積極拒絕,無法連接。 when connecting to 127.0.0.1:23946

    因為沒進行端口轉發

    在cmd里面輸入adb forward tcp:23946 tcp:23946

    進程列表:選擇要調試的程序(可以ctrl+f,搜索包名)

    進入后勾選三項:

  • Suspend on process entry point程序入口點 斷下
  • Suspend on thread start/exit線程的退出或啟動 斷下
  • Suspend on library load/unload庫的加載和卸載 斷下
  • 補充:

    可以直接在這里F9(左上角有一個三角形)運行程序,然后放手;
    也可以,直接執行第九步,然后IDA運行程序

    掛載、釋放(放手)

    jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=端口號

    補充:此時觀察DDMS,被調試的程序前面有一個綠色的蟲子;

    總結

    以上是生活随笔為你收集整理的ida动态调试apk(so层)的全部內容,希望文章能夠幫你解決所遇到的問題。

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