ipsw icon indicating copy to clipboard operation
ipsw copied to clipboard

Header dump not working for iOS 26

Open frankschlegel opened this issue 7 months ago • 3 comments

What happened?

I tried the following with dyld from beta 1:

ipsw class-dump dyld_shared_cache_arm64e ARKitCore --headers -o out

It fails with the following output:

• Dumping ObjC headers      dylib=ARKitCore
panic: runtime error: index out of range [3] with length 3

goroutine 1 [running]:
github.com/blacktop/go-macho/types/objc.CutType({0x1400f0df06e?, 0x3})
	github.com/blacktop/go-macho/types/objc/type_encoding.go:611 +0xf68
github.com/blacktop/go-macho/types/objc.decodeStructOrUnion({0x1400f0df001?, 0x72?}, {0x106d2400b, 0x6})
	github.com/blacktop/go-macho/types/objc/type_encoding.go:455 +0xb8
github.com/blacktop/go-macho/types/objc.decodeStructure(...)
	github.com/blacktop/go-macho/types/objc/type_encoding.go:392
github.com/blacktop/go-macho/types/objc.decodeType({0x1400f0df000, 0x72})
	github.com/blacktop/go-macho/types/objc/type_encoding.go:357 +0x704
github.com/blacktop/go-macho/types/objc.getArguments({0x14000219c80?, 0x4?})
	github.com/blacktop/go-macho/types/objc/type_encoding.go:712 +0x98
github.com/blacktop/go-macho/types/objc.(*Method).ArgumentType(0x14000219c80?, 0x0)
	github.com/blacktop/go-macho/types/objc/objc.go:356 +0x2c
github.com/blacktop/ipsw/internal/commands/macho.(*ObjC).processForwardDeclarations(0x140004e1b00, 0x14000778640)
	github.com/blacktop/ipsw/internal/commands/macho/objc.go:1005 +0x1590
github.com/blacktop/ipsw/internal/commands/macho.(*ObjC).Headers.func1(0x14000778640)
	github.com/blacktop/ipsw/internal/commands/macho/objc.go:495 +0x15c
github.com/blacktop/ipsw/internal/commands/macho.(*ObjC).Headers(0x140004e1b00)
	github.com/blacktop/ipsw/internal/commands/macho/objc.go:666 +0x70
github.com/blacktop/ipsw/cmd/ipsw/cmd.init.func28(0x140008d5b00?, {0x140007cca50, 0x2, 0x106d1f826?})
	github.com/blacktop/ipsw/cmd/ipsw/cmd/class_dump.go:300 +0xbcc
github.com/spf13/cobra.(*Command).execute(0x108ef6820, {0x140007cca00, 0x5, 0x5})
	github.com/spf13/[email protected]/command.go:1015 +0x844
github.com/spf13/cobra.(*Command).ExecuteC(0x108ef6ae0)
	github.com/spf13/[email protected]/command.go:1148 +0x384
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:1071
github.com/blacktop/ipsw/cmd/ipsw/cmd.Execute()
	github.com/blacktop/ipsw/cmd/ipsw/cmd/root.go:68 +0x24
main.main()
	github.com/blacktop/ipsw/cmd/ipsw/main.go:27 +0x1c

Many other frameworks can be extracted, though.

How can we reproduce this?

ipsw class-dump dyld_shared_cache_arm64e ARKitCore --headers -o out

ipsw version

Version: 3.1.611, BuildCommit: 5d9edf2866baac4bab1ccdbc0324ffc243dc9c59

Search

  • [x] I did search for other open and closed issues before opening this

Code of Conduct

  • [x] I agree to follow this project's Code of Conduct

Additional context

No response

frankschlegel avatar Jun 10 '25 17:06 frankschlegel

thanks for letting me know! looking into it last night I was able to fix it to get it to run, but there are some weird/wrong results being generated. I might push out a quick fix initially to get you past the crash if you wouldn't mind also going through the results and letting me know any other mistakes you spot and we can try and get it back to 💯

blacktop avatar Jun 11 '25 16:06 blacktop

Sounds good, thanks!

frankschlegel avatar Jun 11 '25 16:06 frankschlegel

you should now be able to: go run ./cmd/ipsw/main.go class-dump dyld_shared_cache_arm64e ARKitCore --headers -o out

blacktop avatar Jun 11 '25 18:06 blacktop

Sorry, I totally forgot to answer... It works not, thanks!

frankschlegel avatar Sep 24 '25 08:09 frankschlegel