| RAGG2(1) | General Commands Manual | RAGG2(1) |
نام (NAME)
ragg2 —
پیشانه Radare2
برای r_egg؛
کامپایل
برنامهها
به
باینریهای
بسیار کوچک
برای
معماریهای
x86 و ARM
خلاصه دستور (SYNOPSIS)
ragg2 [-FOLsrxhvz]
[-a arch]
[-b bits]
[-k os]
[-o file]
[-i sc]
[-I path]
[-E enc]
[-B hex]
[-c k=v]
[-C file]
[-p pad]
[-q off]
[-S string]
[-f fmt]
[-nN dword]
[-dDw off:hex]
[-e expr]
توضیحات (DESCRIPTION)
پیشانهای برای r_egg که برنامههای اسمبلی را به باینریهای کمینه برای معماریهای x86-32، x86-64 و ARM کامپایل میکند.
این ابزار که بر پایهٔ r_asm و r_bin ساخته شده است، کتابخانهای برای تولید باینریهای مستقل و کوچک در تمامی بسترهای پشتیبانیشده ارائه میدهد.
برنامههای تولیدشده توسط r_egg قابلیت جابهجایی (relocatable) دارند و میتوان آنها را در یک فرآیند در حال اجرا یا یک فایل باینری روی دیسک تزریق کرد.
ابزار ragg2 میتواند از کد C شلکد تولید کند. کد نهایی میتواند با rabin2 پیوند داده شود و قابل جابهجایی است، بنابراین میتوان از آن برای تزریق در هر فرآیند راه دور استفاده کرد.
گزینهها (OPTIONS)
-aarch- انتخاب معماری (x86, mips, arm)
-bbits- اندازهٔ ثباتها (32, 64, ..)
-Bhexpairs- افزودن تعدادی بایت به صورت جفتهای هگزادسیمال (hexpair)
-ck=v- تنظیم گزینههای پیکربندی
-Cfile- افزودن محتوای فایل
-doff:dword- وصلهکردن dword (۴ بایت) در افست مشخصشده
-Doff:qword- وصلهکردن qword (۸ بایت) در افست مشخصشده
-eegg-expr- دریافت برنامهٔ egg از رشته به جای فایل
-Eencoder- استفاده از انکودر مشخص. ببینید: -L
-fformat- قالب خروجی (raw, c, pe, elf, mach0, python, javascript)
-F- خروجی با قالب بومی سیستمعامل (osx=mach0, linux=elf, ..)
-h- نمایش پیام راهنمای استفاده
-Hvar- نمایش متغیر
-ishellcode- گنجاندن پلاگین شلکد، از گزینهها استفاده میکند. ببینید: -L
-Ipath- افزودن مسیر include
-kos- هستهٔ سیستمعامل (linux,bsd,osx,w32)
-L- فهرستکردن تمام پلاگینها (شلکدها و انکودرها)
-ndword- افزودن عدد ۳۲ بیتی (۴ بایت)
-Ndword- افزودن عدد ۶۴ بیتی (۸ بایت)
-ofile- فایل خروجی
-O- استفاده از فایل خروجی پیشفرض (نام فایل بدون پسوند یا a.out)
-ppadding- افزودن پدینگ پس از کامپایل (padding=n10s32) ntas : شروع nop، trap، 'a'، توالی NTAS : همانند بالا، ولی در انتها
-Psize- الحاق الگوی debruijn به ابتدا
-qfragment- افست الگوی debruijn
-r- نمایش بایتهای خام به جای جفتهای هگزادسیمال
-s- نمایش اسمبلی
-Sstring- افزودن یک رشته
-v- نمایش اطلاعات نسخه
-woff:hex- وصلهکردن جفتهای هگزادسیمال در افست مشخصشده
-x- اجرا کردن
-Xhexpairs- اجرای زنجیرهٔ rop با استفاده از پشتهٔ ارائهشده
-z- خروجی در نحو (سینتکس) رشتهٔ C
محیط (ENVIRONMENT)
R2_NOPLUGINS- عدم بارگذاری هیچگونه پلاگین
R2_PLUGINS_ORDER- ترتیب بارگذاری پلاگینها: i=داخلی، e=محیط، h=کاربر، s=سیستم؛ پیشفرض=iehs؛ کاراکتر ? راهنما را چاپ میکند
مثالها (EXAMPLES)
استفاده از زبان r_egg:
$ cat hi.r
/* hello world in r_egg */
write@syscall(4); //x64 write@syscall(1);
exit@syscall(1); //x64 exit@syscall(60);
main@global(128) {
.var0 = "hi!\n";
write(1,.var0, 4);
exit(0);
}
$ ragg2 -O -F hi.r
$ ./hi
hi!
استفاده از زبان C:
$ cat hi.c
main() {
write(1, "Hello\n", 6);
exit(0);
}
$ ragg2 -O -F hi.c
$ ./hi
Hello
خروجی باینری بسیار کوچک:
$ wc -c < hi
165
شلکد کامپایلشده همراه با صفرها:
$ ragg2 hi.c | tail -1
eb0748656c6c6f0a00bf01000000488d35edffffffba06000000b8010
000000f0531ffb83c0000000f0531c0c3
استفاده از انکودر XOR با کلید ۶۴:
$ ragg2 -e xor -c key=64 -B $(ragg2 hi.c | tail -1)
6a2d596a405be8ffffffffc15e4883c60d301e48ffc6e2f9ab4708252
c2c2f4a40ff4140404008cd75adbfbfbffa46404040f8414040404f45
71bff87c4040404f45718083
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
نوشتهشده توسط pancake <pancake@nopcode.org>.
| July 10, 2025 |