RZ_ASM(1) General Commands Manual RZ_ASM(1)

rz-asm — ابزار اسمبلر و دی‌اسمبلر rizin

rz-asm [-ABCdDeIEhjLpqrvxw] [-a arch] [-b bits] [-m plugin] [-c CPU] [-O file] [-o addr] [-@ addr] [-f file] [-F in:out] [-i len] [-k kernel] [-s syntax] [-l len]

این دستور بخشی از پروژه Rizin است.

این ابزار از RzAsm برای اسمبل و دی‌اسمبل کردن فایل‌ها یا رشته‌های جفت‌هگز (hexpair) استفاده می‌کند. این ابزار از فهرست بزرگی از معماری‌ها پشتیبانی می‌کند که می‌توان با استفاده از پرچم -L آن‌ها را مشاهده کرد.

arch
تنظیم معماری برای اسمبل/دی‌اسمبل (مشاهدهٔ -L)
نمایش اطلاعات تحلیل از جفت‌هگزهای داده‌شده
bits
تنظیم اندازه ثبات CPU (8, 16, 32, 64) (RZ_ASM_BITS)
ورودی/خروجی باینری (گزینه -l برای ورودی باینری الزامی است)
CPU
انتخاب CPU مشخص (بسته به معماری)
خروجی در قالب زبان C
-D
دی‌اسمبل از بایت‌های جفت‌هگز (-D جفت‌هگزها را نشان می‌دهد)
استفاده از big endian به جای little endian
نمایش کد ارتقایافته‌ی RzIL (ورودی مشابه با -d، کد IL نیز اعتبارسنجی می‌شود)
نمایش عبارت ESIL (ورودی مشابه با -d)
file
خواندن داده‌ها از فایل
in:out
مشخص کردن فیلترهای ورودی و/یا خروجی (att2intel، x86.pseudo و ...)
-hh
نمایش پیام راهنما؛ hh برای راهنمای مفصل
len
نادیده گرفتن N بایت از بافر ورودی
خروجی در قالب JSON
kernel
انتخاب سیستم‌عامل (linux، windows، darwin و ...)
len
طول ورودی/خروجی
فهرست کردن پلاگین‌های asm: (a=asm, d=disasm, A=analyze, e=ESIL)
plugin
فهرست کردن پردازنده‌های پشتیبانی‌شده برای پلاگین انتخاب‌شده
-@ addr
تنظیم آدرس آغازین کد (پیش‌فرض 0)
file
نام فایل خروجی (rz-asm -Bf a.asm -O a)
اجرای SPP روی ورودی برای اسمبل
حالت بی‌صدا
خروجی در قالب دستورهای rizin
syntax
انتخاب نحو (intel، att)
نمایش اطلاعات نسخه
استفاده از dwordهای هگزادسیمال به جای جفت‌هگزها هنگام اسمبل
توصیف آپ‌کد (opcode)

استفاده از نحو Intel به جای AT&T
استفاده از نحو AT&T به جای Intel
number
تنظیم تراز (alignment) کد یا داده
name
تنظیم معماری کد
تنظیم حالت ARM (در مقابل Thumb) برای معماری ARM
string
تعریف رشته ASCII
string
تعریف رشته ASCII ختم‌شده به صفر
number
تعریف بیتی بودن (bitness) کد
تنظیم ترتیب بایت به صورت BE (big endian)
name
تنظیم CPU برای معماری انتخاب‌شده
مشخص کردن آغاز بخش داده (data section)
1|0
تنظیم ترتیب بایت (endianness) - عدد 1 برای BE و 0 برای LE
name value
تعریف مقدار ثابت
repeat,size,value
پر کردن داده با الگوی تکرارشونده مقدار
data
تعریف داده‌ها در قالب هگزادسیمال
filename
گنجاندن فایل باینری
number
تعریف عدد صحیح ۱۶ بیتی
number
تعریف عدد صحیح ۳۲ بیتی
number
تعریف عدد صحیح ۶۴ بیتی
name
تنظیم هسته برای فراخوان‌های سیستمی (syscalls)
تنظیم ترتیب بایت به صورت LE (little endian)
value
تنظیم مقدار ثبات شمارنده برنامه (PC)
name
تنظیم سیستم‌عامل برای فراخوان‌های سیستمی (syscalls)
number
تعریف عدد صحیح ۱۶ بیتی
string
تعریف رشته ASCII
مشخص کردن آغاز بخش کد (text section)
تنظیم حالت Thumb (در مقابل ARM) برای معماری ARM

RZ_ARCH: e asm.arch - معماری برای اسمبل/دی‌اسمبل (مشابه با rz-asm -a)

RZ_ASM_ARCH: معماری برای اسمبل/دی‌اسمبل (مشابه با rz-asm -a)

RZ_ASM_BITS: اندازه ثبات پردازنده (8, 16, 32, 64) (مشابه با rz-asm -b)

RZ_BITS: e asm.bits - اندازه ثبات پردازنده (8, 16, 32, 64) (مشابه با rz-asm -b)

RZ_DEBUG: در صورت تعریف، نمایش پیام‌های خطا و سیگنال کرش

RZ_NOPLUGINS: عدم بارگذاری پلاگین‌های اشتراکی (افزایش سرعت بارگذاری)

اسمبل کردن آپ‌کد:

rz-asm -a x86 -b 32 'mov eax, 33'

دی‌اسمبل کردن آپ‌کد:

rz-asm -d 90

rizin(1), rz-find(1), rz-hash(1), rz-bin(1), rz-diff(1), rz-gg(1), rz-run(1), rz-ax(1)

pancake <pancake@nopcode.org>

byteninjaa0

January 22, 2024