Applist Detector 拆解:设备安全检测的 8 个检测器到底在查什么

Applist Detector 拆解:设备安全检测的 8 个检测器到底在查什么 Applist Detector 拆解设备安全检测的 8 个检测器到底在查什么【免费下载链接】ApplistDetectorA library to detect suspicious apps like Magisk项目地址: https://gitcode.com/gh_mirrors/ap/ApplistDetector做支付、记账类 App 时最怕用户的设备被 Magisk、Xposed 这类框架劫持root 权限被藏得严严实实。Applist Detector 是一个 Android 开源库专门做设备安全检测它交叉比对包管理器接口、文件系统和应用组件结构把藏在设备里的可疑应用逐个揪出来。 它到底怎么检测的交叉问四个窗口确认包名在不在针对每个可疑包名它先用四种渠道去列应用shell 执行pm list packages、getInstalledPackages、queryIntentActivities再逐个查getPackageUid、getLaunchIntentForPackage。就像同时问四个窗口这个 App 装没装只要有一个渠道只回一条记录多半是被 hook 篡改过的假列表。翻数据目录原生 syscall 再查一遍就算 PackageManager 接口被伪造应用在磁盘上留下的数据目录删不干净。它会探测/data/data/包名及Android/data、Android/media、Android/obb三个目录并且同一套探测跑两遍一遍走 libc一遍用linux_syscall_support直接发系统调用绕开被 hook 的封装。不看名字看骨架认出 Magisk 本体有些框架会改名躲包名于是它改用结构比对扫带xposedminversion元数据的 Activity 判定 Xposed 模块对 Magisk则拿候选 App 的组件数Activity/Service/Receiver/Provider和权限集合去对齐内置的stub.apk模板再卡住 APK 体积窗口。不靠名字靠骨架和权限指纹认人。 五分钟跑起来克隆仓库git clone https://gitcode.com/gh_mirrors/ap/ApplistDetector用 Android Studio 打开项目等 Gradle 同步完依赖。运行 app 模块主界面会按检测器逐项列出结果检测逻辑集中在library/src/main/java/icu/nullptr/applistdetector/。集成到自己项目把 library 作为依赖引入直接调用现成检测器或继承IDetector自写一个。谁会用得上做支付、金融、反作弊的 App 开发者上架前和运行中都要确认设备没被 root/hook这个库把查没查得到封装成现成检测器省得从零写。安全研究人员它把PM 接口、shell pm 命令、文件系统几条取证渠道并列返回方便对照研究 hook 框架到底拦了哪一层。想学 Android 反检测的初学者Kotlin 写的、量不大IDetector基类统一了Result四级结果照着改一条规则就能上手。 源码里值得翻的两个地方IDetector.kt整个库靠这一个抽象基类加四值Result枚举串起来想加新检测照抄任一检测器文件、实现run()就行。MagiskApp.kt不靠包名而是把候选 App 的组件数和权限集合与内置stub.apk逐项比对这个结构比对思路值得抄。想深入可以把 library 模块的IDetector和MagiskApp读一遍改一条检测规则通常只动一个文件跑 demo 遇到问题也可以直接在仓库提 issue。【免费下载链接】ApplistDetectorA library to detect suspicious apps like Magisk项目地址: https://gitcode.com/gh_mirrors/ap/ApplistDetector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考