android 程序动态分析,动态分析Android程序

在分析经过加密混淆的Android程序时,仅使用静态分析技术往往达不到理想的效果.

动态分析分为动态跟踪和动态调试:

1. 动态跟踪:侧重于自动化分析

2. 动态调试:动态调试需要分析人员参与进来,依靠调试器的能力完成分析工作.

动态分析框架

MobSF同时支持Android,iOS,Windows平台上的软件分析,它的测试框架同时支持静态分析,动态分析和webAPI测试.

动态分析技巧

主流的动态分析框架除了提供了一套完整,通用的动态分析方法,通常还具备高度的可配置特性与可扩展性,但对一些应用来说,还是有一些分析要点没有提供.

代码注入法

一个程序在发布时通常不会保留Log信息,如果想观察程序特定位置的输出信息,需要手动进行代码注入.代码注入是指先反编译Android程序,然后在反汇编出来的smali文件中添加Log调用代码,最后重新打包程序并运行,查看输出结果.

使用代码注入可以精确输出程序运行时的中间结果,而输出的结果则可以作为程序 分析的风向标.

栈跟踪法

尽管logcat配合代码注入的方法在分析程序时屡试不爽,但需要分析人员阅读大量的反汇编代码来寻找程序的输出点,且在此过程中需要多次手动注入LOG代码.因此需要一种快速定位程序关键点的方法,栈跟踪法也是属于代码注入的范畴,主要的操作是手动向反汇编后的smali文件中添加用于输出栈跟踪信息的代码.与LOG输出代码不同的是,采用栈跟踪法,只需要知道大概的代码注入点,而且注入后的反馈信息比Log注入要详细的多.栈跟踪信息记录了从程序启动到插入点所有被调用过的方法.

Method Profiling

Windows平台上的OD有一个trace功能,其作用是在程序运行时记录每个被调用的API的名称.Android SDK也提供了类似的调试方法,它就是Method Profiling.

使用JDB动态调试APK

使用JEB动态调试APK

使用IDA Pro动态调试APK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值