2017-06-19 31 views
0

我在使用Genymotion的根设备上运行易受攻击的android应用程序,我试图读取不同android应用程序中的文件目录中的共享首选项和文件,如: /data/data/xxxx/config.xml和 /data/data/xxx/files/xxxx.xmlAndroid:检索其他应用程序的共享首选项(rooted设备)

我想以编程方式使用示例java应用程序读取此数据以显示logcat中的数据,但是何时我尝试读取这些文件,我在logcat上遇到了许可问题。

有趣的是,该应用程序是一个植根设备上运行,所以我想有机会获得其他应用程序sharedpreferences.I需要这样的事情,但在logcat中显示此: https://lightsec.wordpress.com/2014/04/28/android-sharedpreferences-insecure-storage/

我也曾经尝试这个答案,但它不工作:

Android: Retrieving shared preferences of other application

我怎样才能检索到来自logcat的sharedpreferences并显示所有可用的钥匙?

回答

1

这两个链接都描述了如何在您试图读取的应用程序中使用WORLD_XX常量。

从字面上看,世界上没有人会使用这些常量,因为他们不希望他们的共享偏好被他人阅读。每个人都使用MODE_PRIVATE常量,所以他们不能被其他人阅读。

要达到此目的,您需要执行以下操作:
1)在您的应用程序中请求根访问权限(拥有根插电话是不够的)。 (像RootTools这样的库可以帮助你做到这一点)
2)获得root权限后,必须从文件系统中读取原始.xml文件,并相应地解析它。然后你可以阅读所有的数据,甚至可以写信给它,如果你想。

听起来有点像你有一个根深蒂固的手机和你的应用程序有root权限的混淆,那些是不同的东西。

+0

感谢您的回复,我的问题是,当我想要更改xml文件的权限时,无论使用roottools或androidshell并阅读它,supersu授予访问对话出现,并要求授予,我不知道如何绕过它。问题是,我需要向客户演示如何在没有用户交互的情况下获取sharepreferences数据,甚至不向androidmanifest添加权限,这是否可行? –

+0

没有用户交互?这是绝对不可能的,甚至没有根。当您请求root访问权限时,系统会提示用户接受或拒绝您的应用程序应具有root权限,该对话框无法通过任何方式绕过。 – Moonbloom

+0

@Moonbloom你知道你的东西,感谢分享!我肯定会给你买啤酒! –