Applist Detector 拆解:设备安全检测的 8 个检测器到底在查什么
2026/8/24 2:08:03 网站建设 项目流程

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 packagesgetInstalledPackagesqueryIntentActivities,再逐个查getPackageUidgetLaunchIntentForPackage。就像同时问四个窗口"这个 App 装没装",只要有一个渠道只回一条记录,多半是被 hook 篡改过的假列表。

翻数据目录,原生 syscall 再查一遍

就算 PackageManager 接口被伪造,应用在磁盘上留下的数据目录删不干净。它会探测/data/data/包名Android/dataAndroid/mediaAndroid/obb三个目录,并且同一套探测跑两遍:一遍走 libc,一遍用linux_syscall_support直接发系统调用,绕开被 hook 的封装。

不看名字看骨架,认出 Magisk 本体

有些框架会改名躲包名,于是它改用结构比对:扫带xposedminversion元数据的 Activity 判定 Xposed 模块;对 Magisk,则拿候选 App 的组件数(Activity/Service/Receiver/Provider)和权限集合去对齐内置的stub.apk模板,再卡住 APK 体积窗口。不靠名字,靠骨架和权限指纹认人。

🚀 五分钟跑起来

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/ap/ApplistDetector
  2. 用 Android Studio 打开项目,等 Gradle 同步完依赖。
  3. 运行 app 模块,主界面会按检测器逐项列出结果;检测逻辑集中在library/src/main/java/icu/nullptr/applistdetector/
  4. 集成到自己项目:把 library 作为依赖引入,直接调用现成检测器,或继承IDetector自写一个。

谁会用得上

  • 做支付、金融、反作弊的 App 开发者:上架前和运行中都要确认设备没被 root/hook,这个库把"查没查得到"封装成现成检测器,省得从零写。
  • 安全研究人员:它把"PM 接口、shell pm 命令、文件系统"几条取证渠道并列返回,方便对照研究 hook 框架到底拦了哪一层。
  • 想学 Android 反检测的初学者:Kotlin 写的、量不大,IDetector基类统一了Result四级结果,照着改一条规则就能上手。

📦 源码里值得翻的两个地方

  • IDetector.kt:整个库靠这一个抽象基类加四值Result枚举串起来,想加新检测,照抄任一检测器文件、实现run()就行。
  • MagiskApp.kt:不靠包名,而是把候选 App 的组件数和权限集合与内置stub.apk逐项比对,这个"结构比对"思路值得抄。

想深入可以把 library 模块的IDetectorMagiskApp读一遍,改一条检测规则通常只动一个文件;跑 demo 遇到问题也可以直接在仓库提 issue。

【免费下载链接】ApplistDetectorA library to detect suspicious apps like Magisk项目地址: https://gitcode.com/gh_mirrors/ap/ApplistDetector

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询