radamsa(1) General Commands Manual radamsa(1)

radamsa - یک فازر همه‌منظوره داده

radamsa [options] [sample-path] ...

ابزار radamsa یک فازر (fuzzer) همه‌منظوره داده است. این ابزار داده‌ها را از فایل‌های نمونه ارائه‌شده یا در صورت عدم ارائه، از ورودی استاندارد می‌خواند و داده‌های تغییریافته را در خروجی تولید می‌کند. معمولاً از این ابزار برای تولید داده‌های ناهنجار (malformed) جهت آزمون برنامه‌ها استفاده می‌شود.

این برنامه از نحو معمول خط فرمان GNU پیروی می‌کند که در آن گزینه‌های طولانی با دو خط تیره ('-') آغاز می‌شوند. خلاصه‌ای از گزینه‌ها در ادامه آمده است.

نمایش خلاصه‌ای کوتاه‌تر از گزینه‌ها.
نمایش نسخه برنامه.
مشخص کردن محل نوشتن داده‌های تغییریافته. به‌طور پیش‌فرض داده‌ها در خروجی استاندارد نوشته می‌شوند. الگو (pattern) می‌تواند یک مسیر فایل باشد که در آن در صورت وجود، %n با شماره مورد آزمون جایگزین می‌شود؛ یا :n تا داده‌ها به کلاینت‌های TCP متصل به درگاه محلی n ارسال شوند؛ یا a.b.c.d:n تا radamsa برای ارسال هر خروجی، به درگاه n از نشانی IPv4 به آدرس a.b.c.d متصل شود.
تعداد خروجی‌هایی که باید بر اساس نمونه(ها) تولید شوند. دادن -1 یا inf باعث تولید بی‌پایان داده‌ها می‌شود. مقدار پیش‌فرض 1 است.
شروع از وضعیت تصادفی (seed) با مقدار n که یک عدد ده‌دهی است. شروع از همان وضعیت تصادفی با آرگومان‌های خط فرمان و نمونه‌های یکسان، خروجی‌های مشابهی را تولید می‌کند. اگر مقدار تصادفی صریحاً مشخص نشود، radamsa یک مقدار تصادفی را از /dev/urandom می‌خواند یا زمان جاری را بر حسب میلی‌ثانیه دریافت می‌کند.
نوشتن فراداده (metadata) درباره داده‌های تولیدشده در مسیر ارائه‌شده. از - می‌توان برای نوشتن فراداده در خروجی استاندارد استفاده کرد. این فراداده شامل seed و در ادامه یک خط به ازای هر مورد آزمون است.
نمایش تمام جهش‌ها (mutations)، الگوها و مولدهای موجود به همراه توضیحات آن‌ها.
در بر گرفتن بازگشتی نمونه‌ها از دایرکتوری‌ها.
چاپ مراحل و عملیات در حال انجام.
تعیین دستی احتمالات اولیه جهش (mutation). این کار عموماً توصیه نمی‌شود و این گزینه‌ها در نسخه‌های آینده تغییر خواهند کرد.
تعیین دستی الگوهای جهش. این کار عموماً توصیه نمی‌شود و این گزینه‌ها در نسخه‌های آینده تغییر خواهند کرد.
تعیین دستی احتمالات مولد جریان داده. این کار عموماً توصیه نمی‌شود و این گزینه‌ها در نسخه‌های آینده تغییر خواهند کرد.


$ cat file | radamsa | program -
$ radamsa samples/*.foo | program -
$ radamsa -o test-%n.foo -n 100 samples/*.foo
$ radamsa -o :80 -n inf samples/*.resp
$ radamsa -o 127.0.0.1:80 -n inf samples/*.req

zzuf(1)

اشکالات موجود در radamsa را می‌توان به https://gitlab.com/akihe/radamsa گزارش داد یا به aki.helin@iki.fi ارسال کرد. اشکالات خارج از radamsa باید در سامانه‌های پیگیری باگ مربوط به خودشان ثبت شوند.

ابزار radamsa و این صفحه راهنما توسط Aki Helin <aki.helin@iki.fi> در OUSPG نوشته شده‌اند.

March 28, 2012