开发经验随笔Android程序员

安卓IDA动态调试初体验

2017-09-28  本文已影响328人  山东大葱哥

今天终于完成了一个基于动态调试的安卓逆向的题目,发现动态调试真的蛮有趣的,今天算初体验吧。

抽时间我把整个过程都细化出来,录个视频或者写个完整文档,有需要朋友给我留言或私信吧。
在此感谢简书作者aimua提供的文章:链接地址!这是2016年zctf的一道Android题目,样本和本文用到的部分工具在文章末尾可以下载。

总体流程

大流程是按照aimua作者的文章进行的,大家可以参考原文,有几处不同之处:

  1. 静态分析
  2. smali patch app中的定时任务
    这个我直接修改的smali文件,把time的shedule直接 # 号注释掉了,然后重新打包签名。
  3. 动态调试
  4. so patch so中的反调试校验
    这个我是直接patch的so文件,将ptrace的返回值设为0 movs R0 #0。然后重新打包签名。
  5. dump核心数据
  6. 通过图像分层工具拿到flag

简单写一下调试的几个注意事项:

  1. 要用真机调试
    什么bluestack、夜神等都不能在ida中好好的玩耍,有大神说可以用gdb玩,我还配好环境,等有时间再玩一把gdb的。
  2. 真机要root过
    360超级root过的有时候会root不彻底,在进行调试时会提示权限问题,可以下载一个adbd insecure.apk进行完整root,安装好后只需要配置两个勾选项,然后重启手机即可。
  3. android_server不要放在sdcard目录下
    需要将ida下的android_server拷贝到手机的 /data/目录或子目录下,不能放到/sdcard目录下,/sdcard目录下文件不支持chmod,我在这里费了很长时间,最后咨询了大神才知道。
  4. adb shell后,su提示权限不足
    如果已经完全root还出这个提示,建议先重启手机,然后看360超级root中---root管理,会看到一个被禁止的应用“控制台程序”,把他设为允许即可。
  5. ida挂载异常
    ida挂载,选择进程后提示
    The debugger could not attach to the selected process. This can perhaps indicate the process was just terminated, or that you don't have the necessary privileges.
    如果排除权限问题,解决办法可以重启手机或者将手机的应用彻底终止,重新打开应用进行挂载。还有一种情况就是应用被别的进程做了ptrace,也就是做了反调试,那就需要跟踪到对应的指令patch掉。
  6. ida要设置好调试选项

    这个调试选项貌似不能自动保存,如果重开ida或者重新开启调试时都会自动情况,所以对于一些有反调试的程序一定要检查好,避免走弯路。 ida调试选项

相关工具

  1. ida
  2. apktook
  3. jeb
  4. autosign

具体参考关于安卓逆向你需要知道的工具及网站

附件

apk样本和stegsolve工具下载: apk样本和stegsolve工具下载

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入我的圈子多多交流,共同进步,具体看我的个人介绍,我们一起学技术!
朋友圈,点赞是表态,评论才是真爱;在公众号,点赞只是认同,赞赏才是死忠;在简书,阅读只是眼动,喜欢才是心动。

上一篇下一篇

猜你喜欢

热点阅读