| RZ_ASM(1) | General Commands Manual | RZ_ASM(1) |
نام (NAME)
rz-asm —
ابزار
اسمبلر و
دیاسمبلر
rizin
خلاصه دستور (SYNOPSIS)
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]
توضیحات (DESCRIPTION)
این دستور بخشی از پروژه Rizin است.
این ابزار از RzAsm برای اسمبل و دیاسمبل کردن فایلها یا رشتههای جفتهگز (hexpair) استفاده میکند. این ابزار از فهرست بزرگی از معماریها پشتیبانی میکند که میتوان با استفاده از پرچم -L آنها را مشاهده کرد.
-aarch- تنظیم معماری برای اسمبل/دیاسمبل (مشاهدهٔ -L)
-A- نمایش اطلاعات تحلیل از جفتهگزهای دادهشده
-bbits- تنظیم اندازه ثبات CPU (8, 16, 32, 64) (RZ_ASM_BITS)
-B- ورودی/خروجی باینری (گزینه -l برای ورودی باینری الزامی است)
-cCPU- انتخاب CPU مشخص (بسته به معماری)
-C- خروجی در قالب زبان C
-d,-D- دیاسمبل از بایتهای جفتهگز (-D جفتهگزها را نشان میدهد)
-e- استفاده از big endian به جای little endian
-I- نمایش کد ارتقایافتهی RzIL (ورودی مشابه با -d، کد IL نیز اعتبارسنجی میشود)
-E- نمایش عبارت ESIL (ورودی مشابه با -d)
-ffile- خواندن دادهها از فایل
-Fin:out- مشخص کردن فیلترهای ورودی و/یا خروجی (att2intel، x86.pseudo و ...)
-h,-hh- نمایش پیام راهنما؛ hh برای راهنمای مفصل
-ilen- نادیده گرفتن N بایت از بافر ورودی
-j- خروجی در قالب JSON
-kkernel- انتخاب سیستمعامل (linux، windows، darwin و ...)
-llen- طول ورودی/خروجی
-L- فهرست کردن پلاگینهای asm: (a=asm, d=disasm, A=analyze, e=ESIL)
-mplugin- فهرست کردن پردازندههای پشتیبانیشده برای پلاگین انتخابشده
-o,-@addr- تنظیم آدرس آغازین کد (پیشفرض 0)
-Ofile- نام فایل خروجی (rz-asm -Bf a.asm -O a)
-p- اجرای SPP روی ورودی برای اسمبل
-q- حالت بیصدا
-r- خروجی در قالب دستورهای rizin
-ssyntax- انتخاب نحو (intel، att)
-v- نمایش اطلاعات نسخه
-x- استفاده از dwordهای هگزادسیمال به جای جفتهگزها هنگام اسمبل
-w- توصیف آپکد (opcode)
رهنمودها (DIRECTIVES)
.intel_syntax- استفاده از نحو Intel به جای AT&T
.att_syntax- استفاده از نحو AT&T به جای Intel
.alignnumber- تنظیم تراز (alignment) کد یا داده
.archname- تنظیم معماری کد
.arm- تنظیم حالت ARM (در مقابل Thumb) برای معماری ARM
.asciistring- تعریف رشته ASCII
.ascizstring- تعریف رشته ASCII ختمشده به صفر
.bitsnumber- تعریف بیتی بودن (bitness) کد
.big_endian- تنظیم ترتیب بایت به صورت BE (big endian)
.cpuname- تنظیم CPU برای معماری انتخابشده
.data- مشخص کردن آغاز بخش داده (data section)
.endian1|0- تنظیم ترتیب بایت (endianness) - عدد 1 برای BE و 0 برای LE
.equname value- تعریف مقدار ثابت
.fillrepeat,size,value- پر کردن داده با الگوی تکرارشونده مقدار
.hexdata- تعریف دادهها در قالب هگزادسیمال
.incbinfilename- گنجاندن فایل باینری
.int16number- تعریف عدد صحیح ۱۶ بیتی
.int32number- تعریف عدد صحیح ۳۲ بیتی
.int64number- تعریف عدد صحیح ۶۴ بیتی
.kernelname- تنظیم هسته برای فراخوانهای سیستمی (syscalls)
.little_endian- تنظیم ترتیب بایت به صورت LE (little endian)
.orgvalue- تنظیم مقدار ثبات شمارنده برنامه (PC)
.osname- تنظیم سیستمعامل برای فراخوانهای سیستمی (syscalls)
.shortnumber- تعریف عدد صحیح ۱۶ بیتی
.stringstring- تعریف رشته ASCII
.text- مشخص کردن آغاز بخش کد (text section)
.thumb- تنظیم حالت Thumb (در مقابل ARM) برای معماری ARM
محیط (ENVIRONMENT)
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: عدم بارگذاری پلاگینهای اشتراکی (افزایش سرعت بارگذاری)
مثالها (EXAMPLES)
اسمبل کردن آپکد:
rz-asm -a
x86 -b
32 'mov eax, 33'
دیاسمبل کردن آپکد:
rz-asm -d
90
همچنین ببینید (SEE ALSO)
rizin(1), rz-find(1), rz-hash(1), rz-bin(1), rz-diff(1), rz-gg(1), rz-run(1), rz-ax(1)
نویسندگان (AUTHORS)
pancake <pancake@nopcode.org>
byteninjaa0
| January 22, 2024 |