Comments (4)
If you use macOS Monterey (12)+, try to run the old released dsdump
(dsdump_compiled.zip, 1a8857e) with env MallocNanoZone=0
, it should work to some degree.
$ MallocNanoZone=0 dsdump --objc dsdump
For details, see my comment at #35 (comment).
from dsdump.
How I wrote dsdump, I'll mmap the executable into memory, but I needed a way to ensure I don't mix up the load addresses of the binary with dsdump's own address space. I chose 0x400000000 as a place where not a lot of code lives. You can submit a fix via a PR, modify this location if you were to build yourself, or give me the jtool -l
of the executable and wait till early 2022 when I should have enough free time to get an updated version of this tool out.
from dsdump.
Hey @ynyyn thanks for the PR! I can confirm your build works fine on x86_64bit
Mac architecture:
MallocNanoZone=0 dsdump -s /Applications/x.app/Contents/MacOS/x -a x86_64 | more
protocol x.NoteEditorViewControllerDelegate // 3 requirements
protocol x.TransitionHandler // 1 requirements
protocol x.StateDismissible // 7 requirements
protocol x.ApplePencilDetectorUsing // 1 requirements
from dsdump.
jtool -l -arch x86_64 ./dsdump_beta/dsdump
LC 00: LC_SEGMENT_64 Mem: 0x000000000-0x100000000 __PAGEZERO
LC 01: LC_SEGMENT_64 Mem: 0x100000000-0x10039c000 __TEXT
Mem: 0x100003ed0-0x10014c1e2 __TEXT.__text (Normal)
Mem: 0x10014c1e2-0x10014c58a __TEXT.__stubs (Symbol Stubs)
Mem: 0x10014c58c-0x10014cace __TEXT.__stub_helper (Normal)
Mem: 0x10014cace-0x10014e059 __TEXT.__objc_methname (C-String Literals)
Mem: 0x10014e060-0x10016d5a9 __TEXT.__cstring (C-String Literals)
Mem: 0x10016d5a9-0x10016d645 __TEXT.__objc_classname (C-String Literals)
Mem: 0x10016d645-0x10016ea23 __TEXT.__objc_methtype (C-String Literals)
Mem: 0x10016ea30-0x1003988ff __TEXT.__const
Mem: 0x100398900-0x10039a6fc __TEXT.__gcc_except_tab
Mem: 0x10039a700-0x10039a754 __TEXT.__catfarts
Mem: 0x10039a754-0x10039bff4 __TEXT.__unwind_info
LC 02: LC_SEGMENT_64 Mem: 0x10039c000-0x100558000 __DATA
Mem: 0x10039c000-0x10039c008 __DATA.__nl_symbol_ptr (Non-Lazy Symbol Ptrs)
Mem: 0x10039c008-0x10039c0c8 __DATA.__got (Non-Lazy Symbol Ptrs)
Mem: 0x10039c0c8-0x10039c5a8 __DATA.__la_symbol_ptr (Lazy Symbol Ptrs)
Mem: 0x10039c5a8-0x10039c5e0 __DATA.__mod_init_func (Module Init Function Ptrs)
Mem: 0x10039c5e0-0x1003eb630 __DATA.__const
Mem: 0x1003eb630-0x1003eb8f0 __DATA.__cfstring
Mem: 0x1003eb8f0-0x1003eb908 __DATA.__objc_classlist (Normal)
Mem: 0x1003eb908-0x1003eb920 __DATA.__objc_catlist (Normal)
Mem: 0x1003eb920-0x1003eb930 __DATA.__objc_nlcatlist (Normal)
Mem: 0x1003eb930-0x1003eb940 __DATA.__objc_protolist
Mem: 0x1003eb940-0x1003eb948 __DATA.__objc_imageinfo
Mem: 0x1003eb948-0x1003ed318 __DATA.__objc_const
Mem: 0x1003ed318-0x1003ed748 __DATA.__objc_selrefs (Literal Pointers)
Mem: 0x1003ed748-0x1003ed7a8 __DATA.__objc_classrefs (Normal)
Mem: 0x1003ed7a8-0x1003ed7c0 __DATA.__objc_superrefs (Normal)
Mem: 0x1003ed7c0-0x1003ed940 __DATA.__objc_ivar
Mem: 0x1003ed940-0x1003edd50 __DATA.__objc_data
Mem: 0x1003edd50-0x100455d10 __DATA.__data
Mem: 0x100455d10-0x1005566f9 __DATA.__bss (Zero Fill)
Mem: 0x100556700-0x1005568e2 __DATA.__common (Zero Fill)
LC 03: LC_SEGMENT_64 Mem: 0x100558000-0x100664000 __LINKEDIT
LC 04: LC_DYLD_INFO
LC 05: LC_SYMTAB
Symbol table is at offset 0x45efa8 (4583336), 23916 entries
String table is at offset 0x4bcbb0 (4967344), 622608 bytes
LC 06: LC_DYSYMTAB
23296 local symbols at index 0
442 external symbols at index 23296
178 undefined symbols at index 23738
No TOC
No modtab
337 Indirect symbols at offset 0x4bc668
LC 07: LC_LOAD_DYLINKER /usr/lib/dyld
LC 08: LC_UUID UUID: 2956F9CE-0A8F-30EA-A2E9-5CEF800AD98D
LC 09: LC_BUILD_VERSION Build Version: Platform: MacOS 10.14.0
LC 10: LC_SOURCE_VERSION Source Version: 0.0.0.0.0
LC 11: LC_MAIN Entry Point: 0x1b754 (Mem: 0x10001b754)
LC 12: LC_LOAD_WEAK_DYLIB /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
LC 13: LC_LOAD_DYLIB /usr/lib/libobjc.A.dylib
LC 14: LC_LOAD_DYLIB /usr/lib/libc++.1.dylib
LC 15: LC_LOAD_DYLIB /usr/lib/libSystem.B.dylib
LC 16: LC_LOAD_WEAK_DYLIB /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
LC 17: LC_RPATH @executable_path/../Frameworks
LC 18: LC_RPATH @loader_path/../Frameworks
LC 19: LC_FUNCTION_STARTS Offset: 4577120, Size: 5200 (0x45d760-0x45ebb0)
LC 20: LC_DATA_IN_CODE Offset: 4582320, Size: 1016 (0x45ebb0-0x45efa8)
LC 21: LC_CODE_SIGNATURE Offset: 5589952, Size: 62432 (0x554bc0-0x563fa0)
from dsdump.
Related Issues (20)
- sha256 mentioned is wrong HOT 1
- Finding ASLR shift HOT 2
- Dumping classes to files? HOT 7
- Possible to Compile On Linux? HOT 1
- Query regarding DSdump License HOT 4
- Error encountered (WARNING: couldn't find address 0x0 (0x0) in binary!)
- Segmentation fault using --objc on Xcode 13/iOS 15 binaries
- Failing to load mach-o correctly may lead to segment fault
- Publish release!!! HOT 1
- segfaults on iOS 15 binaries HOT 1
- segfaults on M1 Mac for arch arm64e HOT 1
- Error on M1 Mac for dump Console app HOT 1
- Segfaults in Monterey 12.3 with dsdump beta HOT 4
- Uncaught exception crash with iOS 16 beta 1 binaries HOT 6
- Missing LC_DYLD_EXPORTS_TRIE support HOT 1
- Public branch for v1 beta in progress?
- dsdump for objective c classes is not working. HOT 1
- how can i class dump xcode 14
- Crash when parsing CoreDevice.framework
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dsdump.