x86 extraction fails with struct.error: required argument is not an integer
torarnv opened this issue · comments
Tor Arne Vestbø commented
Full log: https://gist.github.com/torarnv/8b9515847459ea7247bb35b0198b761a
Ends with:
ObjC Fixer >> Processing Selector References :: [\] Traceback (most recent call last):
File "/opt/homebrew/bin/dyldex", line 277, in <module>
main()
File "/opt/homebrew/bin/dyldex", line 272, in main
_extractImage(args.dyld_path, dyldCtx, imageMap[targetPaths[0]], outputPath)
File "/opt/homebrew/bin/dyldex", line 138, in _extractImage
objc_fixer.fixObjC(extractionCtx)
File "/opt/homebrew/lib/python3.11/site-packages/DyldExtractor/converter/objc_fixer.py", line 1519, in fixObjC
_ObjCFixer(extractionCtx).run()
File "/opt/homebrew/lib/python3.11/site-packages/DyldExtractor/converter/objc_fixer.py", line 447, in run
self._processSections()
File "/opt/homebrew/lib/python3.11/site-packages/DyldExtractor/converter/objc_fixer.py", line 678, in _processSections
struct.pack("<Q", newPtr)
struct.error: required argument is not an integer
macOS 13.6 /System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_x86_64
on M2 MPB
ArandomDev commented
Sorry, x86_64 extraction is not supported.
Tor Arne Vestbø commented
Ah, I see. Perhaps this should be mentioned in the README, or detected at runtime and error out early with a clear message rather than the failures?