.TH afl-showmap 8 2026-06-05 AFL++ .SH "نام (NAME)" afl-showmap \- نمایش داده‌های تاپل خام و نقشه پوشش کد ضبط‌شده توسط AFL++ .SH "خلاصه دستور (SYNOPSIS)" .nf afl-showmap [ options ] -- /path/to/target_app [ ... ] .fi .SH "گزینه‌ها (OPTIONS)" .nf پارامترهای الزامی: -o file - پرونده‌ای که داده‌های ردیابی (trace) در آن نوشته می‌شود (با -S الزامی نیست) تنظیمات کنترل اجرا: -t msec - مهلت زمانی برای هر بار اجرا (پیش‌فرض: 1000ms) -m megs - محدودیت حافظه برای فرآیند فرزند (پیش‌فرض: none) -O - استفاده از ابزار دقیق فقط باینری (حالت FRIDA) -Q - استفاده از ابزار دقیق فقط باینری (حالت QEMU) -U - استفاده از ابزار دقیق مبتنی بر Unicorn (حالت Unicorn) -W - استفاده از ابزار دقیق مبتنی بر QEMU با Wine (حالت Wine) (ضروری نیست، صرفاً برای سازگاری با سایر ابزارهای *afl است) -X - استفاده از حالت Nyx سایر تنظیمات: -f file - پرونده ورودی خوانده‌شده توسط برنامه تحت آزمون -S - حالت جریانی (streaming): خواندن ورودی‌های آزمون از stdin، نوشتن پوشش در stdout با استفاده از پروتکل طول-مقدار (length-value). امکان استفاده از afl-showmap را به‌عنوان یک پروکسی پوشش جهت بهره‌گیری از forkserver مربوط به AFL++ بدون نیاز به پیاده‌سازی آن فراهم می‌کند. پروتکل: ورودی [u32 len][data] خروجی [u16 status][u32 edges][(u32,u8)*] [u32 stdout_len][stdout_data*] [u32 stderr_len][stderr_data*] وضعیت: بیت‌های [0:1] = خروج (0=ok، 1=timeout، 2=crash)، بیت‌های [2:7] = رزرو شده (0)، بیت‌های [8:15] = کد خروج (ok) یا سیگنال (crash) نکته: در حال حاضر stdout_len/stderr_len همیشه 0 هستند (ضبط خروجی هنوز پیاده‌سازی نشده است) -i dir - پردازش تمام پرونده‌های درون این دایرکتوری، باید با -o ترکیب شود. همراه با -C، مقدار -o یک پرونده است، بدون -C باید یک دایرکتوری باشد و هر بیت‌مپ به‌صورت جداگانه در آن نوشته خواهد شد. -I filelist - به‌عنوان جایگزینی برای -i، یک فهرست از پرونده‌ها است -C - جمع‌آوری پوشش، نوشتن تمام لبه‌ها (edges) در -o و ارائه یک خلاصه باید همراه با -i استفاده شود. -q - فرونشاندن خروجی برنامه و عدم نمایش پیام‌ها -e - صرفاً نمایش پوشش لبه‌ها، نادیده گرفتن تعداد دفعات برخورد (hit counts) -r - نمایش مقادیر واقعی تاپل به‌جای مقادیر فیلترشده AFL -s - طبقه‌بندی نکردن نقشه (map) -c - مجاز دانستن ایجاد core dump این ابزار داده‌های تاپل خام ضبط‌شده توسط ابزار دقیق AFL را نمایش می‌دهد. برای راهنمایی بیشتر، به docs/README.md مراجعه کنید. اگر از حالت -i/-I استفاده کنید، قابلیت سفارشی mutator post_process send پشتیبانی می‌شود. متغیرهای محیطی مورد استفاده: LD_BIND_LAZY: تنظیم نکردن متغیر محیطی LD_BIND_NOW برای برنامه هدف AFL_CMIN_CRASHES_ONLY: (در حالت cmin_mode) فقط نوشتن تاپل‌ها برای ورودی‌های منجر به کرش AFL_CMIN_ALLOW_ANY: (در حالت cmin_mode) نوشتن تاپل‌ها برای ورودی‌های کرش و اتمام مهلت زمانی AFL_CRASH_EXITCODE: کد خروج اختیاری فرآیند فرزند برای تفسیر به‌عنوان کرش AFL_DEBUG: فعال‌سازی خروجی‌های اضافی توسعه‌دهنده AFL_FORKSRV_INIT_TMOUT: زمان انتظار برای forkserver در حین راه‌اندازی (به میلی‌ثانیه) AFL_KILL_SIGNAL: شناسه سیگنال ارسالی به فرآیندهای فرزند هنگام اتمام مهلت زمانی و غیره (پیش‌فرض: SIGKILL) AFL_FORK_SERVER_KILL_SIGNAL: سیگنال قطع (kill) برای fork server هنگام خاتمه (پیش‌فرض: SIGTERM). اگر مقداردهی نشده باشد و AFL_KILL_SIGNAL تنظیم شده باشد، از همان مقدار استفاده می‌شود. AFL_MAP_SIZE: اندازه حافظه مشترک برای برنامه هدف. باید >= اندازه‌ای باشد که برنامه هدف برای آن کامپایل شده است AFL_PRELOAD: تنظیمات LD_PRELOAD / DYLD_INSERT_LIBRARIES برای برنامه هدف AFL_INPUT_PLACEHOLDER: جانگهدار سفارشی برای پرونده ورودی (پیش‌فرض: @@) AFL_PRINT_FILENAMES: چاپ مدخل صفی که در حال حاضر پردازش می‌شود در stdout AFL_QUIET: عدم چاپ خروجی‌های اطلاعاتی اضافی AFL_NO_FORKSRV: اجرای برنامه هدف از طریق execve به‌جای استفاده از forkserver .fi .SH "نویسندگان (AUTHORS)" پروژه AFL++ توسط Michal "lcamtuf" Zalewski نوشته شده است و توسط Marc "van Hauser" Heuse ، Dominik Maier ، Andrea Fioraldi و Heiko "hexcoder-" Eissfeldt نگهداری می‌شود. صفحه خانگی AFL++ در نشانی زیر در دسترس است: https://github.com/AFLplusplus/AFLplusplus .SH "مجوز (LICENSE)" پروژه AFL++ تحت مجوز AGPL-3.0-or-later منتشر شده است، همراه با بخش‌های اصلی تحت Apache-2.0؛ یک مجوز تجاری اختیاری نیز در دسترس است. مشاهده کنید: https://github.com/AFLplusplus/AFLplusplus/blob/stable/LICENSING.md