无需权限获取应用程序列表

无需权限获取应用程序列表

最近在研究反编译的时候发现了系统的一种漏洞方式获取应用程序信息,这个可以无需任何权限,用户无任何感知的获取全部应用程序列表,这对于一些特别需要知道用户手机内是否安装了某些特定应用的的人来说真的是太好了.

经过我自己的实验,华为三星等手机没有任何问题.简单的跟大家分享一下我的研究成果.

java
private void getPackageList(Context ctx) {
        Log.d("TAG", "无需权限获取应用列表");
        PackageManager v9 = ctx.getPackageManager();
        String[] v2 = null;
        int uid = 1000;
        while (uid <= 19999) {
            v2 = v9.getPackagesForUid(uid);
            if (v2 != null && v2.length > 0) {
                for (String item : v2) {
                    try {
                        final PackageInfo v6 = v9.getPackageInfo(item, 0);
                        if (v6 == null) {
                            break;
                        }
                        CharSequence v7 = v9.getApplicationLabel(v9.getApplicationInfo(v6.packageName, PackageManager.GET_META_DATA));
                        Log.d("TAG", "应用名称 = " + v7.toString() + " (" + v6.packageName + ")");
                    } catch (PackageManager.NameNotFoundException e) {
                        e.printStackTrace();
                    }
                }
            }
            uid++;
        }
    }

文章作者: 孙老师
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 孙老师 !
 上一篇
Say hello to x86_64 Assembly [part 1] Say hello to x86_64 Assembly [part 1]
翻译原文地址 Say hello to x86_64 Assembly [part 1]介绍Introduction 我们中间有很多开发者,我们每天写了成千上万行代码。有时候甚至是一些不错的代码:)我们每个人都能写出像下面这样的简单代码:
2020-01-08 孙老师
下一篇 
DEX文件结构与解析 DEX文件结构与解析
DEX文件结构与解析Dex是Dalvik虚拟机的执行文件,对于每一个开发者来说,他的结构对于开发这至关重要,也是我们优化的一个方面,虽然很多工作是Android Stuido和其对应的工具进行的,但是我们需要知道他的基础结构和工作原理.由于
2019-12-28 孙老师