'\" t .\" Title: scanmacho .\" Author: Ned Ludd .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08/02/2026 .\" Manual: Documentation for pax-utils .\" Source: pax-utils 1.3.11 .\" Language: English .\" .TH "SCANMACHO" "1" "08/02/2026" "pax\-utils 1.3.11" "Documentation for pax-utils" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" scanmacho \- ابزار فضای کاربری برای بررسی فایل‌های Mach\-O .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBscanmacho\fR\ 'u \fBscanmacho\fR [\fIگزینه‌ها\fR] \fIMach\-Oها\fR\ یا\ \fIدایرکتوری‌ها\fR .SH "توضیحات (DESCRIPTION)" .PP دستور \fBscanmacho\fR یک ابزار فضای کاربری برای بررسی سریع اطلاعات مختلف در فایل‌های Mach\-O، دایرکتوری‌ها یا مسیرهای رایج سیستم است\&. این اطلاعات می‌تواند شامل انواع Mach\-O، مقادیر install_name آنها و غیره باشد\&.\&.\&. .PP از آنجا که فایل‌های Mach\-O می‌توانند چندمعماری (fat) باشند، ممکن است یک فایل چندین خط خروجی تولید کند\&. هر خط نشان‌دهنده یک معماری واحد موجود در فایل چندمعماری (universal یا fat) است\&. اگرچه محدودیت واقعی وجود ندارد، اما در عمل، مدخل‌ها بر اساس نوع معماری آنها قابل تشخیص هستند، مانند ppc، ppc64، i386، x86_64، arm و غیره\&.\&.\&. .SH "گزینه‌ها (OPTIONS)" .PP \fB\-A\fR, \fB\-\-archives\fR .RS 4 بررسی آرشیوها (فایل‌های a.\&) .RE .PP \fB\-a\fR, \fB\-\-all\fR .RS 4 چاپ تمام اطلاعات مفید و ساده .RE .PP \fB\-B\fR, \fB\-\-nobanner\fR .RS 4 سرآیند نمایش داده نشود .RE .PP \fB\-b\fR, \fB\-\-bind\fR .RS 4 چاپ پرچم‌ها از mach_header .RE .PP \fB\-D\fR, \fB\-\-endian\fR .RS 4 چاپ ترتیب بایت‌ها (endianness) فایل Mach\-O .RE .PP \fB\-E\fR, \fB\-\-etype\fR \fIfiletype\fR .RS 4 فقط چاپ فایل‌های Mach\-O منطبق با etype مشخص‌شده (مانند MH_EXECUTABLE، MH_DYLIB و غیره\&.\&.\&) .RE .PP \fB\-F\fR, \fB\-\-format\fR \fIFORMAT\fR .RS 4 استفاده از قالب مشخص‌شده برای خروجی؛ برای اطلاعات بیشتر بخش \fBFORMAT\fR را ببینید\&. .RE .PP \fB\-f\fR, \fB\-\-from\fR \fIFILE\fR .RS 4 خواندن جریان ورودی از نام فایل مشخص‌شده .RE .PP \fB\-g\fR, \fB\-\-gmatch\fR .RS 4 استفاده از strncmp برای تطبیق کتابخانه‌ها (همراه با \fB\-N\fR استفاده شود)\&. یا عبارت منظم (regexp) در تطبیق نمادها .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 نمایش خلاصه نحوه استفاده و خروج .RE .PP \fB\-i\fR, \fB\-\-interp\fR .RS 4 چاپ اطلاعات مفسر (LC_LOAD_DYLINKER) .RE .PP \fB\-M\fR, \fB\-\-bits\fR \fIBITS\fR .RS 4 فقط چاپ فایل‌های Mach\-O منطبق با تعداد بیت‌های عددی مشخص‌شده (مانند 32/64) .RE .PP \fB\-m\fR, \fB\-\-mount\fR .RS 4 به صورت بازگشتی از نقاط اتصال (mount points) عبور نکند .RE .PP \fB\-N\fR, \fB\-\-lib\fR \fIINSTALLNAME\fR .RS 4 یافتن فایل‌های Mach\-O که به INSTALL_NAME مشخص‌شده نیاز دارند .RE .PP \fB\-n\fR, \fB\-\-needed\fR .RS 4 چاپ کتابخانه‌هایی که Mach\-O به آنها پیوند خورده است (LC_LOAD_DYLIB)\&. .RE .PP \fB\-O\fR, \fB\-\-perms\fR \fIPERMS\fR .RS 4 فقط چاپ فایل‌های Mach\-O با دسترسی‌های هشت‌هشتی (octal) منطبق با مقدار مشخص‌شده (مانند 755)\&. .RE .PP \fB\-o\fR, \fB\-\-file\fR \fIFILE\fR .RS 4 نوشتن جریان خروجی در نام فایل مشخص‌شده\&. .RE .PP \fB\-p\fR, \fB\-\-path\fR .RS 4 بررسی تمام دایرکتوری‌های موجود در متغیر محیطی PATH\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 فقط چاپ موارد نادرست (\*(Aqbad\*(Aq)\&. .RE .PP \fB\-R\fR, \fB\-\-recursive\fR .RS 4 بررسی بازگشتی دایرکتوری‌ها .RE .PP \fB\-r\fR, \fB\-\-rpath\fR .RS 4 چاپ RPATH کدگذاری‌شده در Mach\-O (LC_RPATH) .RE .PP \fB\-S\fR, \fB\-\-soname\fR .RS 4 چاپ نام کتابخانه اشتراکی Mach\-O (مقدار install_name)\&. .RE .PP \fB\-V\fR, \fB\-\-version\fR .RS 4 چاپ نسخه و خروج .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 حالت پرگو (می‌تواند بیش از یک بار استفاده شود) .RE .PP \fB\-y\fR, \fB\-\-symlink\fR .RS 4 پیوندهای نمادین بررسی نشوند .RE .PP \fB\-Z\fR, \fB\-\-size\fR \fISIZE\fR .RS 4 چاپ اندازه فایل Mach\-O .RE.SH "قالب (FORMAT)" .PP رشته قالب بسیار شبیه به یک رشته printf است؛ به این صورت که رشته‌ای دقیق (literal) شامل نشانگرهایی برای درخواست اطلاعات مختلف است\&. برای مثال، می‌توانید از یک رشته قالب استفاده کرده و انتظار نتایج زیر را داشته باشید\&. .sp .if n \{\ .RS 4 .\} .nf # \fBscanmacho\fR \fB\-BF\fR "file %f needs %n; funky time" /bin/bash file bash needs /usr/lib/libncurses\&.5\&.4\&.dylib,/usr/lib/libSystem\&.B\&.dylib; funky time .fi .if n \{\ .RE .\} .PP توجه داشته باشید که هنگام استفاده از رشته قالب، عموماً پرچم‌های مرتبط با اطلاعات باید حذف شوند\&. به عبارت دیگر، نباید هم‌زمان خروجی NEEDED (\fB\-n\fR) را درخواست کرده و خروجی قالب را مشخص کنید، زیرا این عملیات با یکدیگر مانعة‌الجمع هستند\&. هر پرچم مربوط به اطلاعات دارای یک مشخص‌کننده تبدیل معادل است، بنابراین به جای آن از مشخص‌کننده‌ها استفاده کنید\&. البته همچنان می‌توانید از پرچم‌های غیرمرتبط با اطلاعات (مانند \fB\-\-verbose\fR) استفاده کنید\&. .PP سه نویسه وجود دارند که مشخص‌کننده‌های تبدیل را معرفی می‌کنند\&. .PP \(bu \fB%\fR \- جایگزینی با اطلاعات .sp -1 .TP 2 \(bu \fB#\fR \- تطابق بولی بی‌صدا .sp -1 .TP 2 \(bu \fB+\fR \- تطابق همراه با جزئیات (verbose) .PP همچنین تعدادی مشخص‌کننده تبدیل وجود دارد\&. ما تلاش کرده‌ایم هر مشخص‌کننده را با گزینه متناظر آن هماهنگ کنیم\&. .PP \(bu \fBa\fR \- نوع معماری .sp -1 .TP 2 \(bu \fBb\fR \- پرچم‌های mach_header .sp -1 .TP 2 \(bu \fBD\fR \- ترتیب بایت‌ها (endian) .sp -1 .TP 2 \(bu \fBF\fR \- نام طولانی فایل .sp -1 .TP 2 \(bu \fBf\fR \- نام کوتاه فایل .sp -1 .TP 2 \(bu \fBi\fR \- پیونددهنده dyld .sp -1 .TP 2 \(bu \fBM\fR \- کلاس CPU_TYPE .sp -1 .TP 2 \(bu \fBN\fR \- نیازمندی مشخص‌شده .sp -1 .TP 2 \(bu \fBn\fR \- کتابخانه‌های مورد نیاز .sp -1 .TP 2 \(bu \fBp\fR \- نام فایل (بدون مسیر جستجو) .sp -1 .TP 2 \(bu \fBo\fR \- فیلد mh_type .sp -1 .TP 2 \(bu \fBO\fR \- مجوزها .sp -1 .TP 2 \(bu \fBr\fR \- مسیرهای rpath .sp -1 .TP 2 \(bu \fBS\fR \- فیلد install_name .sp .SH "انواع فایل MACH\-O (MACH\-O FILETYPES)" .PP می‌توانید با مشخص کردن نوع فایل شیء Mach\-O، جستجوی خود را محدودتر کنید\&. گزینه خط فرمان نام نمادین نوع را می‌پذیرد\&. چندین مقدار را می‌توان با کاما از هم جدا کرد\&. مثال: \-E MH_EXECUTE,MH_DYLIB .PP در اینجا فهرست معمول در دسترس برای استفاده شما آورده شده است\&. .PP \(bu \fBMH_OBJECT\fR \- فایل شیء میانی (\&.o) .sp -1 .TP 2 \(bu \fBMH_EXECUTE\fR \- برنامه اجرایی استاندارد .sp -1 .TP 2 \(bu \fBMH_BUNDLE\fR \- افزونه dlopen (\&.bundle) .sp -1 .TP 2 \(bu \fBMH_DYLIB\fR \- کتابخانه اشتراکی پویا (\&.dylib) .sp -1 .TP 2 \(bu \fBMH_PRELOAD\fR \- فایل اجرایی که توسط هسته Mac OS X بارگذاری نمی‌شود (ROM) .sp -1 .TP 2 \(bu \fBMH_CORE\fR \- فایل core حاصل از فروپاشی برنامه .sp -1 .TP 2 \(bu \fBMH_DYLINKER\fR \- کتابخانه اشتراکی پیونددهنده پویا (dyld) .sp -1 .TP 2 \(bu \fBMH_DYLIB_STUB\fR \- خردکتابخانه (stub) اشتراکی فقط برای حالت ایستا، بدون بخش‌ها .sp -1 .TP 2 \(bu \fBMH_DSYM\fR \- فایل نمادهای اشکال‌زدایی (در پوشه \&.dSYM) .sp.SH "بیت‌های MACH\-O (MACH\-O BITS)" .PP شما همچنین می‌توانید جستجوی خود را با مشخص کردن اندازه بیت Mach\-O محدود کنید\&. مقدار عددی را مشخص کنید\&. .PP \(bu \fB32\fR \- mach_header ۳۲ بیتی .sp -1 .TP 2 \(bu \fB64\fR \- mach_header_64 ۶۴ بیتی .sp .SH "صفحه خانگی (HOMEPAGE)" .PP \m[blue]\fBhttps://wiki\&.gentoo\&.org/wiki/Hardened/PaX_Utilities\fR\m[] .SH "گزارش باگ‌ها (REPORTING BUGS)" .PP لطفاً تا حد امکان اطلاعات بیشتری را درج کنید (با استفاده از هر گزینه اشکال‌زدایی موجود) و گزارش‌های باگ را به نگه‌دارنده‌ها ارسال کنید (بخش \fBAUTHORS\fR را ببینید)\&. لطفاً در صورت امکان از Gentoo bugzilla در \m[blue]\fBhttps://bugs\&.gentoo\&.org\fR\m[] استفاده کنید\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBchpax\fR(1), \fBdumpelf\fR(1), \fBpaxctl\fR(1), \fBpspax\fR(1), \fBreadelf\fR(1), \fBscanelf\fR(1), \fBelf\fR(5) .SH "نویسندگان (AUTHORS)" .PP \fBNed Ludd\fR <\&solar@gentoo.org\&> .RS 4 نگه‌دارنده .RE .PP \fBMike Frysinger\fR <\&vapier@gentoo.org\&> .RS 4 نگه‌دارنده .RE .PP \fBFabian Groffen\fR <\&grobian@gentoo.org\&> .RS 4 نگه‌دارنده Mach-O .RE .SH "نکات (NOTES)" .IP " 1." 4 https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities .IP " 2." 4 https://bugs.gentoo.org