जब आपने कहा कि आपने एक रिकर्सिव otool -L
किया है तो आपका क्या मतलब है? इस काम बनाने के लिए आवश्यक साझा पुस्तकालयों का एक बहुत उदाहरण के लिए, कर रहे हैं:
otool -L /usr/lib/libSystem.B.dylib
/usr/lib/libSystem.B.dylib:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/usr/lib/system/libcache.dylib (compatibility version 1.0.0, current version 62.0.0)
/usr/lib/system/libcommonCrypto.dylib (compatibility version 1.0.0, current version 60049.0.0)
/usr/lib/system/libcompiler_rt.dylib (compatibility version 1.0.0, current version 35.0.0)
/usr/lib/system/libcopyfile.dylib (compatibility version 1.0.0, current version 103.0.0)
/usr/lib/system/libcorecrypto.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/system/libdispatch.dylib (compatibility version 1.0.0, current version 339.1.9)
/usr/lib/system/libdyld.dylib (compatibility version 1.0.0, current version 239.3.0)
/usr/lib/system/libkeymgr.dylib (compatibility version 1.0.0, current version 28.0.0)
/usr/lib/system/liblaunch.dylib (compatibility version 1.0.0, current version 842.1.4)
/usr/lib/system/libmacho.dylib (compatibility version 1.0.0, current version 845.0.0)
/usr/lib/system/libquarantine.dylib (compatibility version 1.0.0, current version 71.0.0)
/usr/lib/system/libremovefile.dylib (compatibility version 1.0.0, current version 33.0.0)
/usr/lib/system/libsystem_asl.dylib (compatibility version 1.0.0, current version 217.1.4)
/usr/lib/system/libsystem_blocks.dylib (compatibility version 1.0.0, current version 63.0.0)
/usr/lib/system/libsystem_c.dylib (compatibility version 1.0.0, current version 997.1.1)
/usr/lib/system/libsystem_configuration.dylib (compatibility version 1.0.0, current version 596.12.0)
/usr/lib/system/libsystem_dnssd.dylib (compatibility version 1.0.0, current version 522.1.11)
/usr/lib/system/libsystem_info.dylib (compatibility version 1.0.0, current version 449.1.3)
/usr/lib/system/libsystem_kernel.dylib (compatibility version 1.0.0, current version 2422.1.72)
/usr/lib/system/libsystem_m.dylib (compatibility version 1.0.0, current version 3047.16.0)
/usr/lib/system/libsystem_malloc.dylib (compatibility version 1.0.0, current version 23.1.10)
/usr/lib/system/libsystem_network.dylib (compatibility version 1.0.0, current version 241.3.0)
/usr/lib/system/libsystem_notify.dylib (compatibility version 1.0.0, current version 121.0.0)
/usr/lib/system/libsystem_platform.dylib (compatibility version 1.0.0, current version 24.1.4)
/usr/lib/system/libsystem_pthread.dylib (compatibility version 1.0.0, current version 53.1.4)
/usr/lib/system/libsystem_sandbox.dylib (compatibility version 1.0.0, current version 278.10.0)
/usr/lib/system/libsystem_stats.dylib (compatibility version 1.0.0, current version 93.1.26)
/usr/lib/system/libunc.dylib (compatibility version 1.0.0, current version 28.0.0)
/usr/lib/system/libunwind.dylib (compatibility version 1.0.0, current version 35.3.0)
/usr/lib/system/libxpc.dylib (compatibility version 1.0.0, current version 300.1.17)
मैं एक त्वरित परीक्षण किया:
otool -L /bin/bash
/bin/bash:
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
तो फिर तुम उन पर otool -L
चलाने के लिए (फिर उन पर otool -L
) है साथ:
mkdir -p /Users/chroot/bin /Users/chroot/usr/lib/system
cp /bin/bash /Users/chroot/bin
cp /usr/lib/* /Users/chroot/usr/lib
cp /usr/lib/system/* /Users/chroot/usr/lib/system
chroot /Users/chroot /bin/bash
यह काम किया है, इसलिए मैं आप एक साझा पुस्तकालय आप की जरूरत याद कर रहे हैं मान। आप शायद रिकर्सिव otool -L
पूरी तरह से करने के लिए एक स्क्रिप्ट लिख सकते हैं और आपको केवल सटीक साझा लाइब्रेरी प्राप्त कर सकते हैं, लेकिन थोक प्रतिलिपि करना शायद आसान है।
यह देखने के लिए कमांड को 'स्ट्रेस' करने का प्रयास करें कि यह क्या खोल रहा है (1) ' – kojiro
मैक के पास स्ट्रेस नहीं है, इसलिए मैंने डट्रस का उपयोग किया। इसे dtruss सामान के अलावा किसी भी libs को लोड न देखें: sudo dtruss -fa -t खुला/bin/bash खुला ("/ usr/lib/dtrace/libdtrace_dyld.dylib \ 0", 0x0, 0x0) = 3 0 खुला ("/ dev/tty \ 0", 0x6, 0x7FFF737E7788) = 3 0 खुला ("/ dev/dtracehelper \ 0", 0x2, 0x7FFF5DA4E460) = 3 0 खुला ("/ usr/share/terminfo/73/स्क्रीन \ 0 ", 0x0, 0x0) = 3 0 खुला ("/dev/dtracehelper \ 0 ", 0x2, 0x7FFF5A9FA4C0) = 3 0 – ekaqu
सुडो डीट्रस/बिन/बैश-सी" इको हाय "मुझे बहुत कुछ देता है क्या libs खोले गए हैं के बारे में अधिक जानकारी। – ekaqu