.TH afl-fuzz 8 2026-06-05 AFL++ .SH "نام (NAME)" afl-fuzz \- موتور فازینگ هدایت‌شده با بازخورد و ابزار دقیق AFL++ .SH "خلاصه دستور (SYNOPSIS)" .nf afl-fuzz [ گزینه‌ها ] -- /path/to/target_app [ ... ] .fi .SH "گزینه‌ها (OPTIONS)" .nf پارامترهای الزامی: -i dir - دایرکتوری ورودی حاوی موارد آزمون (یا '-' برای ادامه، همچنین به AFL_AUTORESUME مراجعه کنید) -o dir - دایرکتوری خروجی برای یافته‌های فازر تنظیمات کنترل اجرا: -P strategy - تعیین راهبرد ثابت جهش: explore (تمرکز بر پوشش جدید)، exploit (تمرکز بر ایجاد فروپاشی/کرش). همچنین می‌توانید تعداد ثانیه‌هایی را تعیین کنید که پس از آن در صورت عدم یافتن مورد جدید به حالت exploit سوییچ کند، و با پوشش جدید برگردد (پیش‌فرض: 1000) -p schedule - زمان‌بندی‌های توان (power schedules) امتیاز کارایی یک سید را محاسبه می‌کنند: explore (پیش‌فرض)، fast، exploit، seek، rare، mmopt، coe، lin quad -- برای اطلاعات بیشتر به docs/FAQ.md مراجعه کنید -f file - مکانی که توسط برنامه تحت فازینگ خوانده می‌شود (پیش‌فرض: stdin یا @@) -t msec - مهلت زمانی برای هر بار اجرا (تنظیم خودکار مقیاس، پیش‌فرض 1000 میلی‌ثانیه). افزودن '+' برای محاسبه خودکار مهلت زمانی، به‌طوری که مقدار داده‌شده حداکثر باشد. -m megs - محدودیت حافظه برای فرآیند فرزند (0 مگابایت، 0 = بدون محدودیت [پیش‌فرض]) -O - استفاده از ابزار دقیق فقط باینری (حالت FRIDA) -Q - استفاده از ابزار دقیق فقط باینری (حالت QEMU) -U - استفاده از ابزار دقیق مبتنی بر Unicorn (حالت Unicorn) -W - استفاده از ابزار دقیق مبتنی بر QEMU با Wine (حالت Wine) -X - استفاده از فازینگ مبتنی بر ماشین مجازی (حالت NYX - حالت مستقل) -Y - استفاده از فازینگ مبتنی بر ماشین مجازی (حالت NYX - حالت چندنمونه‌ای) -K dir - استفاده از اسکریپت پایتون برای تعامل با واسط گرافیکی (حالت GUI) تنظیمات جهش‌دهنده (Mutator): -a type - قالب ورودی هدف، "text" یا "binary" (پیش‌فرض: generic) -g minlength - تنظیم حداقل طول ورودی فاز ایجادشده (پیش‌فرض: 1) -G maxlength - تنظیم حداکثر طول ورودی فاز ایجادشده (پیش‌فرض: 1048576) -L minutes - استفاده از حالت MOpt(imize) و تنظیم محدودیت زمانی برای ورود به حالت ضربان‌ساز (pacemaker) (دقایق بدون یافته‌های جدید). 0 = بلافاصله، -1 = بلافاصله و همراه با جهش عادی. نکته: این گزینه معمولاً چندان کارآمد نیست -u - فعال‌سازی پیوندزدن موارد آزمون (testcase splicing) -c program - فعال‌سازی CmpLog با تعیین یک باینری کامپایل‌شده برای آن. در صورت استفاده از QEMU/FRIDA یا کامپایل شدن برنامه هدف برای CmpLog از '-c 0' استفاده کنید. برای غیرفعال کردن CMPLOG از '-c -' استفاده کنید. -l cmplog_opts - مقادیر پیکربندی CmpLog (به عنوان مثال "2ATR"): 1=پرونده‌های کوچک، 2=پرونده‌های بزرگ‌تر (پیش‌فرض)، 3=تمام پرونده‌ها، A=حل محاسباتی، T=حل تبدیلی، X=حل تبدیلی شدید، R=بایت‌های رنگ‌آمیزی تصادفی، M=زمان‌بندی دقت (اولویت دادن به مقایسه‌های به‌سختی رد شده)، Z=استخراج مشتق اندازه (کامپایل هدف با AFL_LLVM_BUG_ALLOCSIZE_DERIVE). تنظیمات رفتار فازینگ: -Z - انتخاب ترتیبی از صف به‌جای انتخاب تصادفی وزن‌دار -N - حذف نکردن (عدم unlink) پرونده ورودی فازینگ (برای دستگاه‌ها و غیره) -n - فازینگ بدون ابزار دقیق (حالت بدون ابزار دقیق / non-instrumented) -x dict_file - فرهنگ‌لغت فازر (به README.md مراجعه کنید، تا ۴ بار قابل تعیین است) -w san_binary - تعیین باینری‌های دارای ابزار دقیق پاک‌کننده (sanitizer) اضافی، می‌تواند چندین بار تعیین شود. برای جزئیات docs/SAND.md را بخوانید. تنظیمات آزمون: -s seed - استفاده از یک سید (seed) ثابت برای تولیدکننده اعداد تصادفی (RNG) -V seconds - فازینگ برای یک زمان مشخص و سپس خاتمه (فقط زمان فازینگ!) -E execs - فازینگ برای تعداد تقریبی کل اجراها و سپس خاتمه نکته: دقیق نیست و ممکن است چند اجرای بیشتر داشته باشد. سایر موارد: -M/-S id - حالت توزیع‌شده (-M گزینه -Z را فعال و پیرایش را غیرفعال می‌کند) برای توصیه‌های کارآمد درباره فازینگ موازی، به docs/fuzzing_in_depth.md#c-using-multiple-cores مراجعه کنید. -F path - همگام‌سازی با دایرکتوری صف یک فازر خارجی (نیازمند -M است، تا ۳۲ بار قابل تعیین است) -z - صرف‌نظر از فازینگ قطعی (deterministic) بهبودیافته (توجه داشته باشید که فلگ‌های قدیمی -d و -D نادیده گرفته می‌شوند.) -T text - بنر متنی برای نمایش روی صفحه -I command - اجرای این دستور هنگام یافتن فروپاشی (crash) جدید؛ مسیر پرونده فروپاشی به‌عنوان آرگومان ارسال می‌شود -C - حالت کاوش فروپاشی (حالت peruvian rabbit) -b cpu_id - اتصال (bind) فرآیند فازینگ به هسته پردازنده مشخص‌شده (0-...) -e ext - پسوند پرونده برای پرونده ورودی آزمون فاز (در صورت نیاز) متغیرهای محیطی مورد استفاده: LD_BIND_LAZY: تنظیم نکردن متغیر محیطی LD_BIND_NOW برای برنامه هدف ASAN_OPTIONS: تنظیمات سفارشی برای ASAN (باید شامل abort_on_error=1 و symbolize=0 باشد) MSAN_OPTIONS: تنظیمات سفارشی برای MSAN (باید شامل exitcode=86 و symbolize=0 باشد) AFL_ALLOW_CORES: مجاز دانستن ایجاد پرونده‌های core dump ناشی از فروپاشی هدف AFL_AUTORESUME: ادامه فازینگ در صورتی که دایرکتوری مشخص‌شده با -o از قبل وجود داشته باشد AFL_BENCH_JUST_ONE: اجرای برنامه هدف فقط یک بار AFL_BENCH_UNTIL_CRASH: خروج سریع پس از یافتن اولین ورودی ایجادکننده فروپاشی (crash) AFL_CMPLOG_ONLY_NEW: اجرا نکردن cmplog روی موارد آزمون اولیه (مناسب برای ادامه‌دهی فازینگ!) AFL_CRASH_EXITCODE: کد خروج اختیاری فرآیند فرزند که به‌عنوان کرش تفسیر شود AFL_CUSTOM_MUTATOR_LIBRARY: کتابخانه حاوی afl_custom_fuzz() جهت ایجاد جهش در ورودی‌ها AFL_CUSTOM_MUTATOR_ONLY: عدم استفاده از جهش‌دهنده‌های داخلی AFL++ AFL_CYCLE_SCHEDULES: پس از اتمام یک چرخه، سوییچ به یک زمان‌بندی -p متفاوت AFL_DEBUG: خروجی اشکال‌زدایی اضافی برای پیرایش (trimming) در حالت پایتون AFL_DEBUG_CHILD: عدم سرکوب خروجی stdout/stderr برنامه هدف AFL_DISABLE_REDUNDANT: غیرفعال‌سازی هر آیتم صف که زائد (redundant) است AFL_DISABLE_TRIM: غیرفعال‌سازی پیرایش (trimming) موارد آزمون AFL_DUMB_FORKSRV: استفاده از سرور fork بدون دریافت بازخورد از برنامه هدف AFL_EXIT_WHEN_DONE: خروج هنگامی که تمام ورودی‌ها اجرا شده و هیچ یافته جدیدی پیدا نشود AFL_EXIT_ON_TIME: خروج در صورتی که هیچ پوشش جدیدی در مدت‌زمان مشخص‌شده یافت نشود AFL_EXIT_ON_SEED_ISSUES: خروج در صورت بروز هرگونه مشکل در سیدها AFL_EXPAND_HAVOC_NOW: فعال‌سازی فوری حالت تخریب گسترده (expand havoc) (پیش‌فرض: پس از ۶۰ دقیقه و گذشت یک چرخه بدون یافته جدید) AFL_FAST_CAL: محدود کردن مرحله کالیبراسیون به سه چرخه جهت افزایش سرعت AFL_FORCE_UI: اجبار به نمایش صفحه وضعیت (برای کنسول‌های مجازی) AFL_FORKSRV_INIT_TMOUT: مدت زمان انتظار برای forkserver در حین راه‌اندازی (به میلی‌ثانیه) AFL_FRAMESHIFT_DISABLE: غیرفعال‌سازی الگوریتم FRAMESHIFT AFL_HANG_TMOUT: بازنویسی و جایگزینی مقدار مهلت زمانی توقف (به میلی‌ثانیه) AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES: عدم نمایش هشدار درباره پردازنده‌های core dump AFL_IGNORE_PROBLEMS: عدم لغو فازینگ در صورت شناسایی پیکربندی یا راه‌اندازی نادرست AFL_IGNORE_PROBLEMS_COVERAGE: در صورت تنظیم همزمان با AFL_IGNORE_PROBLEMS - نادیده گرفتن آن کتابخانه‌ها برای محاسبه پوشش AFL_IGNORE_SEED_PROBLEMS: نادیده گرفتن و گذشتن از کرش‌ها و اتمام مهلت‌ها در سیدها به‌جای خروج از برنامه AFL_IGNORE_TIMEOUTS: عدم پردازش یا ذخیره‌سازی ورودی‌های دچار اتمام مهلت زمانی (timeout) AFL_IGNORE_UNKNOWN_ENVS: عدم نمایش هشدار درباره متغیرهای محیطی ناشناخته AFL_IMPORT_FIRST: همگام‌سازی و وارد کردن (import) موارد آزمون از سایر نمونه‌های فازر در ابتدا AFL_INPUT_LEN_MIN/AFL_INPUT_LEN_MAX: مانند -g/-G تنظیم حداقل/حداکثر طول فاز تولیدشده AFL_INPUT_PLACEHOLDER: رشته جانگهدار سفارشی برای شناسه‌های پرونده ورودی (پیش‌فرض: @@) استفاده از این گزینه هنگامی که @@ با آرگومان‌های برنامه هدف تداخل دارد AFL_PIZZA_MODE: 1 - اجبار به حالت پیتزا، -1 - غیرفعال‌سازی برای اول آوریل، 0 (پیش‌فرض) - فعال‌سازی در روز اول آوریل AFL_KILL_SIGNAL: شناسه سیگنال ارسالی به فرآیندهای فرزند هنگام اتمام مهلت زمانی و غیره (پیش‌فرض: SIGKILL) AFL_FORK_SERVER_KILL_SIGNAL: سیگنال قطع (kill) برای fork server هنگام خاتمه (پیش‌فرض: SIGTERM). اگر مقداردهی نشده باشد و AFL_KILL_SIGNAL تنظیم شده باشد، از همان مقدار استفاده می‌شود. AFL_MAP_SIZE: اندازه حافظه مشترک برای برنامه هدف. باید >= اندازه‌ای باشد که برنامه هدف برای آن کامپایل شده است AFL_MAX_DET_EXTRAS: اگر تعداد ورودی‌های فهرست فرهنگ‌لغت بیشتر از این مقدار باشد، به‌جای استفاده از همه آن‌ها، به‌صورت تصادفی انتخاب می‌شوند. پیش‌فرض: 200. AFL_NO_AFFINITY: عدم بررسی برای یافتن یک هسته پردازنده بدون استفاده برای فازینگ AFL_TRY_AFFINITY: تلاش برای اتصال به یک هسته بدون استفاده، بدون خطا در صورت عدم موفقیت AFL_NO_ARITH: صرف‌نظر از جهش‌های محاسباتی در مرحله قطعی (deterministic) AFL_NO_AUTODICT: بارگیری نکردن فرهنگ‌لغت خودکار ارائه‌شده که در برنامه هدف کامپایل شده است AFL_NO_CPU_RED: عدم استفاده از رنگ قرمز برای نمایش مصرف بسیار بالای CPU AFL_NO_FORKSRV: اجرای برنامه هدف از طریق execve به‌جای استفاده از forkserver AFL_NO_SNAPSHOT: عدم استفاده از قابلیت تصویر لحظه‌ای (snapshot) (اگر ماژول لود شده باشد) AFL_NO_STARTUP_CALIBRATION: عدم انجام کالیبراسیون اولیه سید، شروع فوری فازینگ AFL_NO_WARN_INSTABILITY: عدم نمایش هشدار درباره ناپایداری در کالیبراسیون اولیه AFL_NO_UI: خاموش کردن صفحه نمایش وضعیت AFL_NYX_AUX_SIZE: اندازه بافر کمکی Nyx. باید مضربی از 4096 باشد. در صورتی که گزارش‌های کرش ناقص هستند این مقدار را افزایش دهید. مقدار پیش‌فرض 4096 است. AFL_NYX_DISABLE_SNAPSHOT_MODE: غیرفعال‌سازی حالت اسنپ‌شات (باید توسط ایجنت پشتیبانی شود) AFL_NYX_LOG: هدایت پیام‌های NYX hprintf به یک پرونده دیگر AFL_NYX_REUSE_SNAPSHOT: استفاده مجدد از یک اسنپ‌شات ریشه موجود در Nyx AFL_OLD_CHILD_SYNC: استفاده از همگام‌سازی توصیف‌گر پرونده در حالت پایدار (persistent-mode) به‌جای مسیر پیش‌فرض حافظه مشترک + futex (فقط لینوکس) AFL_PATH: مسیر باینری‌های پشتیبانی AFL AFL_PYTHON_MODULE: ایجاد جهش و پیرایش ورودی‌ها با استفاده از ماژول مشخص‌شده پایتون AFL_QUIET: سرکوب پیام‌های وضعیت forkserver AFL_POST_PROCESS_KEEP_ORIGINAL: ذخیره پرونده در صف به همان شکل پیش از پس‌پردازش، اما اجرای نسخه پس‌پردازش‌شده AFL_PRELOAD: تنظیمات LD_PRELOAD / DYLD_INSERT_LIBRARIES برای برنامه هدف AFL_TARGET_ENV: ارسال متغیرهای محیطی اضافی به برنامه هدف AFL_SHUFFLE_QUEUE: مرتب‌سازی تصادفی صف ورودی در هنگام راه‌اندازی AFL_SKIP_BIN_CHECK: صرف‌نظر از بررسی‌های سازگاری afl، همچنین غیرفعال‌سازی اندازه خودکار مپ AFL_SKIP_CPUFREQ: عدم نمایش هشدار درباره فرکانس متغیر پردازنده AFL_STATSD: فعال‌سازی جمع‌آوری معیارهای StatsD AFL_STATSD_HOST: تغییر میزبان پیش‌فرض statsd (پیش‌فرض 127.0.0.1) AFL_STATSD_PORT: تغییر پورت پیش‌فرض statsd (پیش‌فرض: 8125) AFL_STATSD_TAGS_FLAVOR: تعیین قالب برچسب‌های statsd (پیش‌فرض: غیرفعال بودن برچسب‌ها) قالب‌های پشتیبانی‌شده: dogstatsd، librato، signalfx، influxdb AFL_FORCE_FASTRESUME: اجبار به بارگیری پرونده ادامه سریع حتی در صورت تغییر برنامه هدف AFL_NO_FASTRESUME: عدم خواندن یا نوشتن پرونده ادامه سریع AFL_NO_SYNC: غیرفعال کردن تمام عملیات همگام‌سازی AFL_SYNC_TIME: زمان همگام‌سازی بین نمونه‌های فازینگ (به دقیقه) AFL_FINAL_SYNC: همگام‌سازی نهایی در هنگام خروج (خروج را به تاخیر می‌اندازد!) AFL_NO_CRASH_README: ایجاد نکردن پرونده README در دایرکتوری کرش‌ها AFL_TESTCACHE_SIZE: استفاده از حافظه کش برای موارد آزمون، بهبود کارایی (به مگابایت) AFL_TMPDIR: دایرکتوری مورد استفاده برای ایجاد پرونده‌های ورودی (استفاده از ramdisk توصیه می‌شود) AFL_EARLY_FORKSERVER: اجبار به اجرای زودهنگام forkserver در اهداف کامپایل‌شده با afl-clang-fast/afl-clang-lto/afl-gcc-fast AFL_PERSISTENT: اجبار به حالت پایدار (اگر __AFL_LOOP در کتابخانه مشترک باشد) AFL_DEFER_FORKSRV: اجبار به forkserver به تاخیر افتاده (__AFL_INIT در کتابخانه مشترک باشد) AFL_FUZZER_STATS_UPDATE_INTERVAL: بازه زمانی به‌روزرسانی پرونده fuzzer_stats به ثانیه (پیش‌فرض: 60، حداقل: 1) کامپایل‌شده با پشتیبانی از ماژول Python 3.14.5، به docs/custom_mutators.md مراجعه کنید کامپایل‌شده بدون پشتیبانی از AFL_PERSISTENT_RECORD. کامپایل‌شده با پشتیبانی از shmat. برای راهنمایی بیشتر لطفاً به docs/README.md مراجعه کنید :) .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