Commit Graph
282 Commits
Author SHA1 Message Date
blacktop e209828c31 feat(diff): add cacheable task-based reports
Refactor diff jobs into task-owned renderers with persistent cache support, root-confined walkers, and quieter Mach-O/Firmware output.
2026-06-04 12:02:46 -06:00
blacktop 8a4ee31ea6 fix(macho): size renamed dylib load commands via LoadSize
Renaming a dylib load command recomputed cmdsize from the classic
24-byte dylib_command header, which under-sizes commands using the
dylib_use_command encoding (iOS 18+/macOS 15+, name offset 28 plus
DYLIB_USE_* flags). Use the encoding-aware LoadSize() instead and
deduplicate the per-type switch arms.
2026-06-04 12:00:00 -06:00
blacktopandGitHub b6980ffa53 feat(symbols): add ipsw symbols --json JSONL emitter (#1239) 2026-06-01 21:03:07 -06:00
blacktop 1d59db2a51 chore(dl): tune remote zip reads 2026-05-24 16:27:52 -06:00
vnescapeandGitHub a3dc3ecf26 perf: increase remote ZIP block size from 128KiB to 8MiB for firmware extraction (#1230) 2026-05-24 11:28:19 -06:00
blacktop 8b1ad04559 feat(ent): add --fs mode to search IPSW Mach-Os directly
Adds `--fs` flag to bypass the database and scan entitlements
directly from IPSW filesystem DMGs or input folders. Introduces
`--has`/`--without` for required/excluded entitlement key filtering,
`--pem-db` for AEA-encrypted IPSWs, and `--format` (text, tsv, jsonl)
for structured output.
2026-05-22 12:15:02 -06:00
blacktop 9360b3b7a4 fix: refactor ent file walking to use mounted filesystem root 2026-05-07 11:10:59 -06:00
blacktop 4f23763438 feat(extract): auto-decrypt remote kernelcaches via wiki keys
`ipsw download ipsw --kernel` now fetches firmware keys from
theapplewiki and decrypts encrypted kernelcaches inline. Unencrypted
members in the same IPSW pass through unchanged.

- pkg/img4: DecryptPayload reuses Payload.GetData for decompression,
  removing the duplicate LZSS/LZFSE branches.
- pkg/kernelcache: ParseImg4Data switches to img4.ParsePayload and
  exports ErrEncryptedKernelCache so callers can detect the missing-key
  case via errors.Is.
- internal/commands/extract: new keyed remote path with all-or-nothing
  preflight; the encryption-status peek lets unencrypted variants
  succeed even when the wiki has no entry for them.

  closes #1193
2026-04-27 15:57:23 -06:00
blacktop 265c50743e refactor(mount): remove encrypted AEA DMG eagerly after decrypt 2026-04-27 15:54:28 -06:00
Mischan Toosarani-HausbergerandGitHub 8e5434783d fix(mount): cleanup the correct DMG when decrypting AEAs (#1194) 2026-04-27 22:25:36 +02:00
blacktop 98a84e781c feat(macho): update go-macho to v1.1.268 and improve filename sanitization fixes #1004 2026-04-05 21:44:12 -06:00
blacktop 0104ea6a82 fix(swift-dump): prevent "file name too long" crash on C++ template type names
Sanitize Swift type/protocol names before using them as filenames,
  replacing characters illegal or problematic on APFS/HFS+ (.<> ,()/\:)
  with underscores and clamping to the 255-byte filesystem limit.

  When truncation is required, embed an 8-char FNV-1a hash of the original
  name in the filename so that two long names sharing the same sanitised
  prefix remain distinct and do not silently overwrite each other.

  Closes #1132
2026-04-05 20:45:05 -06:00
blacktop f6ed288aec fix: enhance a2s memory mapping and string handling across platforms 2026-04-04 17:21:01 -06:00
codecoloristandGitHub fa2b1bf73b feat: optimize ipsw dyld a2s command speed (#1127) 2026-04-04 17:04:39 -06:00
blacktop 6d317eca7b feat: support using ipsw class-dump --re flag and --headers flag 🇬🇧 2026-03-24 10:34:49 -06:00
blacktop 1808adc7c8 fix(deps): skip missing DSC images instead of crashing (#1132) 2026-03-13 20:21:24 -06:00
blacktop ba2aa433ae chore: 2026 copyright 2026-03-10 17:08:45 -06:00
PollyandGitHub 700a0a2244 fix(swift): check HasSwift instead of HasObjC in NewSwift (#1119) 2026-03-09 20:18:24 -06:00
blacktop 63445b0a2d chore: go fix 2026-03-06 23:24:25 -07:00
blacktop 8567290715 fix: fcs-keys generation + better error handling 2026-02-24 13:09:02 -07:00
blacktop d239df51fd feat(diff): normalize XBS build paths in macho diff CStrings 2026-02-23 13:08:10 -07:00
Thatchapon UnprasertandGitHub 70434eecaa feat: Reduce ipsw diff memory usage (#986) 2026-02-18 18:38:38 -07:00
blacktop 8000c95667 feat: add alternative path glob for IDA Professional 2026-02-14 15:16:04 -07:00
blacktop 8e6f2c554b chore: modernize to 1.26
Refactor string concatenation to use strings.Builder for improved performance in multiple files
2026-02-12 10:02:01 -07:00
blacktop 5b92508e5b fix(dmg): improve handling of AEA-encrypted DMGs and cleanup logic 2026-02-11 21:01:30 -07:00
blacktop 74edcfd6ee fix(disass): simplify model selection logic in Decompile function 2025-12-22 22:34:45 -07:00
blacktop f64f267ff0 feat(extract): add 'ident' flag for selecting specific RestoreRamDisk and update DMG extraction options 2025-12-22 16:25:55 -07:00
blacktop 739f4f2293 feat(keys): add lookup option for decryption keys from theapplewiki.com and refactor key retrieval logic 2025-12-21 12:20:56 -07:00
blacktop 2215a0cd1e fix(decrypt): add fallback to pure Go implementation if 'aea' binary fails #999 2025-12-20 15:40:52 -07:00
blacktop 6840fe27bf feat(ai): integrate ACP support for additional LLM providers and update documentation #997 2025-12-19 11:38:48 -07:00
blacktop 1863e93de1 fix(symbolicate): improve error logging and validation for symbolication and entitlement commands 2025-12-05 16:08:49 -07:00
blacktop ba8cb7e3af fix(discord): enhance webhook message structure and error handling 2025-12-03 20:20:24 -07:00
blacktop fcb65e25d5 fix: objc parsing empty type encodings #935 2025-11-12 12:49:38 -07:00
blacktop fc834768fe feat: --mte added to ipsw macho search command 2025-11-09 15:13:12 -07:00
Sam CollinsonandGitHub d35f0ebdff fix: add proxy support for downloading FCS keys 🥝 (#914) 2025-11-09 11:38:09 -07:00
blacktop e3948d892f ci: fix ipsw watch discord CI workflow 2025-11-06 16:55:34 -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 bb2b7672c5 fix: ipsw mount unmount/delete race regression 🇦🇷 2025-10-23 13:52:29 -06:00
blacktop dfb4ba2d06 fix: ipsw disass --dec-llm claude temp/topp issue #909 2025-10-21 09:23:56 -06:00
blacktop f521f3f17c feat: add support for --remote to ipsw extract --dmg cmd #888 2025-10-19 20:29:39 -06:00
blacktop f118cc1e30 fix: ent db CI sometimes fails 2025-10-05 10:43:32 -06:00
blacktop cac6764c3d fix: prevent NEW launch constraints from breaking ent DB 2025-10-01 14:00:17 -06:00
blacktop 6727a71f17 Update ent.go 2025-10-01 13:40:05 -06:00
blacktop 6b23a97125 fix: for ipsw diff --ent if ents are empty but DER ents exist use them 2025-10-01 13:38:38 -06:00
blacktop 9af1e5aa5a feat: add launch constraints to ipsw diff --ent 2025-10-01 13:33:22 -06:00
blacktop 6e31eb5d0b feat: add support for 'rdisk' to ipsw mount cmd 🇬🇧 2025-09-23 11:12:38 -06:00
blacktop d95682c52b fix: add --pg-poolmode to ipsw ent cmd 2025-08-16 10:13:56 -06:00
blacktop fd96d0e006 docs: update entitlement browser UI + add support for macOS IPSWs 2025-08-15 17:58:59 -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