SCANMACHO(1) Documentation for pax-utils SCANMACHO(1)

scanmacho - ابزار فضای کاربری برای بررسی فایل‌های Mach-O

scanmacho [گزینه‌ها] Mach-Oها یا دایرکتوری‌ها

دستور scanmacho یک ابزار فضای کاربری برای بررسی سریع اطلاعات مختلف در فایل‌های Mach-O، دایرکتوری‌ها یا مسیرهای رایج سیستم است. این اطلاعات می‌تواند شامل انواع Mach-O، مقادیر install_name آنها و غیره باشد...

از آنجا که فایل‌های Mach-O می‌توانند چندمعماری (fat) باشند، ممکن است یک فایل چندین خط خروجی تولید کند. هر خط نشان‌دهنده یک معماری واحد موجود در فایل چندمعماری (universal یا fat) است. اگرچه محدودیت واقعی وجود ندارد، اما در عمل، مدخل‌ها بر اساس نوع معماری آنها قابل تشخیص هستند، مانند ppc، ppc64، i386، x86_64، arm و غیره...

-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، جستجوی خود را محدودتر کنید. گزینه خط فرمان نام نمادین نوع را می‌پذیرد. چندین مقدار را می‌توان با کاما از هم جدا کرد. مثال: -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 ۶۴ بیتی

https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities

لطفاً تا حد امکان اطلاعات بیشتری را درج کنید (با استفاده از هر گزینه اشکال‌زدایی موجود) و گزارش‌های باگ را به نگه‌دارنده‌ها ارسال کنید (بخش AUTHORS را ببینید). لطفاً در صورت امکان از Gentoo bugzilla در https://bugs.gentoo.org استفاده کنید.

chpax(1), dumpelf(1), paxctl(1), pspax(1), readelf(1), scanelf(1), elf(5)

Ned Ludd <solar@gentoo.org>

نگه‌دارنده

Mike Frysinger <vapier@gentoo.org>

نگه‌دارنده

Fabian Groffen <grobian@gentoo.org>

نگه‌دارنده Mach-O

1.
https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities
2.
https://bugs.gentoo.org
08/02/2026 pax-utils 1.3.11