本文涉及到的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(安卓)Activity界面切换添加动画特效
  2. Android(安卓)拨号器的简单实现
  3. android studio调试c/c++代码
  4. android用户界面之按钮(Button)教程实例汇
  5. 锁屏界面
  6. android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序
  7. android 零星调试笔记
  8. android用户界面-组件Widget-地图视图MapView
  9. android用户界面-组件Widget-画廊视图Gallery

随机推荐

  1. Android新建项目报错android:icon="@draw
  2. Android(安卓)应用中执行cd命令
  3. Android不显示开机向导和开机气泡
  4. Android(安卓)软件盘弹出时把顶部局顶上
  5. Android(安卓)关于获取摄像头帧数据
  6. Android(安卓)WebView选择图片、发送图片
  7. 判断移动终端是安卓还是iOS
  8. Android资源,国内镜像站点,博客文章等
  9. Android(安卓)WebView的使用(一)
  10. Android(安卓)Studio(七):项目从Eclipse到