Reverse Code Engineering

逆向工程代码 обратная код машиностроения

Reverse Code Engineering

逆向工程代码 обратная код машиностроения

Reverse Code Engineering

Share what I know............... learn what I don’t

آخرین نظرات

۱ مطلب با کلمه‌ی کلیدی «آموزش مقدماتی زبان اسمبلی» ثبت شده است

برای یاد گیری کرک یا به صورت کلی مهندسی معکوس نرم افزار ما نیازمند یادگیری یه سری پیش زمینه ها هستیم.اولینش آشنایی با زبان اسمبلی هستش,نیاز نیست که برنامه نویسی با این زبان رو یاد بگیرید همینکه با دستورات مهمش آشنا باشید می تونید کار خودتون رو پیش ببرید.

OllyDbg و IDA Pro دوتا از ابزارهای رایج دیس اسمبل کردن فایل های باینری برای استخراج دستورات اسمبلی از زبان سطح ماشین هستند. پس عملکرد نرم افزار به زبان اسمبلی ازطریق این ابزارها قابل رویت هستش

در اینجا قصد آموزش کامل این زبان رو نداریم و فقط یک توضیح کلی در مورد بخش های اولیه و پرکاربرد این زبان را می دهیم.

 

پیش زمینه:

BIT : کوچکترین قسمت داده ای که یا 0 هستش یا 1

مثال: 00000001 = 1       00000010 = 2             00000011 = 3    

 

BYTE: یک بایت حاوی 8 بیت است که می تواند 255 حالت را بسازد.(0 تا 255)

 

WORD: یک WORD حاوی 2 بایت یا 16 بیت است.و بیشترین حالت ممکن آن 0FFFFh (یا 65535) است.

 

DOUBLE WORD: حاوی 2 تا WORD یا به عبارتی 32 بیت است و بیشترین مقدار ممکن آن 0FFFFFFFF (یا 4294967295) است.

 

KILOBYTE: یک کیلوبایت برابر با 1024 بایت (32*32) است.

 

MEGABYTE: محتوی 1024*1024 یا 1,048,578 بایت است.

 

قسمت اول: رجیسترها

 

در IA-32 هشت رجیستر عمومی وجود داره:

EAX:   Extended Accumulator Register

EBX:   Extended Base Register

ECX:   Extended Counter Register

EDX:   Extended Data Register

ESI:    Extended Source Index

EDI:    Extended Destination Index

EBP:   Extended Base Pointer

ESP:   Extended Stack Pointer

 

البته بغیر از اینها رجیسترهای دیگه ای هم وجود داره مثل EIP که حاوی اشاره گری به دستور جاری هستش.البته لازم نیست زیاد نگران باقی رجیسترها باشید.

توجه کنید که همه نام ها با حرف E شروع شده اند که این بمعنی 32 بیتی بودن آنهاست.