本文涉及到的apk,请在github下载https://github.com/jltxgcy/AliCrack/AliCrackme_1.apk。 

   0x00

    我们以阿里比赛第一题为例,来动态调试dex文件。参考IDA动态调试Android的DEX文件一文,首先AndroidManifest.xml里面android:debuggable="true"。


    0x01

    下面详细说步骤。

    1、将classes.dex拖入IDA中。

    2、选择Debugger->Debugger options->Set specific options,在Package Name和Activity中填入主Activity的包名和类名。

IDA动态调试Android的DEX文件_第1张图片

    

    3、选择Debugger->Process options,将Port改为8700。

IDA动态调试Android的DEX文件_第2张图片


    4、下断点

    在左边的侧边栏搜索onCreate。

IDA动态调试Android的DEX文件_第3张图片

    点击[email protected],设置断点。

IDA动态调试Android的DEX文件_第4张图片


    5、手机端开启android_server

IDA动态调试Android的DEX文件_第5张图片


    6、端口转发,打开要调试的Activity

IDA动态调试Android的DEX文件_第6张图片

   此时应用的界面处于等阶段,如下:

IDA动态调试Android的DEX文件_第7张图片

    注意此时在第7步前一定要关闭eclipse,也就是关闭ddms,否则IDA提示can’t bind socket。

    

    7、选择Debugger->attach to process。出现如下界面:

IDA动态调试Android的DEX文件_第8张图片

    接下来,出现的界面就一直Cancel就好了。

    我们看到程序停在的MainActivity的onCreate方法。按F8单步执行。

IDA动态调试Android的DEX文件_第9张图片


    8、怎么在onClick方法下断点呢?

    我们使用双开IDA ,在静态分析中,左侧边栏搜索onClick。

IDA动态调试Android的DEX文件_第10张图片

    点击[email protected],如下图:

IDA动态调试Android的DEX文件_第11张图片

    所以在动态调试的IDA中,按G,调到7A88C的地址。

IDA动态调试Android的DEX文件_第12张图片

    然后下断点。

IDA动态调试Android的DEX文件_第13张图片

   然后点击F8,让程序继续运行,刚才停在onCreate方法。


   此时IDA界面如下:

IDA动态调试Android的DEX文件_第14张图片

    应用程序界面如下:

IDA动态调试Android的DEX文件_第15张图片

    此时输入密码,点击登录,程序会停留在刚才下的断点位置。

IDA动态调试Android的DEX文件_第16张图片

   此时按F8,就可以单步调试onClick方法了。

   和IDA动态调试so中少了一步jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost。

更多相关文章

  1. android反编译apk文件
  2. [Android]自定义图片左上角斜着的View
  3. android工程下的文件资源类型
  4. linux内核启动android文件系统过程分析
  5. Android 动态改变app图标
  6. android 加载图片轻松避免OOM(out of memory)
  7. Android 从properties配置文件读取数据
  8. Android SAX和DOM解析XML文件

随机推荐

  1. android颜色对应的xml配置值,颜色表
  2. android弹出框2(相当于通知)
  3. android线性布局LinerLayout
  4. Android开发秘籍学习笔记(五)
  5. android animation中的参数interpolator
  6. Visual Studio 2010 也能开发Android(安
  7. Android(安卓)Camera 找来找去还是觉得ap
  8. android http连接超时处理
  9. Android下文件操作模式(含SDCard的读写)
  10. Android(安卓)新手常见的10个误区(下)