RABIN2(1) General Commands Manual RABIN2(1)

rabin2 — استخراج‌کننده اطلاعات فایل‌های باینری

rabin2 [-AcdeEghHiIjJlLMpqQrRsStuVvwxZ] [-a arch] [-b bits] [-B addr] [-C fmt:C:[D]] [-D lang sym|-] [-f subbin] [-F binfmt] [-k query] [-K algo] [-m addr] [-n str] [-N minlen:maxlen] [-o str] [-O binop] [-X fmt file ...] [-@ addr] file

یک ابزار استخراج اطلاعات فایل‌های باینری با پشتیبانی از قالب‌های ELF، PE، MZ و Mach-O، که جزئیاتی درباره سرآیندها، بخش‌ها، نمادها، واردات، صادرات و داده‌های اشکال‌زدایی ارائه می‌دهد.

بیشتر گزینه‌ها از طریق دستور 'i' در radare2 نیز در دسترس هستند (برای راهنمایی عبارت 'i?' را وارد کنید).

addr
نمایش بخش، نماد یا واردات در نشانی داده‌شده
فهرست کردن زیرباینری‌ها و جفت‌های معماری-بیت مرتبط با آن‌ها
arch
تنظیم معماری (x86، arm، .. یا <arch>_<bits>)
bits
تنظیم تعداد بیت‌ها (32، 64، ...)
addr
بازنویسی نشانی پایه (برای باینری‌های مستقل از نشانی)
فهرست کردن کلاس‌ها
فهرست کردن کلاس‌ها در قالب فایل سرآیند
[fmt:C[:D]]
ایجاد [elf,mach0,pe] با جفت‌های هگز کد و داده (به -a مراجعه کنید)
نمایش اطلاعات اشکال‌زدایی/dwarf
lang symbolname|-
بازگردانی نام نماد (Demangle) (یا - برای خواندن از stdin) برای زبان lang (مانند cxx، ibmxl، swift، java، msvc، ..)
نقطه ورود برنامه (entrypoint)
نقاط ورود سازنده/ویران‌کننده (Constructor/destructor)
نمادهای قابل صدور به‌صورت سراسری
subbin
انتخاب معماری زیرباینری؛ مناسب برای باینری‌های fat-mach0
binfmt
اجبار به استفاده از آن افزونه bin (نادیده گرفتن بررسی سرآیند)
مشابه -SMZIHVResizcld -SS -SSS -ee (نمایش تمام اطلاعات)
addr
نشانی بارگذاری . نشانی به سرآیند
نمایش این پیام راهنما
فیلدهای سرآیند
اطلاعات باینری
واردات (نمادهای واردشده از کتابخانه‌ها)
خروجی در قالب json
var
نمایش متغیر محیطی
query
اجرای پرس‌وجوی SDB روی فایل بارگذاری‌شده؛ برای مثال: '*'
algo
محاسبه چه‌ک‌سام‌های بخش‌ها (md5، sha1، ..)
فهرست کردن کتابخانه‌های پیوند خورده به باینری
plugin
فهرست کردن افزونه‌های bin پشتیبانی‌شده یا جزئیات افزونه
addr
نمایش خط کد منبع در نشانی addr
اصلی (نمایش نشانی نماد main)
str
نمایش بخش، نماد یا واردات با نام str
minlen:maxlen
اجبار حداقل:حداکثر تعداد نویسه‌ها در هر رشته (به -z و -zz مراجعه کنید)
str
فایل خروجی یا دایرکتوری استخراج برای عملیات نوشتن
binop
انجام عملیات باینری روی فایل باینری هدف (تخلیه، تغییر اندازه، تغییر بخش‌ها، ...). برای اطلاعات بیشتر از -O help استفاده کنید:
e/0x8048000       تغییر نقطه ورود
d/s/1024          تخلیه نمادها
d/S/.text         تخلیه بخش
r/.data/1024      تغییر اندازه بخش
R                 حذف RPATH
a/l/libfoo.dylib  افزودن کتابخانه
p/.data/rwx       تغییر مجوزهای بخش
c                 نمایش داده‌های Codesign
C                 نمایش اختیارات LDID
همیشه نشانی‌های فیزیکی را نشان بده
نمایش اطلاعات اشکال‌زدایی/pdb
بارگیری فایل pdb برای باینری
حالت کم‌گو، نمایش داده‌های کمتر
نمایش اطلاعات کمتر (برای مثال بدون addr/size برای -z)
نمایش نشانی بارگذاری استفاده‌شده توسط dlopen (کتابخانه‌های بدون aslr)
خروجی با ساختار دستورات Radare
بازنشانی‌ها (Relocations)
نمادها (Symbols)
بخش‌ها (Sections)
قطعه‌ها (Segments)
نگاشت بخش‌ها به قطعه‌ها
نمایش درهم‌سازهای فایل
نمایش امضای فایل، گواهی‌ها و جزئیات امضا
منابع (Resources)
نمایش نسخه و خروج
نمایش اطلاعات نسخه باینری
نمایش بلوک‌های try/catch
استخراج زیرباینری‌های موجود در فایل (برای مثال، معماری‌های درون یک باینری FAT Mach-O). ترکیب با -S, -SS, یا -u برای استخراج بخش‌ها، قطعه‌ها، یا منابع خام به جای آن. بنابراین، -xS بخش‌ها، -xSS قطعه‌ها، و -xu منابع را استخراج می‌کند. استخراج منابع می‌تواند با استخراج بخش یا قطعه ترکیب شود. نام‌ فایل‌های بخش، قطعه و منبع شامل نوع، نام یا گونه تصحیح‌شده، و نمایه آن‌ها است؛ فایل‌های موجود هرگز رونویسی نمی‌شوند. از -o dir برای انتخاب دایرکتوری خروجی استفاده کنید. بدون آن، بخش‌ها، قطعه‌ها و منابع به ترتیب در مسیرهای <file>.sections, <file>.segments, و <file>.resources نوشته می‌شوند. زیرباینری‌ها دایرکتوری سنتی <file>.fat را حفظ می‌کنند.
format file ...
بسته‌بندی فایل‌های ارائه‌شده در قالب fat یا zip
رشته‌ها (از بخش داده)
حدس زدن اندازه برنامه باینری
نمایش رشته‌ها از فایل‌های باینری خام
تخلیه رشته‌های خام در stdout (برای فایل‌های بسیار حجیم)

