首页 > 移动平台 > 详细

IDA动态调试Android的DEX文件

时间:2016-01-28 17:26:42      阅读:318      评论:0      收藏:0      [点我收藏+]

    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。

IDA动态调试Android的DEX文件

原文:http://blog.csdn.net/jltxgcy/article/details/50600241

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!