صفحه 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 اسالید

51,000 تومان