本文涉及到的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的包名和类名。


    

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



    4、下断点

    在左边的侧边栏搜索onCreate。


    点击MainActivity_onCreate@VL,设置断点。



    5、手机端开启android_server



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


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


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

    

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


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

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



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

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


    点击MainActivity$1_onClick@VL,如下图:


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


    然后下断点。


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


   此时IDA界面如下:


    应用程序界面如下:


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


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

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

更多相关文章

  1. android知识链接汇总(2)
  2. 《Android系统级深入开发—移植与调试 》china-pub新书上架
  3. Android(安卓)Activity 界面跳转动画(系统、自定义)
  4. Android(安卓)启动画面 SplashScreen
  5. Android修行之路——界面布局
  6. Android设置Activity(界面)为全屏显示的两种方法 xml和java程序
  7. Android——自定义View类(一 )
  8. [Android]调试webview
  9. Android(安卓)Intent实现页面跳转的方法示例

随机推荐

  1. Android音视频处理之MediaExtractor
  2. 求助: Android 加载 webview, 点击webvie
  3. android 布局文件属性说明
  4. Android imageView 属性知识
  5. android TextView xml中设置最大行数
  6. android 问题总结
  7. android 开发包的离线安装方式
  8. Android —— 第一次安装 Android Studio
  9. Android 四大组件之Activity生命周期
  10. Android Studio apk生成路径