คัดลอกไบนารีไปยังไดเรกทอรีที่ไม่ "จำกัด " ตัวอย่างเช่น /tmp
csrutil disable
ไม่ทำงานสำหรับ dtruss ในระดับหนึ่ง แต่อย่างที่ @JJ พูดว่าchroot
ทำงานได้นี่เป็นแรงบันดาลใจให้ฉัน
ถึงกระนั้นฉันก็ไม่รู้ว่าทำไมมันถึงใช้ได้ อาจมีบางอย่างที่เกี่ยวข้องกับ "ไดเรคทอรีที่ได้รับการป้องกัน" ฉันเดา
นี่คือการทดสอบ:
CC@~ $ csrutil status
System Integrity Protection status: disabled.
CC@~ $ sudo dtruss /bin/echo
dtrace: failed to execute /bin/echo: dtrace cannot control executables signed with restricted entitlements
CC@~ $ cp /bin/echo /tmp
CC@~ $ sudo dtruss /tmp/echo
SYSCALL(args) = return
thread_selfid(0x0, 0x0, 0x0) = 46811 0
csops(0x0, 0x0, 0x7FFF51B6CA20) = 0 0
issetugid(0x0, 0x0, 0x7FFF51B6CA20) = 0 0
shared_region_check_np(0x7FFF51B6A918, 0x0, 0x7FFF51B6CA20) = 0 0
stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x7FFF51B6BEA8, 0x7FFF51B6CA20 = 0 0