72 Commits

Author SHA1 Message Date
blacktop c20f9af712 fix: multiple security vulnerabilities (SSRF, path traversal)
- Remove POST /diff/files endpoint that allowed arbitrary host file reads
  (CWE-22); clients must now read files locally and POST content to
  /diff/blobs instead
- Add validatePublicURL() to /info remote endpoints, rejecting URLs that
  resolve to loopback, private, link-local, or multicast addresses to
  prevent SSRF; also remove attacker-controlled proxy/insecure params
- Add SanitizeArchivePath() helper that verifies extracted archive entry
  paths stay within the destination directory (zip-slip / tar-slip,
  CWE-22); replace bare filepath.Join(dest, filepath.Clean(name)) calls
  in SearchZip, OTA parser, AA payload extractor, and ota_extract
- Fix server listen address to use net.JoinHostPort to respect Host config
2026-04-11 14:37:41 -06:00
ThePraeceps d3ca9d7519 feat(symbolicate): add syscall, mach trap, and MIG symbols to output (#1158) 2026-04-04 17:40:13 -06:00
blacktop 196d77de6f feat: add kernel C++ parsing to symbolicate cmds and APIs
Add API endpoints and CLI support for discovering C++ classes and symbolication of kernelcaches, refactor Mach-O handling, and improve symbol collection.

- API: add /kernel/cpp and /kernel/symbolicate routes, request param structs, response types, and openKernel helper. Use cpp scanner and signature parsing to return classes and symbol maps.
- CLI: wire scanner LogStats flag, refactor kernel symbolicate command (schema writer helper, improved signature parsing, and symbol matching logic). Add tests for symbolicator schema and kernel symbol matching.
- Signature pkg: add kernel C++ symbol extraction (pkg/signature/kernel_cpp.go) and SymbolicateMachO to symbolicate already-open Mach-Os; integrate C++ symbols into symbol map and update signature matching/logging behavior.
- Internal: refactor in-memory DB lookups (findMachOByUUID, findSymbolByAddr) to reduce duplication. Improve symbols collection for kernel Mach-Os (collectKernelMachoSymbols, extra kernel symbols from signature/C++), add helpers to append symbols.
- Kernelcache CPP: add LogStats option and conditional logging of scan stats.
- Crashlog/ips: update wording to reflect kernel symbols are from kernel analysis and store KernelSymbols earlier in processing; parse signatures only when configured.

Also add unit tests for new symbolication helpers and kernel C++ signature handling. Overall this consolidates kernel symbol discovery, improves reuse, and surfaces C++-derived symbols in symbol maps.
2026-03-10 12:20:12 -06:00
Sam Collinson d35f0ebdff fix: add proxy support for downloading FCS keys 🥝 (#914) 2025-11-09 11:38:09 -07:00
blacktop 0c052c6c19 fix(symbols): implement symbol demangling and formatting functions 2025-11-01 14:55:35 -06:00
blacktop 5de6fed777 chore: use go-macho's swift demangle + remove internal one 2025-10-30 09:16:39 -06:00
blacktop 6e31eb5d0b feat: add support for 'rdisk' to ipsw mount cmd 🇬🇧 2025-09-23 11:12:38 -06:00
blacktop e1ad160d0d feat: added --mount-point|-m flag to ipsw mount cmd to let you pick the mount location + docs update 2025-08-12 15:55:42 -06:00
blacktop 478a569c74 fix: add partial --insecure support to fcs key pem download in AEA commands 2025-07-29 15:11:53 -06:00
blacktop cb138b0bc4 docs: update CLI docs 2025-03-29 22:31:06 -06:00
blacktop 69f5d5c947 feat: add ability to ipsw mount encrypted DMGs with --key flag OR --lookup them from TheAppleWiki 🇦🇷 2025-02-26 21:44:54 -07:00
blacktop 2aacaf66d2 feat: add NEW /macho/info/strings route to ipswd 2024-10-14 14:54:40 -06:00
blacktop 8ff0307cf5 chore: use appropriate HTTP response code for PUT in ipswd /syms/rescan 2024-10-02 12:09:05 -06:00
blacktop b236da9b7d chore: change /syms/rescan from POST to PUT 2024-09-26 12:56:54 -06:00
blacktop d221d585e0 feat: add /syms/rescan route to ipswd to allow and IPSW to be rescanned w/ say NEW symbolicator signatures etc 2024-09-25 16:05:01 -06:00
blacktop 5947486258 chore: also add sig_dir as an optional POST query param in addition to config setting 2024-09-19 19:23:28 -06:00
blacktop 74a8933b9a chore: return 409 when scanning the same IPSW via ipswd /syms/scan route 2024-09-19 18:48:28 -06:00
blacktop a1e10bfaab chore: make --force the default when hdiutil detach-ing 🇬🇧 2024-09-03 15:03:10 -06:00
blacktop 6ef1a05c28 fix: use case-sentative slices.Contains where it makes sense 2024-08-08 15:38:42 -06:00
blacktop ca20cb85fb chore: add support for aea.DecryptConfig and B64SymKey arg 2024-07-26 14:01:37 -06:00
blacktop 62f7e59296 fix: also thread pem-db config through ipswd /extract routes 2024-07-16 14:57:47 -06:00
blacktop 42ae87262d chore: adding initial kernel symbolication support to ipswd's /syms/scan API 2024-07-16 09:29:28 -06:00
blacktop 24a64fc36f fix: thread config.yml daemon pem-db config through ipsw API routes that can use it 2024-07-15 20:12:37 -06:00
blacktop 5283f11034 fix: better solution of the API /mount fix 2024-07-10 16:00:48 -06:00
blacktop 639ce7ea38 docs: fix API docs 2024-07-10 15:02:39 -06:00
blacktop 24ac286b16 docs: fix API return type for /aea/fcs-keys 2024-07-10 14:53:06 -06:00
blacktop 87edee4d16 docs: add API docs for /aea route 2024-07-10 14:40:51 -06:00
blacktop 3021f68832 feat: add 🆕 /aea/fcs-leys/:key route to ipswd 2024-07-10 14:34:59 -06:00
blacktop b71f77f7ae feat: add support for --pem-db everywhere it's needed to allow for external AEA pem key JSON databases to be used 2024-07-08 22:14:10 -06:00
blacktop 5cce056e0c chore: add ability for the ipsw symbolicate symbol server to tell you it doesn't have the required IPSW scanned yet 2024-07-05 17:37:15 -06:00
blacktop 29b8785af8 feat: add support for using **symbol server** with ipsw symbolicate command 2024-07-05 15:03:25 -06:00
blacktop e4633fb3a2 docs: minor API doc fix 2024-07-03 17:43:39 -06:00
blacktop 5a9da7d4b0 docs: fix API docs 2024-07-03 17:16:12 -06:00
blacktop 9f56962735 feat: add ability to query symbols via ipswd API routes /api/syms/:uuid and /api/syms/:uuid/:addr 2024-07-03 17:02:08 -06:00
blacktop 69173b32f5 feat: add NEW /syms/scan route to ipswd API to gen symbol server from IPSW 2024-07-02 10:12:14 -06:00
blacktop 3c5e3b02a5 feat: add ability to partial-partialzip AEA1 private-key .pem files from remote/local IPSWs 2024-06-11 12:42:44 -06:00
blacktop b92ac6c82f feat: thread the 🆕 AEA1 decryption transparently through all relevant ipsw cmds 2024-06-11 02:25:18 -06:00
blacktop 7b4d529ea0 feat: add new /amfi/dev route to ipswd 🥃 2024-04-26 18:39:16 -06:00
blacktop 3140765ed2 feat: add ability to diff entitlements of folders in addition to IPSWs via ipsw ent command 2023-11-27 22:15:54 -07:00
blacktop 172025f25f fix: ipsw extract --kernel --json output to include devices 🥝 2023-08-03 17:54:19 +12:00
blacktop be67c23cb9 fix: return 404 error in /mount: API if cryptex not found 2023-06-26 22:17:16 -06:00
blacktop b61f4b91c5 feat: add /extract/sptm route to ipswd 🥝 2023-06-12 16:56:15 -06:00
blacktop e28b090acd chore: rename MountFS to MountDMG 2023-05-30 11:49:08 -06:00
blacktop 6d304268af fix: ipsw search cmds to scan ObjC category classes AND check sub-prots for categories and classes 2023-05-24 18:50:42 -06:00
blacktop e300560876 doc: update ipswd /unmount API docs 2023-05-24 14:22:05 -06:00
blacktop c892027ea2 doc: update docs 2023-05-24 11:31:46 -06:00
blacktop 1bb6910da3 fix: close file handles in ipswd /macho/info route 2023-05-18 11:04:26 -06:00
blacktop c7fdf3b19b fix: allow ipswd route /dsc/a2s to stream output vs. waiting until done 2023-04-27 17:39:45 -06:00
blacktop 7b8d4925f6 fix: rm /dsc/split route from non-darwin ipswd 2023-04-27 14:08:44 -06:00
blacktop b8b15107f0 doc: minor API doc update 2023-04-27 13:28:57 -06:00