| RAX2(1) | General Commands Manual | RAX2(1) |
نام (NAME)
rax2 —
مبدل
مبناهای
عددی Radare2
خلاصه دستور (SYNOPSIS)
rax2
[-abcCdDeEfFhHijkKnoqrsStuUvwxXzZ] [[expr] ...]
توضیحات (DESCRIPTION)
یک ماشینحساب همهکاره برای تبدیل مبناهای عددی، کدگذاری/رمزگشایی رشتهها و نمایش دادهها درون Radare2 با پشتیبانی از کدگذاری رشتههای زبان C، جفتهای هگزادسیمال (hexpairs)، Base64 و سایر قالبها.
رایجترین مبناهای عددی شامل دودویی (مبنای ۲) برای تعامل مستقیم با کد ماشین، هگزادسیمال (مبنای ۱۶) برای آدرسهای حافظه و نمایش فشردهٔ دادهها، و دهدهی (مبنای ۱۰) برای محاسبات و تفسیرهای قابلفهم برای انسان است.
گزینهها (OPTIONS)
-a- نمایش جدول ASCII
-bbase- اجبار حالت
خروجی
(مبنای
عددی)
f ممیز شناور (floating point)
2 دودویی (binary)
3 سهگانی (ternary)
8 هشتهشتی (octal)
10 دهدهی (decimal)
16 هگزادسیمال (hexadecimal) -c- نمایش رشتهٔ هگزادسیمال زبان C از یک مقدار عدد صحیح
-C- تخلیه stdin به یک آرایهٔ C در خروجی استاندارد (stdout) (جایگزین xxd)
-d- چاپ نتیجه در مبنای دهدهی (مبنای ۱۰)
-D- رمزگشایی دادههای ورودی با استفاده از base64
-e- معکوس کردن ترتیب بایتها (Endianness)
-E- کدگذاری دادههای ورودی با استفاده از base64
-f- تفسیر عدد ورودی به عنوان یک dword ۳۲ بیتی و نمایش آن با استاندارد IEEE 754 برای محاسبات ممیز شناور
-F- خواندن رشتههای C از stdin و ارسال خروجی به صورت جفتهای هگزادسیمال. کاربردی برای بارگذاری shellcodeها
-h- نمایش پیام راهنمای نحوهٔ استفاده
-H- تبدیل یک رشته به هش (hash)
-i- تبدیل LONG به/از IP ADDRESS
-j- نمایش خروجی در قالب json، معادل دستور `?j 0x804` در r2
-k- حفظ مبنای یکسان با دادههای ورودی
-K- نمایش کلید هنر اسکی (randomart) برای مقادیر یا جفتهای هگزادسیمال
-n- افزودن خط جدید (newline) به خروجی رمزگشاییشده برای خوانایی بهتر انسان
-o- تبدیل رشتهٔ هشتهشتی به نویسه (rax2 -o 162 62)
-q- حالت بیصدا. نمایش اطلاعات کمتر یا حذف جزئیات اضافی در خروجی
-r- نمایش خروجی مشابه با دستور `? 0x804` در r2. هنگام ترکیب با -S (-rS)، دستورهای r2 را برای نوشتن باینری واقعی در radare2 چاپ میکند
-s- تبدیل از رشتهٔ جفتهای هگزادسیمال به نویسه (rax2 -s 43 4a 50)
-S- تبدیل از نویسه به رشتهٔ هگزادسیمال (rax2 -S C J P)
-t- تبدیل برچسب زمانی epoch به قالب تاریخ خوانا برای انسان
-u- تبدیل مقدار دادهشده به قالب واحدهای خوانا برای انسان
-v- نمایش اطلاعات نسخه
-w- نمایش نتیجه به صورت یک مقدار عدد صحیح علامتدار ۱۶ بیتی
-x- نمایش جفتهای هگزادسیمال از یک مقدار عدد صحیح
-X- تبدیل یک جریان بیتی (توالی دلخواهی از ۰ و ۱ با هر طولی) به هگزادسیمال. نتیجه میتواند بزرگتر از ۶۴ بیت باشد
-z- تبدیل از رشتهٔ متنی به دودویی (rax2 -z hello)
-Z- تبدیل از رشتهٔ دودویی به متنی (rax2 -Z 01000101)
نحوه استفاده (USAGE)
انواع متغیرهای موجود عبارتند از:
int -> hex rax2 10
hex -> int rax2 0xa
-int -> hex rax2 -77
-hex -> int rax2 0xffffffb3
int -> bin rax2 b30
int -> ternary rax2 t42
bin -> int rax2 1010d
ternary -> int rax2 1010dt
float -> hex rax2 3.33f
hex -> float rax2 Fx40551ed8
oct -> hex rax2 35o
hex -> oct rax2 Ox12 (حرف O است)
bin -> hex rax2 1100011b
hex -> bin rax2 Bx63
ternary -> hex rax2 212t
hex -> ternary rax2 Tx23
raw -> hex rax2 -S < /binfile
hex -> raw rax2 -s 414141
مثالها (EXAMPLES)
بدون آرگومان، rax2 مقادیر را از stdin میخواند. میتوانید یک یا چند مقدار را به عنوان آرگومان به آن ارسال کنید.
$ rax2 33 0x41 0101b
0x21
65
0x5
میتوانید رشتههای کدگذاریشده با جفتهای هگزادسیمال را بهسادگی بازگشایی (unpack) کنید.
$ rax2 -s 41 42 43
ABC
از برخی عملیات ریاضی پشتیبانی میکند:
$ rax2 1+1 "0x5*101b+5"
2
30
کدگذاری و رمزگشایی فایل باینری با استفاده از base64:
$ rax2 -E < /bin/ls > ls.b64
$ rax2 -D < ls.b64 > ls
$ cmp /bin/ls ls && echo $?
0
استفاده از -z/-Z برای تبدیل بین دودویی و رشته:
$ rax2 -z hello
01101000011001010110110001101100011011110000000000000000
$ rax2 -Z 01101000011001010110110001101100011011110000000000000000
hello
هش کردن رشتهها:
$ rax2 -H linux osx
linux: 0x5ccc1772
osx: 0x099bf94f
کار با آدرسهای IP:
$ rax2 -i 127.0.0.1
0x0100007f
$ rax2 -i 0x0100007f
127.0.0.1
این یک ابزار بسیار کاربردی برای اسکریپتنویسی است، بنابراین میتوانید هنگام تحلیل برنامهها مقادیر ممیز شناور را بخوانید، یا آفست عدد صحیح یک پرش (jump) یا تغییرات پشته (stack delta) را محاسبه کنید.
محیط (ENVIRONMENT)
دستور rax2 از هیچ متغیر محیطی استفاده نمیکند.
همچنین ببینید (SEE ALSO)
وبگاه (WWW)
نویسندگان (AUTHORS)
pancake <pancake@nopcode.org>
| July 10, 2025 |