صفحه 1:
صفحه 2:
صفحه 3:
فایل های اجرایی
اا ا ال ل ات ا ان
م ا ل ل ا ا OO
ا ل 0 2500720
و
Windows *
.exe ( windows executable file)
.sct (Windows Script Component )
.shb (Windows Shortcut into a Document )
.wsf (Windows script file )
.cmd (Windows Command File )
ساختار فابلهای Ete eee pera 3 اسلاید
صفحه 4:
فايل هاى اجرايى
تزهه)
.bat (DOS Batch File )
.com (DOS Command File )
۴«
-bin (Unix Executable File )
.ksh (Unix Korn Shell Script )
* MAC OS
.app (Mac OS X Application)
صفحه 5:
|
۶ به معنایف ایلاجرلییقابلحملاست
۰ فرمت اصلی فایل های اجرایی در ویندوزهای 32
بیتی می باشد.
* فرمت این فایل ها در کلیه نسخه های 32 بیتی
ویندوز یکی است.
۱
۷۱ 1 dn sp ery
صفحه 6:
۱99 1
ا ا ل |
ا ا 572
باعث مى شود كه سيستم عامل انرا به عنوان فايل اجرايى معتبر
a امك
PE Header
Sections
Table
صفحه 7:
و۱90
ء معمولا با اجراى 5لاأ5 1005 رشته
. هی آید ۱7۳۳۰۱۱۳۱ Program Cannot Be Run In Dos Mode"
؟ء اين بخش معمولا توسط كامبايلر به صورت اتوماتيك به فايل اجرايى اضافه
مى شود.
ee Pee a Et eee pera By ساختار فابلهای
صفحه 8:
PE Header
(Loader) 135 4b aol» slel oloj 42 yl el PE Header bls sax yuu
05 ۱2 می تواند ادرس شروع۲۱6۵06۲ ۶ را توسط سرایند ۲
شناسایی کند .
Header PE Header
صفحه 9:
Section Table
۶ محتوای اصلی فایل اجرایی به بلوک هایی تقسیم می شود
ات ۱
Sections جيزوجز بلوكواز داده ها با يكصفدمشتركنيست
بعد از بخش /16306] 58 بخش 6ا180 0مضز1ناع56
ا 5
هر ركورد حاوى اطلاعاتى از قبيل صفات آفست
و... در مورد يك 5621100 است . Sections
Table
2 Ete eee pera ساختار فابلهای
صفحه 10:
DOS Header Structure
Dos MZ Header به lis ركوردى
IMAGE_NT_HEADER
از نوع
1
هر است
DOS Head: 7
۱ ات *
ساختار فابلهای Ete eee pera 0 اسلاید
صفحه 11:
PE Header
Piolo) a] SY WCy] Ear em eT Ooh V0] Ke ee ews Corre soe) ear 1MU Cay
5 , 450 00 مئياشد. (رشته ۴۶ به همرله دو صفر)
File Header ٠ ركوردى است كه حاوى اطلاعاتى
PE Header
درباره ساختار فيزيكى فايل اجرايى
۰ ۲۱6۵06۲ 00100۵۱ رکوردی است که حاوی اطلاعاتی| ايا اتا
درباره ساختار منطقى فايل اجرايى
ساختار فابلهای Ete eee pera 1 اسلاید
صفحه 12:
File Header
Papen را Se Pry evo from
PU FM eye et) *61055عع5 04 را
Time Date stamps تاريخ و زمانليجاد فايل
so yasuine |, optional Headers 45, ojlail Size of optional Header
كند
و وت ات لوف اش الا 20 ا 1ك لت
ساختار فابلهای Ete eee pera 2 اسلاید
صفحه 13:
Optional Header
IMAGE_NT_HEADER,lislw gas ysl *
محسوب مى شود كه حاوى اطلاعاتى درباره
ساختار منطقى قايل اجرابى مى باشد.
۶ این رکورد شامل 31 عضو است که برخی
ل ل ا 0
Ete eee pera ساختار فابلهای
BARC AO aay
* Ione Owe
ای تست ۱9
لخن تن
0
ا
0
3 اسلاید
صفحه 14:
(Relative Virtual Address) RVA
Ire pIPUet ECL PaC Is ا ل ال ل ل
Jey ie ot (cepa er PC IF IC 0
Beye ree EPS) Up Are PN Ceara eg ORO V7 a
Pe rr oy kt Oe ree a a
و
er reins Peer ال ا ys is elem
POW Pee pe Wi10(0)
ساختار فابلهای Ete eee pera 4 اسلاید
صفحه 15:
Optional Header
اك ا ا ا eee
ely
Lebelbls رف Image Base*
در آنجا قرار می دهد 2
و ره 100عع5در حافظه رابه
line
یر ی رن را 11 ۳
|19 Cas oe EP e aN E Ieee 1:10 01010) ) nD
صحيحى از
eer eee Pye
ساختار فابلهای Ete eee pera 5 اسلاید
صفحه 16:
Optional Header
۵۰ الینعضو چگونگیقرار گرفتن تک تک5661[00 ها را در
rar)
ey pen Pern ey hey. Porn a ee
Size of images إندازه كلىوفايلاجرليودر حافظه را مشخصموكند كه
ع ا ا 72
Size Of Headers حجم كلهدرها به همرلهع|713 5666160 را
مشخص
مى كند .اين مقداربرابر حجم كلى فايل منهاى حجم 5666101 ها است.از
00 ا ا ا BE Pe]
كنيد.
ساختار فابلهای Ete eee pera 6 اسلاید
صفحه 17:
Optional Header
a Sw! IMAGE_DATA_DIRECTORY 2495, jlsl al © Data Directory*
هر
رکورد حاوی ۷۸ مربوط به یک رکورد مهم از فایل اجرایی مانند
(۱۵۸۲) ۲۵0۱6 ۸00۳6۶5 ۱۳۱۵۵۲۲ است
7 083143 عبارتند از:
Export symbols Load configuration COM descriptor
Import symbols Thread local storage (TLS) Delay Import
eS Unknown Bound Import
اين Copyright string pee
0 Base relocation
ساختار فابلهای دانشگاه بیرجند-بهار 88 7 اسلاید
صفحه 18:
Optional Header
0 ۲
میج Data Directory
teu! ons Sis a8 99 51 data directory 25>
Opt Header
Data directory 3
۶۰ ۱۷۱۳۸۵ که آدرس ۲۷۸ ساختار مورد ز
دارد.
Te rar ere ey enim از emma
import address table 3,55, virtual address Jlic ulsic w
.cuul IMAGE_IMPORT_DESCRIPTOR w bg.» RVA slyl>
ساختار فابلهای Ete eee pera 8 اسلاید
صفحه 19:
Section Table
*73016 56150 در واقع آرليه لواز ركوردها السنكه دقيقاً بعداز عم
Header
قرار گرفته است
aS Number Of Sections laws aljl yl sles! lass *
يكى از اعضاى ركورد !16306 ©11آ] است.مشخص مى شود.
۱۳۸6۴ 5۶0۲۱0۱1 ۲۷۶۵۸0۴8 رکوردهای اين آرایه از نوع ٠
Sections
Table
ساختار فابلهای Ete eee pera 9 اسلاید
صفحه 20:
Name
Virtual Address
Size Of Raw Data
Pointer To Raw Data
Characteristics
صفحه 21:
Section Table
cul 8 را معین می کند که حداکثر طول آن Section eb Name °
است.
واه ور ۳
it
Size Of Raw ۶۴ فضاءاشفا(لشده توسط 56610۳ در فایل
اجرلیی
per ger ee FP (WV fe elu 1a ae) be eae Seat Tae
Feri pes WA meee Besi-Laie[ol epee eee ل L 1
1
ساختار فابلهای Ete eee pera 1 اسلاید
صفحه 22:
Import Table
UAE eevee اال ا
wo oylislyl a Data Directory siat 092 aS rlyo PE
کند .مشخصات
ما ا 1010
ال ا 50
بدى قرار دارد.
import address table 3555, 010 >
7
VA
با ۱۷۱۸۵۲ ۱۳۳۵۴۲ ۸
همان ار
دانشگاه بير
صفحه 23:
Import Table
ا ال Amey oeirre )> ل 0
داراى
02000 لما ال cul pao lato
: تشكيل شده است كه اين مهمترين اين فيلدها عبارتند از
Import By eli as SusylislwasaS Original First Thunk:
Name
ار ke lnigi-c را ار RIES eM rim
تابع ورودى (081007نا"] 1178016) اشاره مى كند.در حقيقت /ا88 اين
Lis!
ات
دهملهنی فیله قرقلادلر8 ۱۳۱۵۵۲۲۰ نیز از تعدای فیلد تشکیل شده است که
۱ ا
ساختار فابلهای دانشكاه بيرجند-بهار 88 3 اسلاید
صفحه 24:
Import Table
صفحه 25:
Export Table
Gach ۱ ۱ raed vw licen ete
در جدول توايع خروجى (©1301 5“0016) قرار دهد.
ور ا ارات ری ام ار ۱
Mtr eet SHC DORCAS Sy Rees EE SECs ECLA 000
به توايع ورودى را از برنامه اصلى بازخوانى كرده و با استفاده ازآنها به
جستجوى آدرس توايع مورد نياز برنامه در فايل المى يردازد. باركذار م
0 ل د ا 02
ساختار فابلهای Ete eee pera 5 اسلاید
صفحه 26:
Export Table
x0 o Lal Export Table a, Data Directory gas ylol كند
Pires Maree erevn ey Revrrgnv Wen Pers fo olole aa 101 cared
1 عضو دارد مهمترین اين فیلدها عبارتند از :
۱ ار ۱ ۱ زا trot
نام فايل باركذار 88 از اين نام داخلى استفاده خواهد كرد.
*6©1055ناء 04 1 a0) o1 0 : تعداد كلتولبعوكه توسطلينفايلصادر
میشوند.
ساختار فابلهای Ete eee pera 6 اسلاید
آنهایی که فکر می کنند پیروز می شوند
و آنهایی که فکر می کنند شکست می خورند
هر دو درست فکر می کنند
ناپلئون
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
1
اسالید
فایل های اجرایی
تعریف فایل اجرایی
انواع فایلهای اجرایی
ساختار فایلهای PE
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
2
اسالید
فایل های اجرایی
• تعریف مشخصی برای فایلهای اجرایی وجود ندارد ولی بطور کلی به
فایلهای که شامل یک سری source codeهستند و قابلیت اجرا بر روی
پردازنده را دارند فایل اجرایی گفته می شود.
•
این فایلهای در سیستم عامل های مختلف دارای انواعی متفاوتند
• Windows
).exe ( windows executable file
) .sct (Windows Script Component
) .shb (Windows Shortcut into a Document
) .wsf (Windows script file
) .cmd (Windows Command File
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
3
اسالید
فایل های اجرایی
• DOS
.bat (DOS Batch File )
.com (DOS Command File )
• Unix
.bin (Unix Executable File )
.ksh (Unix Korn Shell Script )
• MAC OS
.app (Mac OS X Application)
• …
اسالید
4
88 بهار-دانشگاه بیرجند
ساختار فایلهای
اجرایی
فایلهای (Portable
PE) Executable
•PE
به معنای فایل اجرایی قابل حمل است.
• فرمت اصلی فایل های اجرایی در ویندوزهای 32
بیتی می باشد.
• فرمت این فایل ها در کلیه نسخه های 32بیتی
ویندوز یکی است.
• ساختار و قالب این فایلها از فایلهای COFF
سیستم عامل UNIXبرداشت شده است.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
5
اسالید
DOS Header
کلیه فایل های اجرایی در win32با یک سرایند ساده Dos MZشروع
می شوند.در صورتیکه فایل اجرایی در محیط dosاجرا شود این سرایند
باعث می شود که سیستم عامل انرا به عنوان فایل اجرایی معتبر
شناسایی کند
DOS Header
PE Header
Sections
Table
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
6
اسالید
DOS Header
•
معموال با اجرای Dos Stubرشته
""This Program Cannot Be Run In Dos Modeبه نمایش در می آید .
•
این بخش معموال توسط کامپایلر به صورت اتوماتیک به فایل اجرایی اضافه
می شود.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
7
اسالید
PE Header
•بخش بعدی فایل PE Headerنام دارد .در زمان اجرای برنامه بار گذار(،)Loader
PEمی تواند ادرس شروع PE Headerرا توسط سرایند Dos MZ
شناسایی کند .
DOS Header
PE Header
DOS
Header
PE Header
Sections
Table
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
8
اسالید
Section Table
•
محتوای اصلی فایل اجرایی به بلوک هایی تقسیم می شود
که Sectionنامیده می شود.
•Section
نیست .
چیزی جز بلوکی از داده ها با یک صفت مشترک
• بعد از بخش PE Headerبخش Section Table
قرار گرفته است که آرایه ای از رکورد ها است
DOS Header
PE Header
هر رکورد حاوی اطالعاتی از قبیل صفات آفست
و ...در مورد یک Sectionاست .
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
Sections
Table
9
اسالید
DOS Header Structure
Dos MZ Headerبه عنوان رکوردی از نوع IMAGE_NT_HEADER
تعریف شده است .که تنها دو عضو آن در اینجا برای ما اهمیت دارند:
•E-magic
• e_Ifanew
که شامل رشته MZاست.
که آدرس PE Headerرا در خود دارد.
DOS Header
PE Header
Sections
Table
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
10
اسالید
PE Header
•Signature
متغییری از نوع dwordاست که حاوی مقدار ، ooh
ooh 45h ، 50hمی باشد.
(رشته PEبه همراه دو صفر )
• File Headerرکوردی است که حاوی اطالعاتی
درباره ساختار فیزیکی فایل اجرایی
DOS Header
PE Header
• Optional Headerرکوردی است که حاوی اطالعاتی File Header
درباره ساختار منطقی فایل اجرایی
Opt Header
Sections
Table
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
11
اسالید
File Header
• Machineمدل پرداز شگر مورد نیاز برای اجرای دستورات فایل اجرایی
•Number of sections
•Time Date stamp
تعداد Sectionهای موجود در فایل
تاریخ و زمان ایجاد فایل
• Size of optional Header
کند
•Characteristics
ساختار فایلهای
اجرایی
اندازه رکورد optional Headerرا مشخص می
نوع فایل اجرایی را مشخص می کند .برای مثال exeیا dll
دانشگاه بیرجند-بهار 88
12
اسالید
Optional Header
•
آخرین عضو ساختارIMAGE_NT_HEADER
محسوب می شود که حاوی اطالعاتی درباره
ساختار منطقی فایل اجرایی می باشد.
•
این رکورد شامل 31عضو است که برخی
از آنها از اهمیت بیشتری برخوردار هستند.
• Address Of Entry Point
• Image Base
• Section Alignment
• File Alignment
• Size Of Image
• Size Of Headers
• Data Directory
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
13
اسالید
(Relative Virtual Address) RVA
•
در حقیقت RVAمیزان فاصله از یک نقطه مرجع از فضای حافظه برنامه را
بیان می کند که دقیقًا همانند یک آفست عمل می کند.
•
RVAباعث ساده تر شدن علمیات بازگذاری فایل می شود .
•
و
بطور مثال اگر فایل اجرایی در آدرس 400000برنامه قرار بگیرد
برنامه از آدرس 401000شروع به اجرا کند می توانیم بگوییم برنامه
با
RVA 1000اجرا شده است.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
14
اسالید
Optional Header
•
کند.
•Image Base
را
Address Of Entry Pointآدرس اولین دستور فایل اجرایی را مشخص می
حاوی آدرسی است که ترجیحًا بارگذاری PEفایل اجرایی
در آنجا قرار می دهد
•Section Alignment
مضارب
آدرس شروع هر Sectionدر حافظه را به
صحیحی از مقدار مورد نظر محدود می کند .عنوان مثال اگر مقدار این عنصر
برابر با ( 4096 )1000hباشد ،آدرس شروع هر ، Sectionاز مضرب
صحیحی از
4096شروع می شود.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
15
اسالید
Optional Header
•File Alignment
فایل
این عضو چگونگی قرار گرفتن تک تک sectionها را در
مشخص می کند که عملکردی مشابه عضو قبلی دارد.
•Size of image
که
اندازه کلی فایل اجرایی در حافظه را مشخص می کند
مجموع Headerها و sectionها است .
•Size Of Headers
حجم کل هدرها به همراه Section Tableرا مشخص
می کند .این مقداربرابر حجم کلی فایل منهای حجم sectionها است.از
این مقدار میتوانید به عنوان آفست اولین sectionدر فایل اجرایی استفاده
کنید.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
16
اسالید
Optional Header
استIMAGE_DATA_DIRECTORY آرایه ای از رکورد
Data Directory•
که هر
مربوط به یک رکورد مهم از فایل اجرایی مانندRVA رکورد حاوی
. استImport Address Table (IAT)
: عبارتند ازData Directory رکورد های مهم
Export symbols
Load configuration
COM descriptor
Import symbols Thread local storage (TLS) Delay Import
Resources
Exceptio
n
Security
اسالید
17
Unknown
Copyright string
Bound Import
Debu
g
Base relocation
88 بهار-دانشگاه بیرجند
ساختار فایلهای
اجرایی
DOS Header
Optional Header
PE Header
File Header
Data Directory
Opt Header
: از دو فیلد تشکیل شده استdata directory خود
Data directory
. ساختار مورد نظر را داردRVA که آدرس
Sections
Table
Virtual Address•
.که حاوی اندازه ساختار مورد نظر به بایت است
Size•
import address table رکوردvirtual address به عنوان مثال
. استIMAGE_IMPORT_DESCRIPTOR مربوط بهRVA دارای
اسالید
18
88 بهار-دانشگاه بیرجند
ساختار فایلهای
اجرایی
Section Table
•Section Table
Header
در واقع آرایه ای از رکوردها است که دقیقًا بعد از PE
قرار گرفته است
•
تعداد اعضاء این آرایه توسط Number Of Sectionsکه
DOS Header
یکی از اعضای رکورد File Headerاست،مشخص می شود.
•
رکوردهای این آرایه از نوع IMAGE_SECTION_HEADER
PE Header
هستند.
Sections
Table
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
19
اسالید
Section Table
• Name
• Virtual Address
• Size Of Raw Data
• Pointer To Raw Data
•
Pointer To Relocations
• Pointer To Line numbers
• Number Of Relocations
• Number Of Line numbers
•
Characteristics
اسالید
20
88 بهار-دانشگاه بیرجند
ساختار فایلهای
اجرایی
Section Table
• Nameنام Sectionرا معین می کند که حداکثر طول آن 8بایت
است.
•RVA Virtual Address
•Size Of Raw Data
اجرایی
مربوط به هر Sectionرا مشخص می کند.
فضای اشغال شده توسط Sectionدر فایل
را با در نظر گرفتن مقدار File Alignmentمشخص می کند.
•Pointer To Raw Data
مشخص
آدرس شروع Sectionرا در فایل اجرایی
می کند.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
21
اسالید
Import Table
•
جدول ورودی یا Import Tableیکی دیگرازمهمترین قسمتهای فایل
PEمیباشد که دومین عضو Data Directoryبه آن اشاره می
کند .مشخصات
توابعی که در داخل برنامه فراخوانی شده اند از قبیل نام تابع و نام فایل
DLLای که آن تابع در آن فایل قرار دارد در داخل جدول
DOS Header
ورودی قرار دارد.
•
PE Header
virtual addressرکورد import address tableدر درون
Opt Header
data directoryدارای RVAمربوط به
IMAGE_IMPORT_DESCRIPTORیا
همان ساختارجدول ورودی است.
ساختار فایلهای
اجرایی
Import
Address
Table
)(IAT
دانشگاه بیرجند-بهار 88
VA
Data DIR
Sections
Table
22
اسالید
Import Table
•
هر رکورد درون IATمربوط به یک فایل DLLاست که آخرین رکورد
دارای
مقدار صفر است که پایان جدول را نشان می دهد.هر رکورد از تعدادی فیلد
تشکیل شده است که این مهمترین این فیلدها عبارتند از :
•Original First Thunk
Name
که به ساختاری دیگری به نام Import By
اشاره می کند که آن ساختار آرایه ای از رکورد هاست و هر رکورد به یک
تابع ورودی ( )Import Functionاشاره می کند.در حقیقت RAVاین
ساختار
فیلد قرار
در این
دارد Import.نیز از تعدای فیلد تشکیل شده است که
By Name
همچنین
نگهداری می کند.
توابعنام تابع
مشخصات که
•Name
DLLدررابر دارد
ورودی را
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
23
اسالید
DOS Header
Import Table
PE Header
Opt Header
VA
Data DIR
Import Address Table
(IAT)
Kernel32.dll
RVA
user32.dll
Sections
Table
Original First Thunk
RVA
0
Import By Name
اسالید
Function 1
Func num
Function 2
Func num
24
88 بهار-دانشگاه بیرجند
ساختار فایلهای
اجرایی
Export Table
یک فایل PEمی تواند توابع داخلی خود را برای استفاده سایر فایل های PE
در جدول توابع خروجی ( )Export Tableقرار دهد.
هنگامی که بار گذار PEبرنامه ای را اجرا می کند dllهای موردنیاز برنامه را
نیز باگذاری کرده و در فضای آدرس آن قرار می دهد .سپس اطالعات مربوط
به توابع ورودی را از برنامه اصلی بازخوانی کرده و با استفاده ازآنها به
جستجوی آدرس توابع مورد نیاز برنامه در فایل dllمی پردازد .بارگذار PE
برای جستجوی توابع به Export Tableفایل DLLرجوع می کند.
ساختار فایلهای
اجرایی
دانشگاه بیرجند-بهار 88
25
اسالید
Export Table
اولین عضو Data Directoryبه Export Tableاشاره می کند
ساختار Export Tableاز تعدادی فیلد تشکیل شده است .این ساختار
11عضو دارد مهمترین این فیلدها عبارتند از :
•Name
تغییر
:نام واقعی فایل است .این فیلد بسیار ضروری است در صورت
نام فایل بارگذار PEاز این نام داخلی استفاده خواهد کرد.
•Number Of Functions
شوند.
ساختار فایلهای
اجرایی
:تعداد کل توابعی که توسط این فایل صادر می
دانشگاه بیرجند-بهار 88
26
اسالید