Reverse Code Engineering

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

Reverse Code Engineering

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

Reverse Code Engineering

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

آخرین نظرات

ساختار فایل های اجرایی در ویندوز-قسمت دوم

جمعه, ۳ بهمن ۱۳۹۳، ۰۲:۳۸ ب.ظ

آخرین فیلد ساختار OptionalHeader یعنی فیلد DataDirectory که 128 بایت فضا اشغال کرده دارای 16 تا ساختار به نام IMAGE_DATA_DIRECTORY هستش و هر کدوم ازین ساختار ها 8 بایت سایز دارن.

این ساختار بشکل زیر هستش:

فیلد اول آدرس ساختار رو نشون میده فیلد دوم هم سایز آن رو مشخص میکنه

 

این 16 تا ساختار رو در زیر مشاهده می کنید

همین 16 تا ساختار رو توی برنامه Lordpe مشاهده کنید:

همین 16 تا ساختار داخل هگز ادیتور:

همونطور که گفتیم هر کدوم ازین 16 تا ساختار به یه ساختار دیگه ای اشاره میکنه که مهمترینش Import Table و Exprot Table هستن که بعدا در موردش توضیح خواهم داد.


Section Table

بعد از PE Header (بعد از Data Directory ها) تعدادی ساختار وجود داره که بهش IMAGE_SECTION_HEADER میگن تعداد این ساختارها با تعداد section ها برابر هستش یعنی به ازای هر سکشن یه ساختار IMAGE_SECTION_HEADER وجود داره و هر کدوم ازین ساختارها 40 بایت سایز دارند

 

این ساختار رو در زیر مشاهد میکنید

فیلدهای مفید این ساختار رو توضیح میدم:

 

Name1:

این فیلد 8 بایت هستش و نامی که مشخص میکنه حکم یه برچسب رو داره, البته این فیلد میتونه خالی باشه و بدلیل اینکه این فیلد از نوع رشته نیست لازم نیست نام با کاراکتر null خاتمه پیدا کنه

 

VirtualSize:

سایز سکشن رو نشون میده که ممکنه کوچکتر یا بزرگتر از سایز سکشن روی دیسک (SizeOfRawData) باشه

 

VirtualAddress:

لودر ویندوز اگه بخواد این سکشن رو در حافظه نگاشت کنه ازین آدرس استفاده میکنه

 

SizeOfRawData:

سایز سکشن روی دیسک رو نشون میده که ضریبی از FileAlignment توی PE Header هستش

 

PointerToRawData:

محتوی آفست سکشن از شروع فایل هستش

 

Characterstics:

محتوی یه سری پرچم هستش مثل مشخص کردن سکشنی که محتوی کدهای اجرایی هستش یا اینکه میشه توی سکشن نوشت یا نه و چیزای دیگه

 

حالا section table رو داخل هگز ادیتور مشخص می کنیم:

Sections

 

یه section با توجه به ساختار IMAGE_SECTION_HEADER که بالا توضیح دادیم داخل فایل قابل رویت هستش. سکشن ها محتوی اجزای اصلی یه فایل مثل داده ها, کدها, منابع و .... هستن. توی ویندوز 9 تا سکشن تعریف شده داره

.text, .bss, .rdata, .data, .rsrc, .edata, .idata, .pdata, .debug

 

سکشن ها مطلب گفتنی خاصی ندارن.


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

اگه جایی از مباحث مرتبط با ساختار فایل های اجرایی رو متوجه نشدید بگید.
موفق باشید
pcrlth0n





نظرات (۱)

ممنون بابت زحماتی که کشیدید

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی