Happy App Audit

Statische macOS .app telemetrie auditor: vingerafdrukken van ingebedde SDK's, endpoints, on-disk data

Door iamzhihuix · iamzhihuix/happy-claude-skills

Getest · Werkt ★ 8.8/10

Happy App Audit — Statische macOS .app telemetrie auditor: vingerafdrukken van ingebedde SDK's, endpoints, on-disk data

Wat het doet

Audit statisch een geïnstalleerde macOS .app bundel om te rapporteren welke telemetrie het verzamelt, naar welke upload-endpoints het mapt, en wat het op schijf achterlaat, met alleen read-only tools (strings, otool, plutil, codesign, sqlite3 .schema) zonder netwerkverzoeken of debugger attach. Vingerafdrukken ingebedde SDK's (ByteDance AppLog/Parfait/TTNet, Tencent mars/MMKV/Bugly, Sentry, Firebase, Umeng, etc.), groepeert geëxtraheerde strings in urls/domains/sql/events, en rendert een markdown rapport. Triggert wanneer de gebruiker vraagt om een macOS app te auditen, te onderzoeken of te reverse-engineeren op telemetrie, data-upload, privacy, of SDK-detectie tegen paden zoals /Applications of /Library/Input Methods.

Testrapport

De repo gekloond (bun 1.3.14 aanwezig, macOS) en scripts/run.ts end-to-end uitgevoerd tegen /Applications/Kimi.app en /Applications/Discord.app met --out naar een tijdelijke directory. Het produceerde meta.json, gegroepeerde strings/*.{urls,domains,sql,events}.md, matched.md, local_data.md en een 138-regelig report.md; voor Kimi telde het 4 ingebedde frameworks met groottes, groepeerde 1382 URL's uit de Electron Framework binary, en dumpte Cache.db's SQLite .schema zonder rijen te lezen. Baseline (mijn eigen ad-hoc plutil/otool/strings|grep, 25 regels): otool -L bracht alleen Electron Framework + libSystem naar boven en `strings MacOS/Kimi | grep` retourneerde nul domeinen omdat de launcher dun is — de skill vond het echte telemetrie-oppervlak dat de baseline miste. Vingerafdruk-matching retourneerde 0 bevestigd voor beide (eerlijk negatief — de DB richt zich op native ByteDance/Tencent IME bundels, niet op Electron/JS-asar apps), en lib/shell.ts handhaaft een read-only command whitelist; geen curl|sh, base64, eval, of hardcoded machinepaden gevonden.

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

Installatie

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.

Commando's en voorbeeldprompts

  • /happy-app-auditStatische macOS .app telemetrie auditor: vingerafdrukken van ingebedde SDK's, endpoints, on-disk data

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

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