.Dd Jul 10, 2025 .Dt RARUN2 1 .Sh "نام (NAME)" .Nm rarun2 .Nd ابزار radare2 برای اجرای برنامه‌ها در محیط‌های نامتعارف .Sh "خلاصه دستور (SYNOPSIS)" .Nm rarun2 .Op Fl vt .Op Ar directives ... .Op Ar script.rr2 .Op Fl- Ar program Ar args ... .Sh "توضیحات (DESCRIPTION)" راه‌اندازی برای اجرای برنامه‌ها با محیط‌ها، آرگومان‌ها، مجوزها، دایرکتوری‌های کاری سفارشی، و توصیف‌کننده‌های فایل بازهدایت‌شده. .Pp از آرگومان‌های دستورالعمل درون‌خطی، فایل‌های اسکریپت، یا مشخصات برنامه پس از جداکنندهٔ \(aq--\(aq پشتیبانی می‌کند. .Pp ایده‌آل برای ساده‌سازی خطوط فرمان پیچیده، آماده‌سازی محیط‌های تخصصی، و خودکارسازی سناریوهای آزمایش یا اکسپلویت. .Sh "گزینه‌ها (OPTIONS)" .Bl -tag -width Fl .It Fl v نمایش نسخه .It Fl t نمایش نام ترمینال .It Fl - استفاده از آرگومان‌های باقی‌مانده به‌عنوان برنامه و آرگومان‌های برنامه .El .Sh "دستورالعمل‌ها (DIRECTIVES)" .Pp فایل پیکربندی rr2 (rarun2) دستورالعمل‌های زیر را می‌پذیرد که به‌صورت مدخل‌های key=value تعریف شده و توضیحاتی که با خطوط آغازشونده با \(aq#\(aq مشخص می‌شوند. .Bl -tag -width Fl .It Ar program= مسیر برنامه‌ای که باید اجرا شود .It Ar arg0=..argN= تنظیم مقادیر آرگومان‌های ارسالی به برنامه .It Ar aslr= فعال یا غیرفعال کردن ASLR (yes|no) .It Ar bits= تنظیم ۳۲ یا ۶۴ بیتی (در صورت پشتیبانی معماری) .It Ar chdir= تغییر دایرکتوری پیش از اجرای برنامه .It Ar chroot= اجرای برنامه در chroot (نیازمند برخی آماده‌سازی‌های اولیه) .It Ar clearenv= پاک‌سازی کل متغیرهای محیطی (true|false) .It Ar connect= اتصال stdin/stdout/stderr به یک سوکت (host:port) .It Ar core= حذف محدودیت اندازهٔ فایل core (true|false) .It Ar daemon= اجرا در پس‌زمینه، جداشده از ترمینال (پیش‌فرض: false) .It Ar envfile= تنظیم فایلی با خطوطی مانند \(aqvar=value\(aq جهت استفاده به‌عنوان متغیرهای محیطی .It Ar execve= استفاده از execve به‌جای posix_spawn (ترفندهای osx) .It Ar fork= اجازهٔ ایجاد فرایند جداگانه برای هر اتصال با \(aqlisten\(aq .It Ar input= تنظیم رشته‌ای که باید از طریق stdin به برنامه ارسال شود .It Ar libpath= بازنویسی مسیری که بارگذار پویا در آن به دنبال کتابخانه‌های مشترک می‌گردد .It Ar listen= مقید کردن stdin/stdout/stderr به یک سوکت شنود (port) .It Ar maxfd= تنظیم حداکثر تعداد توصیف‌کننده‌های فایل .It Ar maxproc= تنظیم حداکثر تعداد فرایندها .It Ar maxstack= تنظیم حداکثر اندازه برای پشته (stack) .It Ar nice= تنظیم سطح nice (اولویت) فرایند .It Ar pid= تنظیم pid فرایند .It Ar pidfile= نوشتن pid در یک فایل .It Ar preload= پیش‌بارگذاری یک کتابخانه (در Windows پشتیبانی نمی‌شود، فقط در linux، osx و bsd) .It Ar pty= استفاده از pty برای اتصال روی سوکت (true|false) .It Ar r2preload= پیش‌بارگذاری با libr2؛ سیگنال kill -USR1 برای شل r2 و سیگنال -USR2 برای وب‌سرور .It Ar r2preweb= اجرای وب‌سرور در یک thread هنگام شروع با r2preload .It Ar runlib= مسیر کتابخانه‌ای که باید اجرا شود .It Ar runlib.fcn= نام تابعی که باید از کتابخانهٔ runlib فراخوانی شود .It Ar setegid= تنظیم شناسهٔ مؤثر گروه فرایند .It Ar seteuid= تنظیم شناسهٔ مؤثر کاربر فرایند .It Ar setenv= تنظیم مقدار برای متغیر محیطی داده‌شده (NAME=VALUE) .It Ar setgid= تنظیم شناسهٔ گروه فرایند .It Ar setuid= تنظیم شناسهٔ کاربر فرایند .It Ar sleep= توقف به مدت زمان مشخص‌شده به ثانیه پیش از اجرا .It Ar stderrout= بازهدایت توصیف‌کنندهٔ فایل stderr به stdout (true|false) .It Ar stdio= انتخاب فایل یا ترمینال برای stdout/stderr/stdin .It Ar stdin= انتخاب فایل برای خواندن داده‌ها از stdin .It Ar stdout= انتخاب فایل برای جایگزینی توصیف‌کنندهٔ فایل stdout .It Ar stderr= انتخاب فایل برای جایگزینی توصیف‌کنندهٔ فایل stderr .It Ar system= اجرای دستور داده‌شده .It Ar timeout= تنظیم مهلت زمانی به ثانیه .It Ar timeoutsig= سیگنال مورد استفاده هنگام متوقف کردن فرزند پس از پایان مهلت زمانی (SIGTERM) .It Ar times= چاپ زمان اجرا به میلی‌ثانیه در stderr (true|false) .It Ar unsetenv= حذف یک متغیر محیطی .El .Sh "پیشوندهای مقدار (VALUE PREFIXES)" هر مقدار در این فایل پیکربندی می‌تواند شامل یک پیشوند ویژه باشد: .Pp .Bl -tag -width Fl .It Ar @filename خواندن تمام محتوای فایل و قرار دادن آن درون مقدار کلید .It Ar "text" کاراکترهای escape که برای نویسه‌های هگز مفید هستند .It Ar 'string' کاراکترهای escape که برای نویسه‌های هگز مفید هستند .It Ar !cmd اجرای دستور برای ذخیرهٔ خروجی آن در متغیر .It Ar :102030 تجزیهٔ رشتهٔ جفت‌هگز و ذخیرهٔ آن در متغیر .It Ar :!cmd تجزیهٔ رشتهٔ جفت‌هگز از خروجی دستور و ذخیرهٔ آن در متغیر .It Ar %1234 تجزیهٔ رشتهٔ ورودی و بازگرداندن آن به‌صورت یک عدد صحیح .It Ar @300@ABCD ۳۰۰ نویسه که با الگوی ABCD پر شده است .El .Sh "محیط (ENVIRONMENT)" .Pp .Bl -tag -width Fl .It Ev RARUN2_ARGS کاربردی برای اجرای \(lqrarun2\(rq اما با تجزیهٔ آرگومان‌ها از متغیر محیطی .El .Sh "مثال‌ها (EXAMPLES)" .Pp نمونه اسکریپت rarun2: .Pp $ cat foo.rr2 #!/usr/bin/rarun2 program=./pp400 arg0=10 stdin=foo.txt chdir=/tmp clearenv=true setenv=EGG=eggsy setenv=NOFUN=nogames unsetenv=NOFUN # EGG will be the only env variable #chroot=. $ ./foo.rr2 .Pp اتصال یک برنامه به یک سوکت: .Pp $ nc -l 9999 $ rarun2 program=/bin/ls connect=localhost:9999 .Pp اشکال‌زدایی برنامه‌ای با بازهدایت ورودی/خروجی به ترمینالی دیگر: .Pp ## open a new terminal and type 'tty' to get $ tty ; clear ; sleep 999999 /dev/ttyS010 ## in another terminal run r2 $ r2 -r foo.rr2 -d ls $ cat foo.rr2 #!/usr/bin/rarun2 stdio=/dev/ttys010 ## Or you can use -R to set a key=value r2 -R stdio=/dev/ttys010 -d ls .Pp همچنین می‌توانید از پرچم -- برای مشخص کردن برنامه و آرگومان‌های آن استفاده کنید: .Pp $ rarun2 timeout=2 -- sleep 4 .Pp اجرای تابعی از یک کتابخانه: .Pp $ rarun2 runlib=/lib/libc-2.25.so runlib.fcn=system arg1="ls /" .Sh "همچنین ببینید (SEE ALSO)" .Pp .Xr radare2(1) .Sh "نویسندگان (AUTHORS)" .Pp نوشته‌شده توسط pancake