我正在使用Drozer工具(请参阅:https://www.mwrinfosecurity.com/products/drozer/)
此工具有许多实用程序,其中一个允许我列出应用程序中的所有URI。例如:
如果我执行:run scanner.provider.finduris -a com.android.contacts
Unable to Query content://icc2/sdn/
Unable to Query content://logs/call/frequent/
Unable to Query content://com.android.contacts/raw_contacts/adn2/
Unable to Query content://com.samsung.rcs.serviceprovider
Unable to Query content://com.android.contacts/groups_list/aggregated/
Unable to Query content://com.android.contacts/digit_name_lookup_full/
Unable to Query content://logs/call/frequent
Unable to Query content://com.android.contacts/log_name_lookup/
Unable to Query content://icc2/adn/emails
Unable to Query content://com.sec.provider.simcardmanagement/registerinfo/
Unable to Query content://logs/duration
Unable to Query content://com.samsung.rcs.rcscontacts/contacts
Accessible content URIs:
content://com.android.settings.personalvibration.PersonalVibrationProvider/
content://com.android.settings.personalvibration.PersonalVibrationProvider
我的问题是:我可以使用相同的Drozer工具做任何机制吗?应该有办法做到这一点但我目前不知道。因此, 使用应用程序及其packagename,如何列出应用程序中的所有URI?
我非常期待看到你的答案。
答案 0 :(得分:2)
drozer所做的就是在目标软件包的 classes.dex 上执行字符串。然后解析以content://开头的所有内容。这是一种完全不可靠的方法,只能用作起点。 来源:https://github.com/mwrlabs/drozer/blob/develop/src/drozer/modules/common/provider.py
中的 findContentUris()没有正式的Android API来检索完整的内容URI路径,这就是为什么drozer必须使用hacky方法。您可以阅读并理解内容提供者代码,以获取所有可能的路径。