مشابه r2 -N؛ افزونه‌های اشتراکی را بارگذاری نمی‌کند
ترتیب بارگذاری افزونه‌ها: i=internal، e=env، h=home، s=system؛ پیش‌فرض=iehs؛ علامت ? راهنما را نمایش می‌دهد
نادیده گرفتن آرگومان‌های خط فرمان و استفاده از این مقادیر به جای آن
تنظیم مجموعه نویسه (charset) پیش‌فرض برای رشته‌های -z
مشابه r2 -e bin.str.debase64 - تلاش برای رمزگشایی تمام رشته‌ها به صورت base64 در صورت امکان
مشابه r2 -e bin.demangle - بازگردانی نام نمادها (demangle)
مشابه r2 -e bin.demangle.cmd - تلاش برای پاک‌سازی موارد مثبت کاذب
مشابه r2 -e bin.demangle.trylib=<bool>; - بارگذاری کتابخانه‌های Swift برای demangle (پیش‌فرض: false)
مشابه r2 -e bin.filter=<bool>; - مقدار false برای عدم تغییر نام نمادها/بخش‌های تکراری (پیش‌فرض: true)
مشابه r2 -e bin.lang - فرض کردن زبان lang برای demangling
در صورت تنظیم، اطلاعات FUNCSTART نادیده گرفته می‌شود
جلوگیری از تجزیه فراداده‌های swift
عدم تجزیه chained fixups در mach-o
مشابه r2 -e bin.str.maxbuf - تعیین بیشینه اندازه بافر
مشابه r2 -e pdb.server - استفاده از سرور PDB جایگزین
مشابه r2 -e bin.prefix - افزودن پیشوند به نمادها/بخش‌ها/بازنشانی‌ها با یک رشته مشخص
مشابه r2 -e bin.resraw=true - استخراج منابع بدون رمزگشایی محتوای آن‌ها
مشابه r2 -e bin.str.filter
مشابه r2 -e bin.str.purge - تلاش برای پاک‌سازی موارد مثبت کاذب
مشابه r2 -e pdb.symstore - مسیر به مخزن نماد downstream
مشابه r2 -e bin.verbose=true - نمایش پیام‌های اشکال‌زداییِ تجزیه‌کننده

فهرست کردن نمادهای یک برنامه


$ rabin2 -s a.out

دریافت آفست نماد


$ rabin2 -n _main a.out

دریافت نقطه ورود برنامه


$ rabin2 -e a.out

بارگذاری نمادها و واردات از طریق radare2


$ r2 -n /bin/ls
[0x00000000]> .!rabin2 -prsi $FILE

radare2(1)

نوشته‌شده توسط pancake <pancake@nopcode.org>.

July 14, 2026