系统: 鸿蒙 2.0 (安卓 10), 后续版本不明.
这很危险吧. 某些软件是不是要改包名&自己打包比较好?
话说 iOS 下普通 app 能这样吗?
1
kera0a 2022-11-02 11:08:08 +08:00
iOS 也算间接可以吧
需要开发者提前把 app scheme 列表声明好,然后就能扫描有没有安装了。 但有点限制,列表好像不能超过 100 个,没有 url scheme 的 app 不能扫. |
2
paradoxs 2022-11-02 11:09:33 +08:00
iOS 的 scheme 算是个漏洞, 后面应该要被修复的。
|
3
yuyu2140 2022-11-02 11:13:11 +08:00
Android 11 ( API 30 )调整了软件包可见性,不要慌。
|
4
ysc3839 2022-11-02 11:13:19 +08:00
是的。据说 Android 12 开始才有限制,但我手头上没有 AOSP 12 的设备,无法确认。MIUI 是较早就加入了“读取应用列表”权限,而且在 Android 12 中这个权限默认是允许的。
另外,即使限制了读取应用列表,也没办法限制探测某个包名的应用。比如我想探测 com.example.app 这个应用是否安装,可以直接访问 /data/data/com.example.app ,如果已安装会返回 Permission denied ,未安装则会返回 No such file or directory 。一种解决办法是把应用安装到另一个用户下 (Android 的多用户机制,Work Profile 以及许多厂商定制系统的应用双开也是基于多用户)。 |
6
yfugibr 2022-11-02 11:59:45 +08:00 via Android 1
|
7
abc8678 2022-11-02 12:05:15 +08:00 via Android
MIUI 有这个选项,但默认勾了允许。每次装软件都要麻烦一通,存储空间隔离,magisk 隐藏,应用列表的允许改为拒绝
|
8
ysc3839 2022-11-02 12:17:12 +08:00 1
@ysc3839 更正一下,前面提到的探测应用的问题,我找了个 target api 是 Android 12L 的终端应用测试了一下,发现都是会返回 No such file or directory ,而另外几个 target api 低于 Android 11 的则会返回 Permission denied 。所以说这个问题是已经解决了的,只是没有针对旧应用启用。
|
9
shawndev 2022-11-02 13:37:18 +08:00
@paradoxs
你是认真的吗?首先 iOS 工程配置 URL Scheme 有数量上限,而这个上限远不足以覆盖多数应用(考虑到某些程序不同版本有不同的 URL Scheme )。其次也不是所有应用都定义了 URL Scheme 。 |
10
shawndev 2022-11-02 13:38:16 +08:00
@paradoxs 硬要说和帖子相关的漏洞也应该是这个 https://github.com/illusionofchaos/ios-nehelper-enum-apps-0day
|
11
mikeluckybiy 2022-11-02 13:48:00 +08:00
一直都是这样的,设备 ID 和 APP 、帐号都可以关联,这也就是为什么很多时候破案比较轻松,比如登录 QQ ,我就能知道你是在哪个 ID 的设备上登录的,然后再去其它几大互联网平台查询设备 ID ,相同匹配身份信息,大数据平台会显示你的地址、身份证号、手机号等基本信息,这样破案就高效了。
|
12
lisongeee 2022-11-02 13:48:16 +08:00
MIUI
![c6bd14c4980f91a6f950e8e0370aac2]( https://user-images.githubusercontent.com/38517192/199408385-4099d505-0c11-417a-b8f8-82daebceece0.jpg) |
13
wuyiw 2022-11-02 14:19:45 +08:00
鸿蒙 3.0 (据说基于 12 )有这个权限控制了
|
14
tromoli 2022-11-02 14:41:45 +08:00
Google Play 上架的话这个权限会有影响的,需要说明用途( ps:之前项目一直都带这个权限,也没提示,前几天因为这个更新被拒了,才给去掉。。。)
|
15
hapi 2022-11-02 15:17:46 +08:00
12 下也是有的,有个我有个游戏就是检测到加速器存在就运行不了
|
16
tunggt 2022-11-02 15:19:17 +08:00 via Android
实际上安卓系统。很多国产 app 不需要权限,就可以获取你电话号码,imei 等信息。
国行手机+国内网络,你根本无处藏身。 |
17
PolarNightUnion 2022-11-02 17:39:47 +08:00 3
随意获取应用列表?,Play 商店有个 0 权限获取一切的软件(除了隐私信息和敏感信息),很久之前玩改机的时候拿它看过参数。https://play.google.com/store/apps/details?id=tester.app.permission.zero.zeropermissionapp
|
18
zqlcrow 2022-11-02 17:52:46 +08:00
|
19
PolarNightUnion 2022-11-02 18:02:42 +08:00
@zqlcrow 绝大多数的魔改 rom 的权限管控都是按照正常的权限使用规范进行控制的,但总是有奇奇怪怪的 api 或是骚操作可以获取这些信息,所以一般闲着没事干不要装来路不明且乱七八糟的软件。
基本上通过 0 权限获取到的信息已经可以精准定位某台设备的特征了。 |
20
WOLFRAZOR 2022-11-02 18:07:09 +08:00
国外的应用也是这样。应用检测到 root 就闪退(手机系统是 Android 13 ,没有安装 lsposed )。
是这样的,“恶意”关联这个手段已经很久了。为啥好查就因为有关联(数字联盟 ID 、数美 SDK/数美设备指纹、闪验 SDK ) 4 楼提到了多用户,这个得是另外一个真正的用户才行(直接用工作资料不行,仍然会报错) |
21
ysc3839 2022-11-02 18:11:22 +08:00
@PolarNightUnion 在 MIUI Android 12 测试了一下,拒绝“读取应用列表”权限后仍然能读取到应用列表。该 app 的 target api 是 Android 10 ,不确定 target api 是 Android 11 时有没有这个问题。
|
22
PolarNightUnion 2022-11-02 18:19:00 +08:00
@ysc3839 不靠权限获取这些信息的,这个我当时改机的时候就测试过了,你改啥都是 hook 返回你修改的值,但这玩意是靠各种 API ,和各种骚操作实现的,有能力的大佬可以解个包研究一下。
|
23
ysc3839 2022-11-02 18:22:33 +08:00
@WOLFRAZOR 我说的多用户只是为了防止读取到应用。实测对某个 app 开启 MIUI 的应用双开后,把主用户中该 app 卸载掉,然后用 17 楼提到的 app 读取应用列表,是读不到双开应用的。但如果把 17 楼提到的 app 双开后运行,反而能读取到主用户的应用列表。
|
24
Damn 2022-11-02 18:30:42 +08:00
@PolarNightUnion 万普拉斯的 ColorOS12 闪退。。
|
25
ysc3839 2022-11-02 18:50:10 +08:00 1
@PolarNightUnion 反编译看了下,就是使用 android.content.pm.PackageManager.getInstalledApplications() 读取的,不知道为什么 MIUI 的读取应用列表权限无效。
|
26
abc8678 2022-11-02 21:30:54 +08:00 via Android
@PolarNightUnion “隐藏应用列表”我是在酷安听说的,目前用来忽略更新。因为 play 商店没有这个功能
|
28
WebKit 2022-11-03 02:21:24 +08:00 via Android
安卓这个是默认给的权限,可以在权限设置里关,好像 Android13 有限制了,默认不能访问安装列表了。
|
29
WebKit 2022-11-03 02:27:26 +08:00 via Android
其实根本不需要任何权限,直接构建相应包名的 intent 就好了,报错就是没有安装,没有报错就是安装了
|
31
Woodrow 2022-11-03 09:06:21 +08:00
是,emui 、MIUI 是给的,要么直接授予,要么使用 app 时授予
|
33
maokabc 2022-11-03 18:22:40 +08:00 via Android
谷歌 play 需要视频说明这个权限用在哪
|
34
Joshuahui 2022-11-23 11:18:31 +08:00 via Android
几年前的红米手机权限里有这个,原生 Android13 没有😅
|