SCANMACHO(1) Documentation for pax-utils SCANMACHO(1) نام (NAME) scanmacho - ابزار فضای کاربری برای بررسی فایل‌های Mach-O خلاصه دستور (SYNOPSIS) scanmacho [گزینه‌ها] Mach-Oها یا دایرکتوری‌ها توضیحات (DESCRIPTION) دستور scanmacho یک ابزار فضای کاربری برای بررسی سریع اطلاعات مختلف در فایل‌های Mach-O، دایرکتوری‌ها یا مسیرهای رایج سیستم است. این اطلاعات می‌تواند شامل انواع Mach-O، مقادیر install_name آنها و غیره باشد... از آنجا که فایل‌های Mach-O می‌توانند چندمعماری (fat) باشند، ممکن است یک فایل چندین خط خروجی تولید کند. هر خط نشان‌دهنده یک معماری واحد موجود در فایل چندمعماری (universal یا fat) است. اگرچه محدودیت واقعی وجود ندارد، اما در عمل، مدخل‌ها بر اساس نوع معماری آنها قابل تشخیص هستند، مانند ppc، ppc64، i386، x86_64، arm و غیره... گزینه‌ها (OPTIONS) -A, --archives بررسی آرشیوها (فایل‌های a.) -a, --all چاپ تمام اطلاعات مفید و ساده -B, --nobanner سرآیند نمایش داده نشود -b, --bind چاپ پرچم‌ها از mach_header -D, --endian چاپ ترتیب بایت‌ها (endianness) فایل Mach-O -E, --etype filetype فقط چاپ فایل‌های Mach-O منطبق با etype مشخص‌شده (مانند MH_EXECUTABLE، MH_DYLIB و غیره..) -F, --format FORMAT استفاده از قالب مشخص‌شده برای خروجی؛ برای اطلاعات بیشتر بخش FORMAT را ببینید. -f, --from FILE خواندن جریان ورودی از نام فایل مشخص‌شده -g, --gmatch استفاده از strncmp برای تطبیق کتابخانه‌ها (همراه با -N استفاده شود). یا عبارت منظم (regexp) در تطبیق نمادها -h, --help نمایش خلاصه نحوه استفاده و خروج -i, --interp چاپ اطلاعات مفسر (LC_LOAD_DYLINKER) -M, --bits BITS فقط چاپ فایل‌های Mach-O منطبق با تعداد بیت‌های عددی مشخص‌شده (مانند 32/64) -m, --mount به صورت بازگشتی از نقاط اتصال (mount points) عبور نکند -N, --lib INSTALLNAME یافتن فایل‌های Mach-O که به INSTALL_NAME مشخص‌شده نیاز دارند -n, --needed چاپ کتابخانه‌هایی که Mach-O به آنها پیوند خورده است (LC_LOAD_DYLIB). -O, --perms PERMS فقط چاپ فایل‌های Mach-O با دسترسی‌های هشت‌هشتی (octal) منطبق با مقدار مشخص‌شده (مانند 755). -o, --file FILE نوشتن جریان خروجی در نام فایل مشخص‌شده. -p, --path بررسی تمام دایرکتوری‌های موجود در متغیر محیطی PATH. -q, --quiet فقط چاپ موارد نادرست ('bad'). -R, --recursive بررسی بازگشتی دایرکتوری‌ها -r, --rpath چاپ RPATH کدگذاری‌شده در Mach-O (LC_RPATH) -S, --soname چاپ نام کتابخانه اشتراکی Mach-O (مقدار install_name). -V, --version چاپ نسخه و خروج -v, --verbose حالت پرگو (می‌تواند بیش از یک بار استفاده شود) -y, --symlink پیوندهای نمادین بررسی نشوند -Z, --size SIZE چاپ اندازه فایل Mach-O رشته قالب بسیار شبیه به یک رشته printf است؛ به این صورت که رشته‌ای دقیق (literal) شامل نشانگرهایی برای درخواست اطلاعات مختلف است. برای مثال، می‌توانید از یک رشته قالب استفاده کرده و انتظار نتایج زیر را داشته باشید. # scanmacho -BF "file %f needs %n; funky time" /bin/bash file bash needs /usr/lib/libncurses.5.4.dylib,/usr/lib/libSystem.B.dylib; funky time توجه داشته باشید که هنگام استفاده از رشته قالب، عموماً پرچم‌های مرتبط با اطلاعات باید حذف شوند. به عبارت دیگر، نباید هم‌زمان خروجی NEEDED (-n) را درخواست کرده و خروجی قالب را مشخص کنید، زیرا این عملیات با یکدیگر مانعة‌الجمع هستند. هر پرچم مربوط به اطلاعات دارای یک مشخص‌کننده تبدیل معادل است، بنابراین به جای آن از مشخص‌کننده‌ها استفاده کنید. البته همچنان می‌توانید از پرچم‌های غیرمرتبط با اطلاعات (مانند --verbose) استفاده کنید. سه نویسه وجود دارند که مشخص‌کننده‌های تبدیل را معرفی می‌کنند. • % - جایگزینی با اطلاعات • # - تطابق بولی بی‌صدا • + - تطابق همراه با جزئیات (verbose) همچنین تعدادی مشخص‌کننده تبدیل وجود دارد. ما تلاش کرده‌ایم هر مشخص‌کننده را با گزینه متناظر آن هماهنگ کنیم. • a - نوع معماری • b - پرچم‌های mach_header • D - ترتیب بایت‌ها (endian) • F - نام طولانی فایل • f - نام کوتاه فایل • i - پیونددهنده dyld • M - کلاس CPU_TYPE • N - نیازمندی مشخص‌شده • n - کتابخانه‌های مورد نیاز • p - نام فایل (بدون مسیر جستجو) • o - فیلد mh_type • O - مجوزها • r - مسیرهای rpath • S - فیلد install_name انواع فایل MACH-O (MACH-O FILETYPES) می‌توانید با مشخص کردن نوع فایل شیء Mach-O، جستجوی خود را محدودتر کنید. گزینه خط فرمان نام نمادین نوع را می‌پذیرد. چندین مقدار را می‌توان با کاما از هم جدا کرد. مثال: -E MH_EXECUTE,MH_DYLIB در اینجا فهرست معمول در دسترس برای استفاده شما آورده شده است. • MH_OBJECT - فایل شیء میانی (.o) • MH_EXECUTE - برنامه اجرایی استاندارد • MH_BUNDLE - افزونه dlopen (.bundle) • MH_DYLIB - کتابخانه اشتراکی پویا (.dylib) • MH_PRELOAD - فایل اجرایی که توسط هسته Mac OS X بارگذاری نمی‌شود (ROM) • MH_CORE - فایل core حاصل از فروپاشی برنامه • MH_DYLINKER - کتابخانه اشتراکی پیونددهنده پویا (dyld) • MH_DYLIB_STUB - خردکتابخانه (stub) اشتراکی فقط برای حالت ایستا، بدون بخش‌ها • MH_DSYM - فایل نمادهای اشکال‌زدایی (در پوشه .dSYM) شما همچنین می‌توانید جستجوی خود را با مشخص کردن اندازه بیت Mach-O محدود کنید. مقدار عددی را مشخص کنید. • 32 - mach_header ۳۲ بیتی • 64 - mach_header_64 ۶۴ بیتی صفحه خانگی (HOMEPAGE) https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities گزارش باگ‌ها (REPORTING BUGS) لطفاً تا حد امکان اطلاعات بیشتری را درج کنید (با استفاده از هر گزینه اشکال‌زدایی موجود) و گزارش‌های باگ را به نگه‌دارنده‌ها ارسال کنید (بخش AUTHORS را ببینید). لطفاً در صورت امکان از Gentoo bugzilla در https://bugs.gentoo.org استفاده کنید. همچنین ببینید (SEE ALSO) chpax(1), dumpelf(1), paxctl(1), pspax(1), readelf(1), scanelf(1), elf(5) نویسندگان (AUTHORS) Ned Ludd نگه‌دارنده Mike Frysinger نگه‌دارنده Fabian Groffen نگه‌دارنده Mach-O نکات (NOTES) 1. https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities 2. https://bugs.gentoo.org pax-utils 1.3.11 08/02/2026 SCANMACHO(1)