【问题标题】:Launch application from adb without knowing intent, package, and activity在不知道意图、包和活动的情况下从 adb 启动应用程序
【发布时间】:2013-05-29 09:07:58
【问题描述】:

作为研究项目的一部分,我正在对一组被识别为包含恶意代码的 Android 应用程序进行方法分析工作。为了自动化这个过程,我制作了一个批处理文件和一个 java 可执行文件来解码、添加 android:debuggable 标志、重建、签名并将应用程序安装到测试设备。下一步是启动应用程序。

有没有办法在不知道相关应用程序的意图、包或活动的情况下从 adb 执行此操作?我知道 adb shell 的“am start”命令,但如果我没记错的话,这至少需要启动包和活动。

有没有办法在没有这些信息的情况下启动应用程序?或者失败了,另一种方法来获取包和活动,然后在我的批处理文件中使用它?

【问题讨论】:

    标签: android android-manifest adb malware-detection


    【解决方案1】:

    在 adb 以 root(或模拟器)运行的设备上运行它们会容易得多,然后您可以附加而无需修改。如果您正在解析 APK,您不妨解析清单并构建一个包、意图等列表。当然,Android 中没有“启动应用程序”——您可以启动一个活动或服务,而不是必须是主要/根活动。特别是对于(疑似)恶意软件,它很可能试图将其主要活动隐藏在良性条目后面。

    【讨论】:

    • 基本上,我应该只查看清单的其余部分以了解包、意图和东西吗?另外,是的,我对问题的措辞并不准确,使用“启动应用程序”而不是活动,我很抱歉。
    • 不用道歉,重点是入口点通常不止一个。例如,传入的 SMS 或 GCM 通知可能会触发恶意行为。您至少需要检查所有已注册的组件。当然,根据意图数据和/或附加信息,行为可能会有所不同......
    • 我对这项任务的说明比这更有限,但我一定会在下一次研究会议上提出这些问题。同时,我将解析包和活动清单的其余部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多