跳转至

事件

受保护的应用在启动时运行其检测项,之后在打开期间每分钟运行一次,并报告每个检测项观察到的内容。每条报告就是一个事件。"移动 ADR" 的 "事件" 选项卡按从新到旧列出您所有受保护应用的事件。

关闭了部分检测项的受保护应用不会报告这些检测项的事件。选择检测项请参阅保护应用。

查看事件

  • 在 "移动 ADR" 中点击 "事件"。

    打开事件选项卡

  • 每一行是一个事件:

    • "检查项":事件的名称,例如 hook.maps_hits,其下方是应用读取它的来源,例如进程的内存映射。
    • "状态":检测项能否运行。请参阅状态。
    • "值":检测项观察到的内容,例如 true、一个数字或一组名称。空列表 [] 表示检测项没有发现任何内容。
    • "应用":报告该事件的受保护应用。
    • "构建":受保护副本的构建 ID,与 "构建" 选项卡中的相同。
    • "接收时间":移动 ADR 收到该事件的时间。将鼠标悬停在上面可查看确切的日期和时间。

    事件的各列

  • 读取值即可了解发现了什么。此例中,一个 Android 应用的 Hook 检测发现应用中加载了 Frida 代理:hook.maps_hits 列出了 frida-agent-64.so。

    在应用中发现 Frida

  • 最新的事件显示在最前面。点击列表底部的 "加载更早的事件" 查看更早的事件。

查看单个应用的事件

  • 在 "应用" 选项卡中,点击该应用所在行的 "查看事件" 图标。

    查看应用的事件

  • "事件" 选项卡打开后只显示该应用的事件,并显示应用名称及 "的事件"。点击其上的 x 可重新查看所有应用的事件。

    单个应用的事件

状态

状态表示检测项能否运行,而不是是否发现了威胁:请查看值来判断。

状态 含义
正常 检测项已运行。值是它观察到的内容。
不支持 检测项无法在此设备或系统版本上运行,例如在 iOS Simulator 上的越狱检测。没有值。
错误 检测项已运行但失败,例如系统拒绝了请求。没有值。
超时 检测项未能及时完成。没有值。

各检测项的事件

每个事件的名称以其检测项开头:Root 为 root.,Hook 与插桩为 hook.,以此类推。

检测项 Android 事件 iOS 事件 发现时的表现
Root root.fs_paths, root.build_props, root.mounts, root.rw_mounts, root.selinux_enforcing Root 文件(如 /system/xbin/su 或 /sbin/magisk)、以可写方式挂载的系统分区、未强制执行的 SELinux。
越狱 jb.fs_paths, jb.sandbox_escape, jb.fork_ok 越狱文件(如 /Applications/Cydia.app),或应用可以在沙盒外写入或启动进程。
调试器 dbg.tracer_pid dbg.traced, dbg.parent 应用上附加了调试器,或应用不是由 iOS 启动的。
Hook 与插桩 hook.maps_hits, hook.rwx_regions hook.maps_hits, hook.dyld_env, hook.frida_port, hook.rwx_regions 应用中加载了 Frida、Substrate 或 Xposed,Frida 端口开放,注入的库,同时可写且可执行的内存。
代码完整性 integ.text_sha256 内存中的保护代码与已安装的文件不同,例如被 Hook 修改。
网络拦截 mitm.tunnels, mitm.user_cas mitm.tunnels, mitm.proxies, mitm.user_cas 已启用的 VPN 隧道,或 iOS 上配置的代理。mitm.user_cas 在允许应用读取的 Android 设备上列出用户安装的证书,在其他设备上(iOS 上始终)报告为不支持。
应用身份 id.package, id.uid, id.code_path id.bundle_id, id.team_id, id.cdhash 不属于您应用的包名、Bundle ID 或签名团队,或应用从另一个应用的文件夹中运行。
模拟器 emu.props emu.simulator Android 上的模拟器构建属性,或 iOS Simulator 上的 true。
虚拟化与应用多开 virt.exec_path, virt.foreign_images 应用运行在另一个应用的容器中。