美文网首页
Android逆向-动态调试环境搭建记录

Android逆向-动态调试环境搭建记录

作者: FallMR | 来源:发表于2017-04-01 19:05 被阅读0次

    常见Android调试方法简介:

    1.IDEA/Android Studio + SmaliIdea插件

    可调试smali文件,但无法跟入so
    本文不涉及该种方法(因为JEB完全可以替代)

    2.JEB直接调试

    可调试Smali和so,无缝衔接但是收费
    (简单来讲就是你买不起,但是嘛。。你懂的)

    3.IDA pro附加调试

    主要用来调试so,还有一手F5插件看源码

    实际使用如下

    JEB直接调试步骤
    1. JEB打开目标apk
    2. adb检查是否连接到目标机器



      如果出现了offline字样或者检测不到设备的话请依次检查以下内容:

    1. 手机/虚拟机是否打开了USB调试
    2. 确保系统中仅有一个adb可执行文件
    3. 执行adb kill-server,然后adb start-server
    1. 确保android:debuggable="true"
    2. 安装目标apk到机器,然后启动它


    注意这里启动不一定需要以调试模式启动,直接打开也可以

    1. 点击工具栏debug按钮进行附加




      如果已经打开对应app的话,下面process会自动显示对应进程,这里直接回车附加到对应进程即可

    2. 这个时候Toolbar上原来灰色的调试按钮会变为可用



      对应意义就不赘述了。。就单独提一点,JEB的断点比较蛋疼,需要用“执行到光标”来达到下断点的目的


    IDA调试步骤

    做过IDA动态调试linux的同学对这个应该就比较轻车熟路了

    注意以下步骤首先需要root权限

    1. 首先把IDA的dbgsrv文件夹下的android_server用adb给push到手机中,一般是/data/local/tmp中
    2. 然后进入adb shell,以su权限启动android_server(第一次需要chmod)
    3. 使用adb forward tcp:23946 tcp:23946进行端口转发
    4. 使用调试模式启动app,adb shell am start -D -n 包名/类名
    5. IDA attach进程,开始愉快的调试

    注意事项:

    1. IDA是可以选择暂停的时机的


    2. 针对反调试需要在so加载时暂停的情况
      你需要使用jdb辅助,具体步骤如下:

    adb forward tcp:8700 jdwp:进程号
    jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700

    相关文章

      网友评论

          本文标题:Android逆向-动态调试环境搭建记录

          本文链接:https://www.haomeiwen.com/subject/maosnttx.html