Happy App Audit

Statyczny audytor telemetrii aplikacji macOS .app: identyfikuje wbudowane SDK, punkty końcowe, dane na dysku

Autor: iamzhihuix · iamzhihuix/happy-claude-skills

Testowano · Działa ★ 8.8/10

Happy App Audit — Statyczny audytor telemetrii aplikacji macOS .app: identyfikuje wbudowane SDK, punkty końcowe, dane na dysku

Co robi ten skill

Statycznie audytuje zainstalowany pakiet macOS .app, aby zgłosić, jaką telemetrię zbiera, do których punktów końcowych przesyłania danych mapuje się i co pozostawia na dysku, używając wyłącznie narzędzi tylko do odczytu (strings, otool, plutil, codesign, sqlite3 .schema) bez żądań sieciowych ani dołączania debuggera. Identyfikuje wbudowane SDK (ByteDance AppLog/Parfait/TTNet, Tencent mars/MMKV/Bugly, Sentry, Firebase, Umeng itp.), grupuje wyodrębnione ciągi znaków w urls/domains/sql/events i renderuje raport markdown. Uruchamia się, gdy użytkownik prosi o audyt, zbadanie lub inżynierię wsteczną aplikacji macOS pod kątem telemetrii, przesyłania danych, prywatności lub wykrywania SDK w ścieżkach takich jak /Applications lub /Library/Input Methods.

Raport z testu

Sklonowano repozytorium (bun 1.3.14 obecny, macOS) i uruchomiono scripts/run.ts kompleksowo na /Applications/Kimi.app i /Applications/Discord.app z --out do tymczasowego katalogu. Wygenerowało meta.json, pogrupowane strings/*.{urls,domains,sql,events}.md, matched.md, local_data.md i 138-liniowy report.md; dla Kimi wyliczyło 4 wbudowane frameworki z rozmiarami, pogrupowało 1382 adresy URL z binarnego Electron Framework i zrzuciło schemat SQLite Cache.db bez odczytywania wierszy. Linia bazowa (moje własne ad-hoc plutil/otool/strings|grep, 25 linii): otool -L ujawniło tylko Electron Framework + libSystem, a `strings MacOS/Kimi | grep` zwróciło zero domen, ponieważ launcher jest cienki — umiejętność znalazła prawdziwą powierzchnię telemetrii, którą linia bazowa przeoczyła. Dopasowanie odcisków palców zwróciło 0 potwierdzonych dla obu (uczciwy negatyw — baza danych celuje w natywne pakiety ByteDance/Tencent IME, a nie aplikacje Electron/JS-asar), a lib/shell.ts wymusza listę dozwolonych poleceń tylko do odczytu; nie znaleziono curl|sh, base64, eval ani zakodowanych na stałe ścieżek maszynowych.

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

Instalacja

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.

Komendy i przykładowe prompty

  • /happy-app-auditStatyczny audytor telemetrii aplikacji macOS .app: identyfikuje wbudowane SDK, punkty końcowe, dane na dysku

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

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