zoukankan      html  css  js  c++  java
  • app动态调试so层环境搭建

    一、首先打开IDA 中dbgsrv文件夹,将里面的 android_server 传输到手机上

    切换到IDA文件路径中D:Program Files (x86)IDA 6.8dbgsrv

    adb push android_server /data/local/tmp

    二、运行android_server

    C:Userscccv20>adb shell
    shell@shamu:/ $ su
    su
    root@shamu:/ # cd /data/local/tmp
    cd /data/local/tmp
    1|root@shamu:/data/local/tmp # chmod 777 android_server
    chmod 755 android_server
    root@shamu:/data/local/tmp # ./android_server
    ./android_server
    IDA Android 32-bit remote debug server(ST) v1.19. Hex-Rays (c) 2004-2015
    Listening on port #23946...
    

    Android_server提示端口被占用

    如果Android_server提示端口被占用可以执行以下命令

    root@shamu:/data/local/tmp # ps | grep android_server
    root@shamu:/data/local/tmp # kill -s 9 23031

    三、新打开另一个CMD窗口,端口转发

    运行以下命令
    adb forward tcp:23946 tcp:23946

    四、运行IDA,设置Debugger

    选择Remote ARMLinux/Android debugger

    hostname:主机号(默认127.0.0.1)
    port:端口号(之前android_server运行时的端口号或者端口转发的端口号

    Debugger里面勾选三项

    选择Debugger --> 点击 Debug options 按钮设置

    如果是 arm linux 虚拟机和真机,选择 Remote ARM Linux/Android debugger ,如果是 x86 的虚拟机,则选择 Remote Linux Debugger

    选择调试app包名

    点击 OK ,就会连接到虚拟机,如果连接成功,会弹出一个窗口,上面显示了虚拟机中运行的进程

  • 相关阅读:
    一文搞懂 ThreadLocal 原理
    听说用 Lombok 可以早点下班?
    原来 CPU 为程序性能优化做了这么多
    如何优雅地中止线程?
    线程数,射多少更舒适?
    Elasticsearch 之聚合分析入门
    Go语言之旅:基本类型
    Go语言之旅:包
    网络七层协议之数据链路层
    网络七层协议之物理层
  • 原文地址:https://www.cnblogs.com/gqv2009/p/14482357.html
Copyright © 2011-2022 走看看