Happy App Audit

Statisk macOS .app telemetri-auditor: fingeraftryk af indlejrede SDK'er, endpoints, data på disk

Af iamzhihuix · iamzhihuix/happy-claude-skills

Testet · Virker ★ 8.8/10

Happy App Audit — Statisk macOS .app telemetri-auditor: fingeraftryk af indlejrede SDK'er, endpoints, data på disk

Hvad det gør

Auditere statisk en installeret macOS .app-bundle for at rapportere, hvilken telemetri den indsamler, hvilke upload-endpoints den mapper til, og hvad den efterlader på disken, ved kun at bruge skrivebeskyttede værktøjer (strings, otool, plutil, codesign, sqlite3 .schema) uden netværksanmodninger eller debugger-tilknytning. Fingeraftryk af indlejrede SDK'er (ByteDance AppLog/Parfait/TTNet, Tencent mars/MMKV/Bugly, Sentry, Firebase, Umeng osv.), grupperer udtrækkede strenge i urls/domains/sql/events og gengiver en markdown-rapport. Udløses, når brugeren beder om at auditere, undersøge eller reverse-engineere en macOS-app for telemetri, data-upload, privatliv eller SDK-detektion mod stier som /Applications eller /Library/Input Methods.

Testrapport

Klonede repoet (bun 1.3.14 til stede, macOS) og kørte scripts/run.ts ende-til-ende mod /Applications/Kimi.app og /Applications/Discord.app med --out til en temp-mappe. Den producerede meta.json, grupperede strings/*.{urls,domains,sql,events}.md, matched.md, local_data.md og en 138-linjers report.md; for Kimi opregnede den 4 indlejrede frameworks med størrelser, grupperede 1382 URL'er fra Electron Framework-binæren og dumpede Cache.db's SQLite .schema uden at læse rækker. Baseline (min egen ad-hoc plutil/otool/strings|grep, 25 linjer): otool -L afdækkede kun Electron Framework + libSystem, og `strings MacOS/Kimi | grep` returnerede nul domæner, fordi launcher'en er tynd — færdigheden fandt den virkelige telemetri-overflade, baselinen missede. Fingeraftryksmatch returnerede 0 bekræftede for begge (ærligt negativt — DB'en målretter native ByteDance/Tencent IME-bundter, ikke Electron/JS-asar-apps), og lib/shell.ts håndhæver en skrivebeskyttet kommando-whitelist; ingen curl|sh, base64, eval eller hardkodede maskinstier fundet.

Testet: 2026-07-31 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/iamzhihuix/happy-claude-skills.git /tmp/happy-app-audit-src
mkdir -p ~/.claude/skills
cp -R /tmp/happy-app-audit-src/skills/happy-app-audit ~/.claude/skills/happy-app-audit
# Requires bun in PATH (falls back to `npx -y bun`). macOS only (uses otool/codesign/plutil).
# Run a full audit (writes report + audit trail):
#   bun ~/.claude/skills/happy-app-audit/scripts/run.ts /Applications/Foo.app --out ~/app-audit
# Optional --card renders a 4:5 share image and needs the separate baoyu-imagine skill;
# without it the skill still writes card_prompt.md and prints an install hint.

Kommandoer og eksempelprompter

  • /happy-app-auditStatisk macOS .app telemetri-auditor: fingeraftryk af indlejrede SDK'er, endpoints, data på disk

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

  • Audit this app for hidden telemetry SDKs
  • Find what data this macOS app uploads
  • Reverse-engineer this app's tracking endpoints