Commit Graph
79 Commits
Author SHA1 Message Date
blacktop f82fd2a3c3 feat(crashlog): support loose-dylib symbolication for modern Xcode DeviceSupport dumps (#1236) 2026-06-01 18:18:01 -06:00
blacktop ac147706e5 feat(symbolicate): fall back to Xcode DeviceSupport DSC when no IPSW is supplied (#1236) 2026-05-31 21:51:58 -06:00
blacktop c9a847a389 fix: support legacy factorPackIds format and tests
closes #1185
2026-05-03 11:33:19 -06:00
codecoloristandGitHub fa2b1bf73b feat: optimize ipsw dyld a2s command speed (#1127) 2026-04-04 17:04:39 -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
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 365ad6b4a6 feat(symbolicate): apply kernel symbols and enrich peek disassembly
- Add KernelSymbols to Ips and populate during symbolication so the generated IDA script can apply names discovered via
  --signatures.
- Make IDA script generation safer: escape Python string literals and sort kernel symbol addresses for deterministic
  output.
- Extract symbol names referenced by branch targets from peek bytes and attach them to PanicFrame.PeekSymbols for
  display in disassembly. Results are optionally demangled.
- Thread PeekSymbols into formatPeekDisassembly to show branch target names, and add defensive operand checks in
  disassembler triage.
2025-12-08 09:56:15 -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 04f7fe7627 feat(symbolicate): enhance kernelcache extraction for specific devices and improve logging 2025-12-05 14:58:58 -07:00
blacktop 5e7a69f16e fix(crashlog): enhance kernelcache mapping for KernelTextExec frames 2025-12-05 10:38:20 -07:00
blacktop 47747878dc feat(symbolicate): add IDAPython script generation for panic frames 2025-12-04 15:13:50 -07:00
blacktop caab399fc8 feat(symbolicate): add --peek and --peek-count flags for disassembly around panic frames
- Introduced --peek flag to show disassembly instructions around each panicked frame.
- Added --peek-count flag to specify the number of instructions to display (default is 5).
- Implemented logic to read and format peek bytes for both user and kernel frames.
- Updated command examples in documentation to reflect new functionality.
- Enhanced error handling for custom KASLR and DSC slides.
2025-12-04 13:59:19 -07:00
blacktop 5de6fed777 chore: use go-macho's swift demangle + remove internal one 2025-10-30 09:16:39 -06:00
blacktop 6cca9a980d refactor: replace interface{} with any and simplify loop constructs 2025-03-26 22:53:29 -06:00
blacktop ca9fd00a89 feat: add bug-type "288" stackshot support to ipsw symbolicate #620 2025-02-16 10:25:29 -07:00
blacktop 2aac2408bd chore: improve storage size of symbol server data (postgres) 2024-09-25 13:45:18 -06:00
blacktop d8563cb863 chore: add --hex to ipsw symbolicate to display function offsets as hex (rather than dec) 2024-08-06 11:10:19 -06:00
blacktop f929a93a14 feat: add --extra flag to ipsw symbolicate command to add folder to extra bins to include in the symbolication 2024-07-24 21:06:28 -06:00
blacktop 2804ab463f fix: ipsw symbolication for kernelcache TEXT_EXEC and for when it goes out of the __text in the bt 2024-07-23 22:04:21 -06:00
blacktop 6b1cf91306 chore: add support for more panic string fields 2024-07-23 18:08:44 -06:00
blacktop 79738d8e01 feat: add syscalls and mach_traps to ipsw kernel sym cmd 2024-07-20 22:49:41 -06:00
blacktop 5d9286aaa1 fix: kernel no sigs warning log msg 2024-07-19 01:47:01 -06:00
blacktop 1f1f0a2fc2 Update ips.go 2024-07-19 01:11:50 -06:00
blacktop a391fda3af chore: switch from pkl to JSON for symbolication signature format 2024-07-18 23:15:11 -06:00
blacktop 8f3752c311 Update ips.go 2024-07-18 10:57:47 -06:00
blacktop 7c017dd926 chore: reorg signature code 2024-07-16 22:39:35 -06:00
blacktop 23e9e4a67e feat: add kernel symbolication support to ipsw symbolicate panic IPSW cmd 2024-07-16 16:50:30 -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 f5365f3ee5 fix: panic 210 stringer panic 2024-07-05 15:53:23 -06:00
blacktop 29b8785af8 feat: add support for using **symbol server** with ipsw symbolicate command 2024-07-05 15:03:25 -06:00
blacktop d3f9c8b84c fix: ipsw symbolicate 309 crashlogs parsing of isCorpse field #511 2024-07-05 12:42:48 -06:00
blacktop 800099e786 chore: working on adding kernel symbolication support in ipsw symbolicate cmd for panic 210s 2024-07-05 12:41:36 -06:00
blacktop 8229d8e5d9 fix: many fixes to symbolication and the symbol server 2024-07-04 00:26:55 -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 6d206f6ac0 feat: add ability to filter to process via --proc flag in ipsw symbolicate cmd 🥝 2024-06-28 09:46:47 -06:00
blacktop 3ccf35a17f feat: validate IPSW arg in ipsw symbolicate cmd 🥝 2024-06-28 09:19:12 -06:00
blacktop d416cbc42c Update ips.go 2024-06-06 09:28:17 -06:00
blacktop 0b194470ca Update ips.go 2024-06-05 11:54:19 -06:00
blacktop d0c7d6477b fix: attempt to ID in-mem machos in paniclogs 🥝 2024-06-05 11:42:05 -06:00
blacktop cdfdccb0ff chore: improve output formatting of 309 crashlogs 2024-06-04 23:27:08 -06:00
blacktop 235fdcd214 chore: add MemoryStatus to ips output + more 309 fields 2024-06-04 15:24:29 -06:00
blacktop 41894920f4 fix: small issues with ips 2024-06-04 12:38:48 -06:00
blacktop 4fd87e7aa0 chore: make panic ZoneInfo optional 2024-06-04 12:21:36 -06:00
blacktop 8ea3a12534 fix: ipsw symbolicate WHAT 2024-06-04 11:39:03 -06:00
blacktop 459e6729ab chore: attempt to display slide info in paniclog output 2024-06-03 22:41:52 -06:00
blacktop 3230154fef feat: add --all and --running filter flags to ipsw symbolicate cmd to filter proc/threads output 2024-06-03 21:20:34 -06:00
blacktop fc4393c037 feat: add support for --demangle to ipsw symbolicate for panics 2024-06-03 20:10:22 -06:00
blacktop 886cd04602 fix: panic loaded kext regex 2024-06-03 15:51:53 -06:00
blacktop 2f8617ba2c chore: crashlog output formatting 2024-06-03 15:26:13 -06:00