安卓逆向笔记(6)——动态调试


未完,编辑ing…

工具

  1. DDMS
    位于安卓sdk的安装目录下,具体目录:…(你自己安装sdk的路径)\android-sdk\tools\monitor.bat ,这个bat就是DDMS,在eclipse和Android Studio界面打开的动态调试器都是这个东西。可以直接双击这个bat运行。
  2. AndBug
    调试Android程序
  3. IDA Pro
    调试Android原生程序
  4. gdb
    调试Android原生程序

动态调试原理

Android程序的调试分为Android SDK开发的Java程序调试Android NDK开发的原生程序调试
Java程序调试
利用Dalvik虚拟机提供的调试特性来进行调试。

原生程序调试
使用传统的Linux程序调试方法,如GNU调试服务器来连接进行调试。
原生程序又分为动态链接库普通可执行程序两种。

在真机中调试

在真机中进行调试,需要先检查真机的ro.debuggable属性值是否为1,如果为1,则真机中所有app都可调试。如果为0,则只有app的AndroidMainfest.xml文件中,标签中加入了android:debuggable="true"属性,才能进行调试。
在cmd中输入命令:

adb shell getprop ro.debuggable

获取ro.debuggable的值。一般真机出厂的时候,该值都会被设置为0。

在模拟器中调试

在模拟器中,系统的ro.debuggable属性默认为1,因此模拟器中的所有进程都可以随意调试。

寻找关键代码

代码注入法

字符串搜索,分析可疑代码位置,注入smali代码,打log或者toast消息,修改完成后重打包,再次操作app,分析日志或者看toast,在完成目标操作后是否有日志或者toast以确定是否找到了正确的代码位置

栈跟踪法

  1. ddms method profiling打印函数调用栈
  2. frida hook 打印函数调用栈
  3. 葫芦娃的Zentrace
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值