RAX2(1) General Commands Manual RAX2(1)

rax2 — مبدل مبناهای عددی Radare2

rax2 [-abcCdDeEfFhHijkKnoqrsStuUvwxXzZ] [[expr] ...]

یک ماشین‌حساب همه‌کاره برای تبدیل مبناهای عددی، کدگذاری/رمزگشایی رشته‌ها و نمایش داده‌ها درون Radare2 با پشتیبانی از کدگذاری رشته‌های زبان C، جفت‌های هگزادسیمال (hexpairs)، Base64 و سایر قالب‌ها.

رایج‌ترین مبناهای عددی شامل دودویی (مبنای ۲) برای تعامل مستقیم با کد ماشین، هگزادسیمال (مبنای ۱۶) برای آدرس‌های حافظه و نمایش فشردهٔ داده‌ها، و ده‌دهی (مبنای ۱۰) برای محاسبات و تفسیرهای قابل‌فهم برای انسان است.

نمایش جدول ASCII
base
اجبار حالت خروجی (مبنای عددی)


f ممیز شناور (floating point)
2 دودویی (binary)
3 سه‌گانی (ternary)
8 هشت‌هشتی (octal)
10 ده‌دهی (decimal)
16 هگزادسیمال (hexadecimal)

نمایش رشتهٔ هگزادسیمال زبان C از یک مقدار عدد صحیح
تخلیه stdin به یک آرایهٔ C در خروجی استاندارد (stdout) (جایگزین xxd)
چاپ نتیجه در مبنای ده‌دهی (مبنای ۱۰)
رمزگشایی داده‌های ورودی با استفاده از base64
معکوس کردن ترتیب بایت‌ها (Endianness)
کدگذاری داده‌های ورودی با استفاده از base64
تفسیر عدد ورودی به عنوان یک dword ۳۲ بیتی و نمایش آن با استاندارد IEEE 754 برای محاسبات ممیز شناور
خواندن رشته‌های C از stdin و ارسال خروجی به صورت جفت‌های هگزادسیمال. کاربردی برای بارگذاری shellcodeها
نمایش پیام راهنمای نحوهٔ استفاده
تبدیل یک رشته به هش (hash)
تبدیل LONG به/از IP ADDRESS
نمایش خروجی در قالب json، معادل دستور `?j 0x804` در r2
حفظ مبنای یکسان با داده‌های ورودی
نمایش کلید هنر اسکی (randomart) برای مقادیر یا جفت‌های هگزادسیمال
افزودن خط جدید (newline) به خروجی رمزگشایی‌شده برای خوانایی بهتر انسان
تبدیل رشتهٔ هشت‌هشتی به نویسه (rax2 -o 162 62)
حالت بی‌صدا. نمایش اطلاعات کمتر یا حذف جزئیات اضافی در خروجی
نمایش خروجی مشابه با دستور `? 0x804` در r2. هنگام ترکیب با -S (-rS)، دستورهای r2 را برای نوشتن باینری واقعی در radare2 چاپ می‌کند
تبدیل از رشتهٔ جفت‌های هگزادسیمال به نویسه (rax2 -s 43 4a 50)
تبدیل از نویسه به رشتهٔ هگزادسیمال (rax2 -S C J P)
تبدیل برچسب زمانی epoch به قالب تاریخ خوانا برای انسان
تبدیل مقدار داده‌شده به قالب واحدهای خوانا برای انسان
نمایش اطلاعات نسخه
نمایش نتیجه به صورت یک مقدار عدد صحیح علامت‌دار ۱۶ بیتی
نمایش جفت‌های هگزادسیمال از یک مقدار عدد صحیح
تبدیل یک جریان بیتی (توالی دلخواهی از ۰ و ۱ با هر طولی) به هگزادسیمال. نتیجه می‌تواند بزرگ‌تر از ۶۴ بیت باشد
تبدیل از رشتهٔ متنی به دودویی (rax2 -z hello)
تبدیل از رشتهٔ دودویی به متنی (rax2 -Z 01000101)

انواع متغیرهای موجود عبارتند از:


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

بدون آرگومان، 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) را محاسبه کنید.

دستور rax2 از هیچ متغیر محیطی استفاده نمی‌کند.

radare2(1)

https://www.radare.org

pancake <pancake@nopcode.org>

July 10, 2025