zoukankan      html  css  js  c++  java
  • 【转】IDA 调试 Android

    最近都在学一些反编译安卓相关的东西,其实网上有很多教程关于用 IDA 调试 Android 的过程,主要记录一下我遇到的坑

    首先 Android手机要是root过的

    还要注意的一点是apk中的 AndroidManifest.xml 中debuggable要为true

    1、将 apk 装到手机上,然后执行命令行:

    adb shell am start -D -n "com.gabo.test/com.unity3d.player.UnityPlayerActivity"

    最后一个参数是"包名/要运行的Activity"

    2、查找运行的应用的端口号,并执行命令:adb forward tcp:5005 jdwp:9973

     

    3、首先打开 IDA 中dbgsrv文件夹,将里面的 android_server 弄到手机上:

     adb push android_server /data/local/tmp

    4、运行android_server

    adb shell

    chmod 755 android_server

    5、打开另一个CMD 窗口,运行  adb forward tcp:23946 tcp23946

    6、运行 IDA,设置Debugger

     选择Android debugger

    输入Hostname为localhost,点击 Debug options 按钮设置

    然后确定

    若有发现其他错误的话,可能是因为没有第三步没有弄或端口号弄错了,或者失败了,在操作一次第5步,然后再进行第6步就可以了

    若发现以下问题,可能是因为运行了64位的IAD,重新运行32位的IDA

      上面是32位,下面64位,重新运行上面的重新操作一变就可以了。。我当时就是弹窗的,现在就变成只提示下面的错误了

    上面的问题解决完后,会弹出窗口,然后选中我们要的进程,点ok就行

    7、第6步结束后,IDA 会自动暂停,这时候执行 jdb  -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=5005

    因为上面运行了adb shell am start -D -n  这条命令,设备上运行的应用会等附加调试后才会继续执行下去,上面的jdb命令就是为了让应用继续执行

    8、之后回到 IDA,可以先找到自己想要断点的地方设置好断点后,按 F9 继续执行下去,刚才的jdb 命令就会看到结果

    然后就结束了。。

    IDA下载地址

    链接: http://pan.baidu.com/s/1kV2JRZx 密码: s59q

    Android_server提示端口被占用

     

    root@android:/data/local/tmp # ./android_server
    IDA Android 32-bit remote debug server(ST) v1.19. Hex-Rays (c) 2004-2015
    Listening on port #23946...
    另开命令行进行tcp端口转发:

    adb forward tcp:23946 tcp:23946

    此android_server需和ida是配套的
    出现 bind: Address already in use 错误
    这是因为手机中可能已经在运行android_server,使用 ps | grep android_server 看一下,有的话杀掉.
    如下:(14061是pid)
    root@android:/ # ps | grep android_server
    root 14061 13574 11180 9504 ffffffff 40183da0 S /data/local/tmp/android_server
    127|root@android:/ # kill -s 9 14061

    from:https://www.cnblogs.com/gabo/p/5631643.html

  • 相关阅读:
    【Linux】linux中很有用的指令(练习)
    【C 标准库】<string.h>
    【Linux网络编程】使用GDB调试程序
    【LINUX网络编程】Makefile文件
    【UNIX网络编程】TCP客户/服务器程序示例
    【UNIX网络编程】基本TCP套接字编程
    pyQt5新手教程 (二)通过jupyter开始你的旅程-编写一个空白窗口
    pyQt5新手教程 (一)通过anaconda安装pyqt包
    如何把没用的tplink4C68路由器连起来
    xcode10升级之后开始安装cocoapods
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/11010304.html
Copyright © 2011-2022 走看看