Bajariladigan fayllarni tahlil qilish uchun dasturlar. PE fayl kengaytmasi nima? PE fayllarini ochish bilan bog'liq muammolarning boshqa sabablari

Ko'rib chiqish maqolasi fiks-ru.net saytidan ko'chirildi (qo'pollik bilan).

PEID 0,95


PEID- bajariladigan fayllarning eng mashhur analizatori. Oxirgi versiya 2008 yil noyabr oyidan boshlab 0.95. Tahlil imzolarning ichki va tashqi ma'lumotlar bazasida amalga oshiriladi, tezdan chuqurgacha skanerlashning bir necha darajalari mavjud, siz butun kataloglarni qayta ishlashingiz mumkin. Funktsionallik tashqi plaginlar tomonidan osongina kengaytiriladi, imzolar alohida matn faylida saqlanadi, shuning uchun siz o'zingizni osongina qo'shishingiz mumkin. Imzolar bazasi bilan ishlash uchun maxsus dastur yozildi. PEiDSO. Plagin ishlab chiquvchilari turli dasturlash tillaridagi misollar va API tavsifi bilan SDK bilan ta'minlangan. Dasturdan tashqarida kampaniya uzoq vaqt davomida yashashni buyurdi, ammo har holda, uni bu erda yuklab olish yaxshiroqdir, chunki aks holda siz kerakli plaginlar va imzolar to'plamini o'zingiz yig'ishingiz kerak edi, lekin bu erda u munosib jihozlangan.

PEiD qo'llanmasini o'qish mumkin

DiE 0,65 rus



Oson aniqlang (O'lim), ichki rivojlanish, men bo'sh vaqtimda so'nggi 0.65 versiyasini rus tiliga tarjima qildim (agar siz tarjimani yoqtirmasangiz, DiE.RU faylini katalogdan tashlang - bu Eng bo'ladi). 0.65 versiyasiga emulyator qo'shildi. PEiD ga o'xshaydi, lekin asosiy e'tibor o'zining evristik analizatorlariga va shundan keyingina imzo tahliliga qaratilgan. Dastur shuningdek, ba'zi foydali funktsiyalarni taqdim etadi: importlarni, bo'limlarni ko'rish, faylni olti burchakli rejimda ko'rish, qismlarga ajratish, PEning asosiy xususiyatlarini ko'rish, MD5 xeshini va CRC-32ni olish. Funktsionallik plaginlar bilan kengaytirilgan.
Saytdan tashqari dastur

DiE (Oson aniqlash) 0,70 alfa 12

Yangilash DiE (Detect it Easy) 0.70 versiyasigacha. Dastur butunlay qayta yozildi - oldin u Borland Delphida edi, hozir esa Microsoft Visual C++ da. Shu munosabat bilan, men uning rus tiliga keyingi tarjimasini maqsadga muvofiq emas deb hisoblayman, chunki siz endi tashlab ketolmaysiz va HEX muharririda qattiq kodlangan satrlarni "qiynoqqa solish" bunga loyiq emas. Dasturning saytdan tashqarisi hozirda joylashgan. Yangi versiyani to'g'ridan-to'g'ri saytdan tashqarida yuklab olishingiz mumkin (men uni arxivga qo'shmaganman).
P.S. Yangi versiya haqida ma'lumot bergani uchun exelab.ru do'stiga rahmat.

ExeInfo PE 0.0.3.2

ExeInfo PE PEiD ga juda o'xshash, 2012 yil 11 sentyabrdagi 0.0.3.2 oxirgi versiyasi. O'rnatilgan imzolar (667 dona). Dasturning qiziqarli xususiyati bor: agar himoyachi aniqlangan bo'lsa, uni ochishga harakat qilish uchun qaysi vositadan foydalanish mumkinligi haqida ma'lumot beradi. Yangi boshlanuvchilar uchun bu ma'lumot juda foydali bo'ladi. Shuningdek, foydali vositalar qatoriga SFX modullaridan arxivlarni ripper, matn qatorlarini qidirish, ro'yxatga olish kitobi qo'ng'iroqlari, OEPni sozlash va boshqalar kiradi. Saytdan tashqarida yuklab olishingiz mumkin. Shuningdek, PEiD va DiE uchun plagin adapterini saytdan tashqarida yuklab olishingiz mumkin, bu sizga ExeInfo PE orqali fayllarni skanerlash imkonini beradi.

PE Scan 3.31

Pe Scan snyper tomonidan, so'nggi versiya 3.31, offsite mavjud bo'lishni to'xtatdi. Minimal hajm bilan dastur katta imkoniyatlarga ega. Bu bajariladigan fayllarning evristik va imzo analizatori, ba'zi paketlarni ochish, dinamik OEP qidiruvi. Yuqoridagi vositalardan tashqari, Pe-Scan notanish paketlovchilar va fayllarni shifrlash uchun noyob ehtimollik analizatoriga ega ("adv.scan" tugmasi). Unga ma'lum bo'lgan qadoqlovchilarning qaysi biri tekshirilayotgan noma'lumga o'xshashligini foizlarda ko'rsatadi. Turli skramblelar va modifikatorlar bilan ishlov berilgan umumiy UPX paketlarini aniqlashga yordam beradi.

Stud PE 2.6.1.0

Stud PE, 2012 yil 2 iyundagi 2.6.1.0 oxirgi versiyasi. Juda yaxshi dastur, fayl nima bilan to'ldirilganligini tahlil qilishdan tashqari, boshqa ko'plab foydali ma'lumotlarni ko'rsatadi: bo'limlar, resurslar, import va eksport jadvallari, DOS sarlavhasi. Stud_PE-ga o'rnatilgan HEX muharriri fayl sarlavhasining tanlangan maydonlarini ta'kidlaydi, bu uning tuzilishini tahlil qilishda juda qulaydir. Bundan tashqari, o'rnatilgan dumperli jarayon menejeri mavjud. Funktsionallik plaginlar yordamida kengaytirilgan va PEiD plaginlari mos keladi. Dasturchilar uchun API va SDK tavsifi paketga kiritilgan.

Fayl formati identifikatori 1.4

Fayl formati identifikatori- Xitoyning SUCOP antivirus kompaniyasining juda muvaffaqiyatli rivojlanishi, eng so'nggi versiyasi 2008 yildagi 1.4. Analizator PEiD formatidagi tashqi imzolarda ishlaydi, ammo asosiy qiymat oddiy paketlovchilarning o'rnatilgan statik ochuvchisi hisoblanadi. Unpacker virtual mashina texnologiyasida ishlaydi, ya'ni aslida hech qanday kod bajarilmaydi, bu zararli dasturlarni tekshirishda ayniqsa muhimdir. Dasturdagi boshqa foydali vositalar qatoriga importni qayta tiklovchi, bajariladigan faylni qayta tiklovchi, ofset kalkulyatori va ustki qatlam ekstraktori kiradi. Agar siz xitoy tilini tushunsangiz, uni saytdan tashqarida yuklab olishingiz mumkin, ammo men ushbu yig'ilishni post oxirida arxivdan olishni tavsiya qilaman. Undagi ortiqcha narsalar olib tashlandi, unpacker dvigateli funksiyalari yaxshilangan tijorat dvigateliga almashtirildi va tashqi imzo ma'lumotlar bazasi qo'shildi. Fayl formati identifikatori har doim qo'lda bo'lishi tavsiya etiladi.

Himoya ID 0.6.4.1

Himoya identifikatori, oxirgi versiya 0.6.4.0 Yomon dastur emas, asosan himoyalangan CD/DVD disklarini tahlil qilish uchun ishlatiladi. Bundan tashqari, u 350 ga yaqin paketlovchilarni, donglelarni, bajariladigan fayllarni o'rnatuvchilarni belgilaydi. Ishlash uchun qo'shimcha fayllarni talab qilmaydi, lekin o'z imzolaringizni qo'shish mumkin emas. So'nggi versiyalarda muallif tizim yuklash ko'rsatkichi, jarayon menejeri, xotira optimallashtiruvchisi va boshqa ortiqcha narsalar kabi keraksiz keraksiz narsalarni yordamchi dasturga surishning yomon tendentsiyasini payqadi.

RDG Packer Detector v.0.7.0


RDG Packer Detector , 2012 yil 27 dekabrdagi 0.7.0 oxirgi versiyasi. Yaxshi g'oya, lekin dahshatli amalga oshirish, ishlab chiquvchilar o'z dasturlarini nimaga aylantirmasligi kerakligiga yana bir misol. Agar siz yomon interfeysni tushunsangiz, analizatorga qo'shimcha ravishda siz OEP Detector, Cryptographic Analyzer kabi yana bir nechta vositalarni olasiz, ular men uchun odatda ishlamadi. Arxivga so'nggi versiya qo'shildi.

FastScanner v.3.0

FastScanner AT4RE cracker jamoasi tomonidan, so'nggi versiya 3.0 Scanner PEiD imzolari bilan ishlaydi, plaginlarni qo'llab-quvvatlaydi. Chiroyli interfeys, lekin fayllarni tekshirish natijasi ko'pincha noto'g'ri. Foydali xususiyatlardan yaxshi PE muharriri mavjud - plagin ko'rinishidagi fayllar.

Bit detektori 2.8.5.6

Bit detektori- yangi ishlanma, shuningdek, SEH Team ostidagi arab kraker jamoasidan, eng so'nggi ommaviy versiyasi 2012 yil iyun oyidan boshlab 2.8.5.6. Kompilyator va pakerni aniqlash funktsiyasidan tashqari, u bortda bir nechta foydali va unchalik foydali bo'lmagan vositalarni olib yuradi.

MiTeC EXE Explorer

MiTeC EXE Explorer- bajariladigan fayllar tuzilishining kichik bepul ko'ruvchisi. Fayl sarlavhasi, import va eksport jadvali, TLS, fayl versiyasi, Delphi shakllari, rasmlar va dialoglarni qulay shaklda ko'rish va ularni diskda saqlash imkoniyatiga ega manbalar daraxti ma'lumotlarini ko'rsatadi, shuningdek, matn uchun qulay qidiruv funktsiyasi mavjud. fayldagi satrlar.

Ultimate Hellspawn's EXE Analyzer 0.6

Ultimate Hellspawn's EXE analizatori- DiE analizator prototipi. Amaliy foydalanishdan ko'ra to'plam uchun foydaliroq bo'ladi, chunki u juda eskirgan. EXE faylining asosiy xususiyatlarini ko'rsatadi, ba'zi paketlar va himoyachilarni evristik tarzda aniqlaydi.

fayl inspektor XL

fayl inspektor XL ViPER-dan - 2001 yildagi eski analizator, o'shandan beri yangilanmagan. Bajariladigan fayllarni paketlovchilari va kompilyatorlarini evristik tarzda aniqlaydi, PE sarlavhasi, bo'limi, import va eksport jadvallaridan asosiy ma'lumotlarni ko'rsatadi. Analizatorga qo'shimcha ravishda u bir nechta foydali vositalarni o'z ichiga oladi, masalan, faylga bo'sh qism qo'shish yoki import qilish uchun yangi funktsiyalar, RVA to Ofset kalkulyatori, faylning sanasi va vaqtini o'zgartirish, OEPni qayta yo'naltirish, jarayon menejeri, va boshqalar. Plaginlarni va ko'p tilli interfeysni qo'llab-quvvatlaydi. Bu nafaqat yig'ish, balki amaliy foydalanish uchun ham foydalidir.

SCANIT 1.85


SCANiT- tPORT kraker jamoasidan fayl analizatori. Funktsionallik kichik, u PE Tools imzolari yordamida faylni skanerlaydi, ba'zi tushunarsiz formatdagi plaginlarni qo'llab-quvvatlaydi.

PE Pirate 0.51


PE Pirate kosfizdan - PE fayllarini to'plashi mumkin bo'lgan himoyachilar, kompilyatorlar, paketlar detektori. Assemblerda yozilgan, kataloglarni skanerlashi, fayl entropiyasini o'qishi mumkin. 95-99% zarba aniqligiga qaramay, ko'pincha xato qiladi.

GAPE 1.01

gAPE- TLG kraker guruhidan analizator. PE Tools imzolarini va PEiD plaginlarini qo'llab-quvvatlaydi. Asboblardan faylda ishlaydigan entropiya kalkulyatori va egri siljish kalkulyatori mavjud. To'plash uchun foydali.

PeStudio 7.95


Men dastur haqida yozmoqchiman PeStudio, lekin hamma qo'llar yetib bormadi. Dastur saytidan tashqarida ==> BU YERga ko'chirildi<== версии там последнее время идут одна за одной, просто обновлять не успеваю - уже 7.95 натикало. Было немного времени, глянул у проги ресурсы на предмет локализации. В самом исполняемом файле можно разве что менюшку перекинуть, да и то смысла почти нет - на русском всего несколько слов появится (значит кириллицу до сих пор поддерживает), а вот все остальное у ней походу большей частью в файле PeStudioIndicators.xml yolg'on, va men rus ularni o'zgartirish uchun harakat qachon, men, odatda, barcha qadriyatlar, masalan, darhol hatto kryakozyabry holda g'oyib bo'ldi. Albatta, siz hali ham aqlliroq bo'lishingiz mumkin - kodlashni mashhur utf-8-dan qattiq Windows-1251-ga o'zgartirish va hujjatni unicode-dan ANSI-ga qayta saqlash (siz oddiy Windows bloknotidan foydalanishingiz mumkin), lekin afsuski, bunga vaqt yo'q. tajribalar va ulardan unchalik ma'nosi yo'q - versiyalar endi birma-bir sakrab chiqmoqda. Muxtasar qilib aytganda, qiziqqan har bir kishi sinab ko'rishi mumkin, ammo ingliz tili menga bu dasturda ham aralashmaydi - va shuning uchun hamma narsa ko'rinadiganga o'xshaydi.

InspectExe


InspectExe bo'limlarni, import jadvalini, resurslarni, manifest va boshqa ma'lumotlarni ko'rish uchun bajariladigan fayllarning xususiyatlar oynasiga qo'shimcha yorliqlarni qo'shadi.

DNiD 1.0

DNiD- PEiD ga o'xshash dastur, lekin .NET ilovalariga qaratilgan. .NET dasturlarining kompilyatorlari, himoyachilari, paketlari va obfuscatorlarining o'nlab turli versiyalarini aniqlash imkonini beradi.

A-ray skaneri 2.0.2.2


A-ray skaneri, loyiha uzoq vaqtdan beri yangilanmagan, eng so'nggi versiyasi 2005 yildan 2.0.2.2. Dastur faqat CD/DVD disklarini skanerlash uchun mo'ljallangan va bir necha o'nlab disklardan nusxa ko'chirish himoyasini belgilaydi. Shuningdek, bajariladigan fayllar uchun ba'zi paketlar va himoyachilarni belgilaydi.

ClonyXXL 2.0.1.5

Clony XXL- CD himoyasi turini aniqlaydigan yordamchi dastur. Oldingi dastur kabi, u uzoq vaqt davomida yangilanmagan, eng so'nggi versiyasi 2003 yildan boshlab 2.0.1.5. Himoyalarni belgilaydi: SafeDisc, SecuROM, Discguard, LaserLok, Psx/Lybcrypt, Cactus Data Shield (Audio CD), Lock Blocks, CD Check, ProtectetCD-VOB, CD-Extra va diskdagi axborotni nostandart joylashtirishga asoslangan himoya. Odatiy bo'lib, interfeys nemis tilida, lekin sozlamalarda u ingliz tiliga o'tadi.

PE fayli xulosasi

PE fayllari uchta fayl turi(lar)i bilan bog'langan va ulardan foydalanib ko'rish mumkin Microsoft Windows rivojlangan Microsoft korporatsiyasi. Umuman olganda, bu format uchta mavjud dastur(lar) bilan bog'langan. Ular odatda formatga ega Portativ bajariladigan fayl. Ushbu fayllar tasniflanadi Bajariladigan fayllar, Plagin fayllari va ma'lumotlar fayllari. Ko'pgina fayllar Bajariladigan fayllar.

PE fayl kengaytmasini Windows yordamida ko'rish mumkin. Ular asosan ish stollarida va ba'zi mobil platformalarda qo'llab-quvvatlanadi. PE fayllarining mashhurlik reytingi "Past", ya'ni bu fayllar kamdan-kam uchraydi.

Agar siz PE fayllari va ularni ochadigan dasturiy ta'minot haqida ko'proq bilmoqchi bo'lsangiz, quyidagi qo'shimcha ma'lumotlarni ko'ring. Shu bilan bir qatorda, siz PE fayllarini ochish bilan bog'liq muammolar uchun oddiy muammolarni qanday hal qilishni ham o'rganishingiz mumkin.

Fayl turlarining mashhurligi
Fayl darajasi

Faoliyat

Ushbu fayl turi hali ham dolzarb bo'lib, ishlab chiquvchilar va amaliy dasturlar tomonidan faol foydalaniladi. Garchi ushbu fayl turining asl dasturiy ta'minoti yangiroq versiya (masalan, Excel 97 va Office 365) tomonidan qoplanishi mumkin bo'lsa-da, bu fayl turi hali ham dasturiy ta'minotning joriy versiyasi tomonidan faol qo'llab-quvvatlanadi. Eski operatsion tizim yoki dasturiy ta'minotning eskirgan versiyasi bilan o'zaro ta'sir qilish jarayoni " orqaga qarab muvofiqlik».

Fayl holati
Sahifa oxirgi yangilangan


PE fayl turlari

PE Master fayl assotsiatsiyasi

Barcha Microsoft 32-bitli operatsion tizimlar uchun portativ bo'lgan bajariladigan dastur Windows NT, Windows 95 va Win32s ning istalgan versiyalarida bajarilishi mumkin.


Boshqa PE fayllari assotsiatsiyasi

Privacy Eraser bilan bog'langan plagin, Internet va kompyuter faoliyatining barcha izlarini tozalash orqali Internet maxfiyligini himoya qiluvchi Internet Eraser.

Ma'lumotlar fayli matn formatida saqlanadi, analitik grafiklar tomonidan ishlab chiqilgan fizik dvigatel geometriyasiga asoslangan tizim asboblari to'plami (STK) uchun sayyoraviy efemer ma'lumotlarini saqlaydi.


Universal File Viewer dasturini sinab ko'ring

Yuqorida sanab o'tilgan mahsulotlarga qo'shimcha ravishda FileViewPro kabi universal fayl ko'rish dasturini sinab ko'rishingizni tavsiya qilamiz. Ushbu vosita 200 dan ortiq turli xil fayllarni ochib, ularning ko'pchiligini tahrirlash funksiyasini ta'minlaydi.

Litsenziya | | Shartlar |


PE fayllarini ochishda muammolarni bartaraf etish

PE fayllarini ochishda umumiy muammolar

Microsoft Windows o'rnatilmagan

PE faylini ikki marta bosish orqali siz tizim dialog oynasini ko'rishingiz mumkin "Bunday turdagi faylni ochib bo'lmadi". Bunday holda, bu, odatda, bunga bog'liq Kompyuteringizda %%os%% uchun Microsoft Windows oʻrnatilmagan. Sizning operatsion tizimingiz ushbu fayl bilan nima qilishni bilmagani uchun uni ikki marta bosish orqali uni ocholmaysiz.


Maslahat: Agar siz PE faylini ochadigan boshqa dasturni bilsangiz, mumkin bo'lgan dasturlar ro'yxatidan ushbu ilovani tanlab, berilgan faylni ochishga urinib ko'rishingiz mumkin.

Microsoft Windows-ning noto'g'ri versiyasi o'rnatilgan

Ba'zi hollarda sizda Portativ bajariladigan faylning yangiroq (yoki eskiroq) versiyasi bo'lishi mumkin. ilovaning o'rnatilgan versiyasi tomonidan qo'llab-quvvatlanmaydi. Agar Microsoft Windows dasturiy ta'minotining to'g'ri versiyasi (yoki yuqorida sanab o'tilgan boshqa dasturlardan biri) mavjud bo'lmasa, dasturiy ta'minotning boshqa versiyasini yoki yuqorida sanab o'tilgan boshqa dasturiy ta'minot dasturlaridan birini yuklab olishingiz kerak bo'lishi mumkin. Ushbu muammo ko'pincha ishlayotganda paydo bo'ladi amaliy dasturiy ta'minotning eski versiyasi Bilan yangi versiyada yaratilgan fayl, buni eski versiya taniy olmaydi.


Maslahat: Ba'zan faylni o'ng tugmasini bosib, "Xususiyatlar" (Windows) yoki "Ma'lumot olish" (Mac OSX) ni tanlash orqali PE faylining versiyasi haqida umumiy tasavvurga ega bo'lishingiz mumkin.


Xulosa: Qanday bo'lmasin, PE fayllarini ochishda yuzaga keladigan muammolarning aksariyati kompyuteringizda o'rnatilgan to'g'ri dastur dasturining yo'qligi bilan bog'liq.

Ixtiyoriy mahsulotlarni o'rnating - FileViewPro (Solvusoft) | Litsenziya | Maxfiylik siyosati | Shartlar |


PE fayllarini ochish bilan bog'liq muammolarning boshqa sabablari

Kompyuteringizda Microsoft Windows yoki boshqa PE bilan bog'liq dasturiy ta'minot o'rnatilgan bo'lsa ham, Portativ bajariladigan fayllarni ochishda muammolarga duch kelishingiz mumkin. Agar siz hali ham PE fayllarini ochishda muammolarga duch kelsangiz, sabab bilan bog'liq bo'lishi mumkin ushbu fayllarni ochishga to'sqinlik qiladigan boshqa muammolar. Bunday muammolar o'z ichiga oladi (ko'pdan eng kam tarqalganiga qarab sanab o'tilgan):

  • PE fayllariga havolalar noto'g'ri Windows reestrida (Windows operatsion tizimining "telefon kitobi")
  • Ta'rifni tasodifan o'chirish Windows ro'yxatga olish kitobidagi PE fayli
  • Tugallanmagan yoki noto'g'ri o'rnatish PE formati bilan bog'liq amaliy dasturiy ta'minot
  • Fayl buzilishi PE (portativ bajariladigan faylning o'zi bilan bog'liq muammolar)
  • PE infektsiyasi zararli dastur
  • Buzilgan yoki eskirgan qurilma drayverlari PE fayli bilan bog'langan apparat
  • Kompyuterda etarli tizim resurslarining etishmasligi Portativ bajariladigan fayl formatini ochish uchun

So'rov: Siz tanimaydigan fayl kengaytmasiga qanchalik tez-tez duch kelasiz?


Eng yaxshi mobil qurilmalar brendlari

Samsung (28.86%)
olma (21.83%)
Huawei (9.25%)
Xiaomi (6.74%)
LG (3.11%)

Kunning voqeasi

Fotosuratchilarning tanlash uchun fayl formatlarining uzoq ro'yxati bor, lekin ular RAW fotosuratlariga katta hajmdagi tasvir ma'lumotlarini qo'shishni xohlashsa, asosiy tanlovdir.



PE fayllarini ochish bilan bog'liq muammolarni qanday hal qilish mumkin

Agar kompyuteringizda bo'lsa antivirus dasturi mumkin kompyuterdagi barcha fayllarni, shuningdek, har bir faylni alohida skanerlang. Faylni sichqonchaning o'ng tugmasi bilan bosish va faylni viruslarga tekshirish uchun mos variantni tanlash orqali istalgan faylni skanerlashingiz mumkin.

Masalan, ushbu rasmda my-file.pe fayli, keyin siz ushbu faylni o'ng tugmasini bosishingiz kerak va fayl menyusida variantni tanlang "AVG bilan skanerlash". Ushbu opsiyani tanlash AVG Antivirus dasturini ochadi va faylni viruslarga tekshiradi.


Ba'zan xato sabab bo'lishi mumkin dasturiy ta'minotni noto'g'ri o'rnatish, bu o'rnatish jarayonida yuzaga kelgan muammo tufayli bo'lishi mumkin. Bu operatsion tizimingizga xalaqit berishi mumkin PE faylingizni to'g'ri dastur ilovasi bilan bog'lang, deb atalmish ta'sir "fayl kengaytmalari assotsiatsiyasi".

Ba'zan oddiy Microsoft Windows-ni qayta o'rnatish PEni Microsoft Windows bilan to'g'ri bog'lash orqali muammoingizni hal qilishi mumkin. Boshqa hollarda, fayl assotsiatsiyasi bilan bog'liq muammolar kelib chiqishi mumkin yomon dasturiy ta'minot dasturlash dasturchi va qo'shimcha yordam uchun dasturchiga murojaat qilishingiz kerak bo'lishi mumkin.


Maslahat: Eng so'nggi tuzatishlar va yangilanishlar mavjudligiga ishonch hosil qilish uchun Microsoft Windows-ni eng so'nggi versiyasiga yangilab ko'ring.


Bu juda aniq ko'rinishi mumkin, lekin tez-tez PE faylining o'zi muammoga sabab bo'lishi mumkin. Agar siz faylni elektron pochta ilovasi orqali olgan bo'lsangiz yoki uni veb-saytdan yuklab olgan bo'lsangiz va yuklab olish jarayoni to'xtatilgan bo'lsa (masalan, elektr uzilishi yoki boshqa sabablarga ko'ra), fayl buzilgan bo'lishi mumkin. Iloji bo'lsa, PE faylining yangi nusxasini olishga harakat qiling va uni qayta ochishga harakat qiling.


Ehtiyotkorlik bilan: Buzilgan fayl kompyuteringizdagi oldingi yoki mavjud zararli dasturlarga garov zarar etkazishi mumkin, shuning uchun kompyuteringizni yangilangan antivirus bilan yangilab turish muhimdir.


Agar sizning PE faylingiz kompyuteringizdagi apparat bilan bog'liq faylni ochish uchun kerak bo'lishi mumkin qurilma drayverlarini yangilash ushbu uskuna bilan bog'liq.

Bu muammo odatda media fayl turlari bilan bog'liq, bu kompyuter ichidagi apparatning muvaffaqiyatli ochilishiga bog'liq, masalan, ovoz kartasi yoki video karta. Misol uchun, agar siz audio faylni ochmoqchi bo'lsangiz, lekin uni ocholmasangiz, kerak bo'lishi mumkin ovoz kartasi drayverlarini yangilash.


Maslahat: Agar siz PE faylini ochmoqchi bo'lsangiz, olasiz .SYS fayli bilan bog'liq xato xabari, muammo bo'lishi mumkin buzilgan yoki eskirgan qurilma drayverlari bilan bog'liq bu yangilanishi kerak. Bu jarayonni DriverDoc kabi drayverlarni yangilash dasturlari yordamida osonlashtirish mumkin.


Agar qadamlar muammoni hal qilmasa va siz hali ham PE fayllarini ochishda muammolarga duch kelyapsiz, buning sababi bo'lishi mumkin mavjud tizim resurslarining etishmasligi. PE fayllarining ba'zi versiyalari kompyuteringizda to'g'ri ochilishi uchun katta hajmdagi resurslarni (masalan, xotira/RAM, ishlov berish quvvati) talab qilishi mumkin. Agar siz bir vaqtning o'zida juda eski kompyuter uskunasi va ancha yangi operatsion tizimdan foydalansangiz, bu muammo juda keng tarqalgan.

Bu muammo kompyuter vazifani bajarishda qiynalayotganda yuzaga kelishi mumkin, chunki operatsion tizim (va fonda ishlaydigan boshqa xizmatlar) PE faylini ochish uchun juda ko'p resurslarni sarflang. Portativ bajariladigan faylni ochishdan oldin kompyuteringizdagi barcha ilovalarni yoping. Kompyuteringizdagi barcha mavjud resurslarni bo'shatish orqali siz PE faylini ochish uchun eng yaxshi sharoitlarni ta'minlaysiz.


Agar Siz yuqoridagi barcha amallarni bajardi va PE faylingiz hali ham ochilmaydi, ishga tushirishingiz kerak bo'lishi mumkin apparatni yangilash. Aksariyat hollarda, hatto eski apparat versiyalarida ham ishlov berish quvvati ko‘pchilik foydalanuvchi ilovalari uchun yetarli bo‘lishi mumkin (agar siz 3D renderlash, moliyaviy/ilmiy modellashtirish yoki intensiv media ishi kabi ko‘p protsessor talab qiladigan ishlarni qilmasangiz) . Shunday qilib, ehtimol kompyuteringizda xotira yetarli emas(odatda "RAM" yoki RAM deb ataladi) faylni ochish vazifasini bajarish uchun.

Xotirangizni yangilashga harakat qiling PE faylini ochishga yordam beradimi yoki yo'qligini bilish uchun. Bugungi kunda xotirani yangilash ancha arzon va o'rnatish juda oson, hatto oddiy kompyuter foydalanuvchisi uchun ham. Bonus sifatida siz ehtimol siz yaxshi ishlashni ko'rasiz kompyuteringiz boshqa vazifalarni bajarayotganda.


Ixtiyoriy mahsulotlarni o'rnating - FileViewPro (Solvusoft) | Litsenziya | Maxfiylik siyosati | Shartlar |


Typedef struct _IMAGE_FILE_HEADER (WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD xarakteristikalari; ) IMAGE_FILE_HEADER_HEADER; *IMAGE_FILE_HEADER_P,
Men bu maydonlarni faqat quruq tasvirlab beraman, chunki. ismlar intuitiv va VA, RVA, RAW va biz faqat eski qaroqchilardan eshitgan boshqa qo'rqinchli qiziqarli narsalarni emas, balki to'g'ridan-to'g'ri ma'nolarni ifodalaydi. Garchi biz allaqachon RAW-ga duch kelgan bo'lsak-da, bu faqat fayl boshiga nisbatan ofsetlar (ular ham xom ko'rsatkichlar yoki fayl ofset deb ataladi). Ya'ni, agar bizda RAW manzili bo'lsa, bu biz faylning boshidan RAW pozitsiyalariga o'tishimiz kerakligini anglatadi ( ptrFile+ RAW). Shundan so'ng siz qiymatlarni o'qishni boshlashingiz mumkin. Bu turning asosiy misoli e_lfnew- bu haqda biz yuqorida Dos sarlavhasida yoritdik.

*mashina: WORD - bu dastur ishlashi mumkin bo'lgan protsessor arxitekturasini bildiruvchi raqam (2 bayt).
Bo'limlar soni: DWORD - fayldagi bo'limlar soni. Bo'limlar (bundan buyon matnda bo'limlar jadvali deb yuritiladi) sarlavhadan (PE-Header) keyin darhol keladi. Hujjatlarda aytilishicha, bo'limlar soni 96 ta bilan cheklangan.
Vaqt sanasi tamg'asi: WORD - fayl yaratilgan sana va vaqtni o'z ichiga olgan raqam.
PointerToSymbolTable: DWORD belgilar jadvaliga ofset (RAW) va SizeOfOptionalHeader bu jadvalning o'lchamidir. Ushbu jadval disk raskadrovka ma'lumotlarini saqlash uchun mo'ljallangan, ammo xizmatning boshidanoq otryad qiruvchining yo'qolganini payqamadi. Ko'pincha bu maydon nol bilan tozalanadi.
SizeOfOptionHeader: WORD - ixtiyoriy sarlavhaning o'lchami (joriy sarlavhadan keyin) Hujjatlarda aytilishicha, ob'ekt fayli uchun u 0 ga o'rnatilgan ...
*Xususiyatlari: WORD - fayl xarakteristikalari.

* - qiymatlar oralig'i bilan belgilanadigan maydonlar. Mumkin bo'lgan qiymatlar jadvallari ofisdagi strukturaning tavsifida keltirilgan. sayt va bu erda berilmaydi, chunki. ular formatni tushunish uchun alohida ahamiyatga ega bo'lgan narsalarni olib yurmaydilar.

Keling, bu orolni tark etaylik! Biz davom etishimiz kerak. Belgilangan joy ixtiyoriy-sarlavha deb nomlangan mamlakatdir.

“Xarita qayerda, Billi? Menga xarita kerak."
(Xazina oroli)

Ixtiyoriy sarlavha (IMAGE_OPTIONAL_HEADER)

Ushbu materik unvonining nomi unchalik muvaffaqiyatli emas. Bu sarlavha majburiy va 2 ta PE32 va PE32+ formatiga ega (mos ravishda IMAGE_OPTIONAL_HEADER32 va IMAGE_OPTIONAL_HEADER64). Format maydonda saqlanadi Sehrli: WORD. Sarlavha faylni yuklab olish uchun kerakli ma'lumotlarni o'z ichiga oladi. Doimgidek :

IMAGE_OPTIONAL_HEADER

typedef struct _IMAGE_OPTIONAL_HEADER (WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfUninitializedData; DWORD AddressOfUninitializedMa'lumotlar; DWORD AddressOfUnitializedData; DWORDOfEntryPointPoint;DWORDOFDBaf; se;DWORD SectionAlignment;DWORD FileAlignment;WORD MajorOperatingSystemVersion;WORD MinorOperatingSystemVersion;WORD MajorImageVersion;WORD MinorImageVersion; WORD Major SubsistemVersion; WORD Minor SubsistemVersion; DWORD Win32VersionValue; DWORD SizeOfImage; DWORD SizeOfHeaders; DWORD Tekshirish yig'indisi; WORD quyi tizimi; WORD DllXarakteristikalari; DWORDDllXarakteristikalari; DWORDRecommittackSizeservf;DWORDResizeOf HeapReserve; DWORD SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory; ) IMAGE_OPTIONAL_HEADE R , *PIMAGE_OPTIONAL_HEADER;


* Har doimgidek, biz faqat yuklash g'oyasiga va faylni oldinga siljitishga eng ko'p ta'sir qiladigan asosiy maydonlarni qamrab olamiz. Keling, ushbu tuzilmaning maydonlarida VA (Virtual manzil) va RVA (nisbiy virtual manzil) manzillari bo'lgan qiymatlar mavjudligiga rozi bo'laylik. Bular allaqachon RAW-ga o'xshamaydigan manzillar va ular o'qish imkoniyatiga ega bo'lishi kerak (aniqrog'i, hisoblash). Biz buni qanday qilishni albatta o'rganamiz, lekin faqat boshlash uchun biz chalkashib ketmaslik uchun bir-biriga ergashadigan tuzilmalarni tahlil qilamiz. Hozircha esda tuting - bu hisob-kitoblardan so'ng faylning ma'lum bir joyini ko'rsatadigan manzillar. Shuningdek, yangi kontseptsiya - hizalama paydo bo'ladi. Biz buni RVA manzillari bilan birga ko'rib chiqamiz, chunki bular juda chambarchas bog'liq.

AddressOfEntryPoint: DWORD - RVA kirish nuqtasi manzili. Manzil maydonidagi istalgan nuqtaga ishora qilishi mumkin. .exe fayllari uchun kirish nuqtasi dastur ishga tushadigan manzilga mos keladi va nolga teng bo'lishi mumkin emas!
BaseOfCode: DWORD - dastur kodining boshlanishining RVA (kod bo'limi).
BaseOfData: DWORD - dastur kodining boshidagi RVA (ma'lumotlar bo'limi).
tasvir bazasi: DWORD - afzal dastur yuklash bazasi manzili. 64 kb ga karrali bo'lishi kerak. Ko'pgina hollarda bu 0x00400000.
Bo'limni tekislash: DWORD - virtual xotiraga tushirishda bo'limning tekislash hajmi (baytlar).
FileAlignment: DWORD - fayl ichidagi bo'limni tekislash hajmi (bayt).
SizeOfImage: DWORD - barcha sarlavhalarni o'z ichiga olgan xotiradagi fayl hajmi (baytlarda). SectionAligment ning koʻpaytmasi boʻlishi kerak.
SizeOfHeaders: DWORD - FileAligmentga moslashtirilgan barcha sarlavhalar (DOS, DOS-Stub, PE, Section) hajmi.
NumberOfRvaVaOlchamlari: DWORD - kataloglar jadvalidagi kataloglar soni (jadvalning o'zidan pastda). Hozirda bu maydon har doim IMAGE_NUMBEROF_DIRECTORY_ENTRIES ramziy konstantasiga teng, bu 16 ga teng.
DataDirectory: IMAGE_DATA_DIRECTORY - ma'lumotlar katalogi. Oddiy qilib aytganda, bu massiv (16 o'lcham), uning har bir elementi 2 ta DWORD qiymatidan iborat strukturani o'z ichiga oladi.

IMAGE_DATA_DIRECTORY tuzilishi qanday ekanligini ko'rib chiqing:

Typedef struct _IMAGE_DATA_DIRECTORY ( DWORD VirtualAddress; DWORD Size; ) IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
Bizda nima bor? Bizda 16 ta elementdan iborat massiv bor, ularning har bir elementi manzili va hajmini o'z ichiga oladi (nima? qanday? nima uchun? hammasi bir daqiqada). Bu xususiyatlar aynan nima degan savol tug'iladi. Buning uchun Microsoft mos keladigan maxsus konstantalarga ega. Ularni strukturaning tavsifining eng oxirida ko'rish mumkin. Hozircha:

// Katalog yozuvlari #TASIR_DIRECTORY_ENTRY_EXPORT 0 ni aniqlang // Eksport katalogini #TASIR_DIRECTORY_KIRISH_IMPORT 1ni aniqlang // Import katalogini #IMAGE_DIRECTORY_ENTRY_RESOURCE 2-ni belgilang // Resurs katalogini #IMAGE_DIRECTORY_KIRISH_EXPORT ni aniqlang RECTORY_ENTRY_SECURITY 4 // Xavfsizlik katalogi #tasvir_DIRECTORY_ENTRY_BASERELOC 5 ni aniqlang // Bazani koʻchirish jadvali #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // disk raskadrovka katalogi // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 foydalanish) #TASIR_DIRECTORY_ENTRY_ARCHITECTURE 7-ni aniqlang. TR 8 // GP RVA #aniqlash IMAGE_DIRECTORY_ ENTRY_TLS 9 // TLS Directory #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Konfiguratsiya katalogini yuklang #IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11ni aniqlang // Sarlavhalarda bog'langan import katalogini #IMAGE_DIRECTORY_ENTRY_IAT 12ni aniqlang //IMPORT ELPORTIMAGEJadval manzili RY_D_D_def Import deskriptorlarini kechiktirish #IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime deskriptorini aniqlang
Oha! Biz massivning har bir elementi unga biriktirilgan jadval uchun javobgar ekanligini ko'ramiz. Ammo afsuski, bu qirg'oqlar biz uchun yetib bo'lmas ekan, chunki. biz VA va RVA manzillari bilan qanday ishlashni bilmaymiz. Va o'rganish uchun biz qaysi bo'limlarni o'rganishimiz kerak. Aynan ular o'zlarining tuzilishi va ishi haqida gapiradilar, shundan so'ng VA, RVA va hizalamalar nima uchun kerakligi aniq bo'ladi. Ushbu maqolada biz faqat eksport va importga to'xtalamiz. Qolgan maydonlarning maqsadini ofisda topish mumkin. hujjatlar yoki kitoblar. Shunday qilib. Aslida maydonlar:

virtual manzil: DWORD - massiv elementi mos keladigan jadval uchun RVA.
hajmi: DWORD - baytdagi jadval hajmi.

Shunday ekan! Import, eksport, resurslar va boshqalar jadvallari kabi ekzotik qirg'oqlarga borish uchun biz bo'limlar bilan qidiruvni bajarishimiz kerak. Xo'sh, kabina bolasi, keling, umumiy xaritani ko'rib chiqamiz, hozir qayerda ekanligimizni aniqlaymiz va davom etamiz:

Va biz to'g'ridan-to'g'ri bo'limlarning keng maydonlari oldida emasmiz. Biz har qanday yo'l bilan ular nimani yashirayotganini aniqlashimiz va nihoyat boshqa turdagi murojaat bilan shug'ullanishimiz kerak. Biz haqiqiy sarguzashtni xohlaymiz! Import va eksport jadvallari kabi respublikalarga tezda borishni istaymiz. Qadimgi qaroqchilarning ta'kidlashicha, hamma ham ularga etib bora olmadi va qaytib kelganlar oltin va okean haqida muqaddas bilimga ega ayollar bilan qaytib kelishdi. Biz suzib ketdik va Bo'lim sarlavhasiga yo'l oldik.

- Siz taxtdan ajralgansiz, Kumush! Bochkadan tushing!”
(Xazina oroli)

Bo'lim sarlavhasi (IMAGE_SECTION_HEADER)


To'g'ridan-to'g'ri massivning orqasida DataDirectory bo'limlar bir-birini kuzatib boradi. Bo'lim jadvali suveren davlat bo'lib, unga bo'linadi Bo'limlar soni shaharlar. Har bir shaharning o'z hunarmandchiligi, o'z huquqlari, shuningdek, 0x28 bayt hajmi mavjud. Bo'limlar soni maydonda ko'rsatilgan Bo'limlar soni, bu fayl sarlavhasida saqlanadi. Shunday qilib, tuzilmani ko'rib chiqaylik:

Typedef struct _IMAGE_SECTION_HEADER (BYTE nomi; birlashma ( DWORD PhysicalAddress; DWORD VirtualSize; ) Har xil; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; WORDNumberSECTION_HEADER; WORDOmber Numbers;WORDOmber Numbers; s; DWORD xususiyatlari; ) IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
Ism: BYTE - bo'lim nomi. Hozirda u 8 ta belgidan iborat.
Virtual o'lcham: DWORD - virtual xotiradagi bo'lim hajmi.
SizeOfRawData: DWORD - fayldagi bo'lim hajmi.
virtual manzil: DWORD - RVA bo'limi manzili.
SizeOfRawData: DWORD - fayldagi bo'lim hajmi. Ko'p bo'lishi kerak FileAlignment.
PointerToRawData: DWORD - RAW bo'lim boshiga ofset. Bundan tashqari, ko'p bo'lishi kerak FileAlignment
Xususiyatlari: DWORD - bo'limga kirish atributlari va uni Wirthga yuklash qoidalari. xotira. Masalan, bo'lim mazmunini aniqlash uchun atribut (dastlabki ma'lumotlar, boshlang'ich bo'lmagan ma'lumotlar, kod). Yoki kirish atributlari - o'qish, yozish, bajarish. Bu butun spektr emas. Xarakteristikalar IMAGE_SCN_ bilan boshlanadigan bir xil WINNT.h konstantalari bilan o'rnatiladi. Bo'limlarning atributlari bilan batafsilroq tanishishingiz mumkin. Atributlar Kris Kasperskiyning kitoblarida ham yaxshi tasvirlangan - maqolaning oxiridagi havolalar.

Ismga kelsak, quyidagilarni eslash kerak - manbalar bo'limida har doim .rsrc nomi bo'lishi kerak. Aks holda, resurslar yuklanmaydi. Qolgan bo'limlarga kelsak, nom har qanday bo'lishi mumkin. Odatda .data, .src, va hokazo kabi ma'noli nomlar mavjud ... Lekin bu ham sodir bo'ladi:

Bo'limlar virtual xotiraga tushiriladigan maydon bo'lib, barcha ishlar bevosita ushbu ma'lumotlar bilan amalga oshiriladi. Virtual xotiradagi hech qanday ofsetsiz manzil Virtual manzil, qisqacha VA deb ataladi. Ilovani yuklab olish uchun afzal qilingan manzil, maydonda o'rnatilgan tasvir bazasi. Bu virtual xotirada dastur maydoni boshlanadigan nuqtaga o'xshaydi. Va bu nuqtaga nisbatan RVA (nisbiy virtual manzil) ofsetlari hisoblanadi. Ya'ni, VA = tasvir bazasi+ RVA; tasvir bazasi Biz har doim VA yoki RVA ni bilamiz va bizning ixtiyorimizda bo'lsak, biz bir-biri bilan ifodalashimiz mumkin.

Ular ko'nikib qolganga o'xshaydi. Lekin bu virtual xotira! Va biz jismoniy holatdamiz. Hozir biz uchun virtual xotira boshqa galaktikalarga sayohatga o'xshaydi, biz buni hozirgacha tasavvur qila olamiz. Shunday qilib, biz hozirda virtual xotiraga kira olmaymiz, lekin u erda nima bo'lishini bilib olamiz, chunki u bizning faylimizdan olingan.

tekislash


Wirthda tushirishni to'g'ri ko'rsatish uchun. xotira, hizalama kabi mexanizm bilan shug'ullanish kerak. Birinchidan, bo'limlarni xotiraga qanday almashtirish diagrammasini ko'rib chiqaylik.

Ko'rib turganingizdek, bo'lim hajmiga qarab emas, balki xotiraga tushiriladi. Bu erda hizalamalar qo'llaniladi. Bu xotiradagi bo'lim hajmining karrali bo'lishi kerak bo'lgan qiymat. Diagrammani ko'rib chiqsak, biz bo'limning o'lchami 0x28 ekanligini va u 0x50 o'lchamida tushirilganligini ko'ramiz. Bu hizalanishning kattaligi bilan bog'liq. 0x28 0x50 ga "etishmaydi" va natijada bo'lim bo'shatiladi va 0x50-0x28 hajmidagi qolgan bo'sh joy bekor qilinadi. Va agar bo'lim o'lchami tekislash hajmidan kattaroq bo'lsa, unda nima bo'ladi? Masalan bo'lim o'lchami= 0x78, va bo'limni tekislash= 0x50, ya'ni. o'zgarishsiz qoldi. Bunday holda, bo'lim xotirada 0xA0 (0xA0 = 0x28 * 0x04) baytni egallaydi. Ya'ni, ko'p bo'lgan qiymat bo'limni tekislash va butunlay qoplaydi bo'lim o'lchami. Shuni ta'kidlash kerakki, fayldagi bo'limlar bir xil tarzda, faqat hajmi bo'yicha tekislanadi FileAlignment. Kerakli bazani olganimizdan so'ng, biz RVA-dan RAW-ga qanday o'zgartirishni aniqlay olamiz.

"Bu erda sizda tekislik yo'q, bu erda iqlim boshqacha."
(V.S. Vysotskiy)

Arifmetikadan kichik dars


Amalga oshirish boshlanishidan oldin dasturning bir qismi protsessorning manzil maydoniga yuborilishi kerak. Manzil maydoni protsessor tomonidan jismoniy manzillangan operativ xotira miqdoridir. Dastur yuklanmagan manzil maydonidagi "parcha" virtual tasvir deb ataladi. Rasm asosiy yuk manzili (Image base) va hajmi (Rasm o'lchami) bilan tavsiflanadi. Shunday qilib, VA (Virtual manzil) virtual xotiraning boshiga nisbatan manzil, RVA (nisbiy virtual manzil) esa dastur tushirilgan joyga nisbatan. Ilovaning asosiy yuklab olish manzilini qanday aniqlash mumkin? Buning uchun ixtiyoriy sarlavhada alohida maydon mavjud tasvir bazasi. Bu xotiramni yangilash uchun biroz muqaddima edi. Endi turli xil manzillarning sxematik tasvirini ko'rib chiqing:

Xo'sh, qanday qilib fayldan ma'lumotni virtual xotiraga tushirmasdan o'qish mumkin? Buning uchun siz manzillarni RAW formatiga o'tkazishingiz kerak. Keyin faylning ichiga kerakli maydonga kirib, kerakli ma'lumotlarni o'qishimiz mumkin. RVA fayldan olingan virtual xotira manzili bo'lgani uchun biz jarayonni teskari o'zgartirishimiz mumkin. Buning uchun bizga to'qqizdan o'n oltigacha oddiy arifmetik kalit kerak. Mana bir necha formulalar:

VA = ImageBase + RVA; RAW = RVA - bo'limRVA + rawSection; // rawSection - fayl boshidan bo'limga ofset // bo'limRVA - bo'lim RVA (bu maydon bo'lim ichida saqlanadi)
Ko'rib turganingizdek, RAWni hisoblash uchun biz RVA tegishli bo'limni aniqlashimiz kerak. Buning uchun siz barcha bo'limlardan o'tishingiz va quyidagi shartni tekshirishingiz kerak:

RVA >= bo'limVitualAddress && RVA< ALIGN_UP(sectionVirtualSize, sectionAligment) // sectionAligment - выравнивание для секции. Значение можно узнать в Optional-header. // sectionVitualAddress - RVA секции - хранится непосредственно в секции // ALIGN_UP() - функция, определяющая сколько занимает секция в памяти, учитывая выравнивание
Barcha jumboqlarni birlashtirib, biz quyidagi ro'yxatni olamiz:

Typedef uint32_t DWORD; typedef uint16_t WORD; typedef uint8_t BYTE; #DEFINE ALIGN_DOWN(x, align) (x & ~(align-1)) #define ALIGN_UP(x, align) ((x & (align-1))?ALIGN_DOWN(x,align)+align:x) // IMAGE_SECTION_HEADER bo'limlari; // init massiv bo'limlari int defSection(DWORD rva) ( uchun (int i = 0; i)< numberOfSection; ++i) { DWORD start = sections[i].VirtualAddress; DWORD end = start + ALIGN_UP(sections[i].VirtualSize, sectionAligment); if(rva >= start && rva< end) return i; } return -1; } DWORD rvaToOff(DWORD rva) { int indexSection = defSection(rva); if(indexSection != -1) return rva - sections.VirtualAddress + sections.PointerToRawData; else return 0; }
*Men kodga tip deklaratsiyasi va massivni ishga tushirishni kiritmadim, faqat manzillarni hisoblashda yordam beradigan funksiyalarni taqdim etdim. Ko'rib turganingizdek, kod juda murakkab emas. Bu biroz chalkashlikmi. U o'tib ketadi... agar siz demontajchi orqali .exe bilan ishlashga biroz ko'proq vaqt sarflasangiz.

HAYIR! Tushundim. Endi biz resurslarning chekkasiga borishimiz, kutubxonalarni import qilish va eksport qilishimiz mumkin, va umuman, yuragimiz xohlagan joyda. Biz yangi turdagi manzillar bilan ishlashni o'rgandik. Keling, yo'lga chiqaylik!

- Yomon emas, yomon emas! Shunday bo‘lsa-da, bugungi kunlik ratsionlarini olishdi!”
(Xazina oroli)

eksport jadvali


Massivning eng birinchi elementida DataDirectory RVA eksport jadvalida saqlanadi, u IMAGE_EXPORT_DIRECTORY tuzilmasi bilan ifodalanadi. Bu jadval dinamik kutubxona (.dll) fayllari uchun xosdir. Jadvalning asosiy maqsadi eksport qilingan funktsiyalarni ularning RVA bilan bog'lashdir. Tavsifda keltirilgan spetsifikatsiyalar:

Typedef struct _IMAGE_EXPORT_DIRECTORY ( DWORD xususiyatlari; DWORD vaqt sanasi tamg'asi; WORD MajorVersion; WORD kichik versiyasi; DWORD nomi; DWORD bazasi; DWORD NumberOfFunctions; DWORD raqami ) IMAGE_EXPORT_DIREC TORY,*PIMAGE_EXPORT_DIRECTORY;
Ushbu struktura uchta turli jadvalga uchta ko'rsatgichni o'z ichiga oladi. Bu nomlar (funktsiyalar) jadvali ( AddressOfNames), tartiblar ( AddressOfNamesOrdinals), manzillar( AddressOfFunctions). Nom maydoni dinamik kutubxona nomining RVA ni saqlaydi. Tartib nomlar jadvali va manzillar jadvali orasidagi vositachiga o'xshaydi va indekslar massividir (indeks hajmi 2 bayt). Aniqroq bo'lish uchun diagrammani ko'rib chiqing:

Bir misolni ko'rib chiqing. Aytaylik, nomlar massivining i-elementi funksiya nomini bildiradi. Keyin bu funksiyaning manzilini manzillar massividagi i-elementga murojaat qilib olish mumkin. Bular. men tartibliman.

Diqqat! Agar siz, masalan, tartib jadvalidagi 2-elementni olgan bo'lsangiz, bu 2 degani emas - bu nomlar va manzillar jadvallari uchun tartib. Indeks tartib massivning ikkinchi elementida saqlanadigan qiymatdir.

Nomlar jadvalidagi qiymatlar soni ( NumberOfNames) va tartiblar teng va har doim ham manzillar jadvalidagi elementlar soniga mos kelmaydi ( NumberOfFunctions).

“Ular men uchun kelishdi. E'tiboringiz uchun rahmat. Endi ular o'ldirayotgan bo'lsa kerak!
(Xazina oroli)

import jadvali


Import jadvali dinamik kutubxonalardan foydalanadigan har qanday dasturning ajralmas qismidir. Ushbu jadval dinamik kutubxona funksiyasi chaqiruvlarini mos keladigan manzillar bilan bog'lashga yordam beradi. Import uch xil rejimda amalga oshirilishi mumkin: standart, majburiy (bog'langan import) va kechiktirilgan (importni kechiktirish). Chunki import mavzusi juda ko'p qirrali va alohida maqola uchun tortadi, men faqat standart mexanizmni tasvirlayman, qolganlarini esa faqat "skelet" sifatida tasvirlayman.

Standart import- V DataDirectory import jadvali IMAGE_DIRECTORY_ENTRY_IMPORT(=1) indeksi ostida saqlanadi. Bu IMAGE_IMPORT_DESCRIPTOR tipidagi elementlar massivi. Import jadvali (massivda) funksiyalar/tartiblar nomlarini va yuklovchi ushbu funktsiyaning samarali manzilini yozishi kerak bo'lgan joyni saqlaydi. Bu mexanizm juda samarali emas, chunki Ochig'ini aytganda, bularning barchasi har bir zarur funktsiya uchun butun eksport jadvalini takrorlash bilan bog'liq.

Majburiy import- ushbu ish sxemasi bilan TimeDateStamp va ForwardChain maydonlariga (standart import jadvalining birinchi elementida) -1 kiritiladi va havola haqidagi ma'lumotlar hujayrada saqlanadi. DataDirectory IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT indeksi bilan(=11). Ya'ni, bu yuklovchiga bog'langan importdan foydalanishi kerak bo'lgan bayroq turidir. Shuningdek, "bog'langan import zanjiri" uchun ularning tuzilmalari paydo bo'ladi. Ishning algoritmi quyidagicha - kerakli kutubxona dasturning virtual xotirasiga tushiriladi va kompilyatsiya bosqichida barcha kerakli manzillar "bog'lanadi". Kamchiliklardan shuni ta'kidlash mumkinki, DLL-ni qayta kompilyatsiya qilishda siz dasturning o'zini qayta kompilyatsiya qilishingiz kerak bo'ladi, chunki. funksiya manzillari o'zgartiriladi.

Importni kechiktirish- bu usul bilan, .dll fayli bajariladigan faylga biriktirilgan deb taxmin qilinadi, lekin u darhol xotiraga tushirilmaydi (oldingi ikkita usulda bo'lgani kabi), faqat dastur belgiga birinchi marta kirganda ( dinamik kutubxonalardan yuklanmagan elementlar deb ataladigan). Ya'ni, dastur xotirada bajariladi va jarayon dinamik kutubxonadan funktsiya chaqiruviga etib borishi bilanoq, dll-ni yuklaydigan va uning funktsiyalarining samarali manzillarini tarqatadigan maxsus ishlov beruvchi chaqiriladi. Dangasa importlar uchun yuklovchi DataDirectory (15-modda) ga murojaat qiladi.

Import usullarini biroz yoritib bo'lgach, to'g'ridan-to'g'ri import jadvaliga o'tamiz.

"Bu dengizchi! Uning kiyimlari dengiz edi. - Nahotki? Bu yerdan episkop topishni o'ylaganmidingiz?
(Treasure Island - Jon Silver)

Import deskriptori (IMAGE_IMPORT_DESCRIPTOR)


Import jadvalining koordinatalarini bilish uchun biz massivga murojaat qilishimiz kerak DataDirectory. Ya'ni, IMAGE_DIRECTORY_ENTRY_IMPORT elementiga (=1). Va jadvalning RVA manzilini o'qing. Bu erda bajarilishi kerak bo'lgan yo'lning umumiy sxemasi:

Keyin biz RVA dan yuqorida keltirilgan formulalarga muvofiq RAWni olamiz va keyin fayl bo'ylab "qadam" olamiz. Biz hozir IMAGE_IMPORT_DESCRIPTOR deb nomlangan tuzilmalar majmuasi oldida turibmiz. Massiv oxirining belgisi "null" strukturadir.

Typedef struct _IMAGE_IMPORT_DESCRIPTOR (birlashma ( DWORD xususiyatlari; DWORD OriginalFirstThunk; ) DUMMYUNIONNAME; DWORD TimeDateStamp; DWORD ForwarderChain; DWORD nomi; DWORD FirstThunk; ) IMAGE_PRISTORIMPORT_IMPORT_IMPORT_IMPORT
Men msdn da tuzilma tavsifiga havolani ololmadim, lekin uni WINNT.h faylida ko'rishingiz mumkin. Keling, buni aniqlashni boshlaylik.

Original Birinchi Thunk: DWORD - import nomlari jadvalining RVA (INT).
Vaqt sanasi tamg'asi: DWORD - sana va vaqt.
ForwarderChain: DWORD - birinchi yuborilgan belgi indeksi.
Ism: DWORD - kutubxona nomi bilan RVA qatori.
Birinchi Rahmat: DWORD - Import manzillar jadvalining RVA (IAT).

Bu erda hamma narsa eksportga biroz o'xshaydi. Shuningdek, ismlar jadvali (INT) va undagi latta manzillar (IAT). RVA kutubxonasi deb ham ataladi. Faqat bu yerda INT va IAT IMAGE_THUNK_DATA tuzilmalari qatoriga ishora qiladi. U ikkita shaklda taqdim etilgan - 64-chi va 32-chi tizimlar uchun va faqat maydonlarning o'lchamida farqlanadi. Misol sifatida x86 ni ko'rib chiqing:

Typedef struct _IMAGE_THUNK_DATA32 ( birlashma ( DWORD ForwarderString; DWORD funktsiyasi; DWORD Ordinal; DWORD AddressOfData; ) u1; ) IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
Keyingi harakatlar strukturaning yuqori qismiga bog'liqligiga javob berish muhimdir. Agar u o'rnatilgan bo'lsa, qolgan bitlar import qilinayotgan belgining raqamidir (raqam bo'yicha import). Aks holda (yuqori bit tozalanadi), qolgan bitlar import qilingan belgining RVA ni belgilaydi (nomi bo'yicha import). Agar bizda nom bo'yicha import bo'lsa, u holda ko'rsatgich manzilni quyidagi tuzilishga saqlaydi:

Typedef struct _IMAGE_IMPORT_BY_NAME (WORD maslahat; BYTE nomi; ) IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
Bu yerga Maslahat funksiya raqami, va Ism- Ism.

Hammasi nima uchun? Bu barcha massivlar, tuzilmalar ... Aniqlik uchun, keling, ajoyib sxemani ko'rib chiqaylik

Portable Executable (PE) uzoq vaqtdan beri mavjud bo'lgan va hali ham Windowsning barcha versiyalarida qo'llaniladigan bajariladigan fayl formatidir. Bunga *.exe, *.dll va boshqalar formatli fayllar kiradi va bunday fayllar dastur haqidagi barcha ma'lumotlarni o'z ichiga oladi. Ammo har qanday dasturda virus bo'lishi mumkin va o'rnatishdan oldin ushbu formatdagi fayl orqasida nima saqlanganligini bilish tavsiya etiladi. Buni PE Explorer yordamida topish mumkin.

PE Explorer - bu PE fayllaridagi barcha narsalarni ko'rish va o'zgartirish uchun mo'ljallangan dastur. Ushbu dastur yaratilgan va ko'pincha viruslarni aniqlash uchun ishlatilgan, ammo uning foydali funktsiyalari bu bilan cheklanmaydi. Masalan, disk raskadrovka ma'lumotlarini olib tashlash yoki biron bir dasturni rus tiliga tarjima qilish uchun ishlatilishi mumkin.

Dastur siqilayotganda, u odatda shifrlangan bo'lib, foydalanuvchi yoki boshqa birov sahna ortida sodir bo'layotgan hamma narsani ko'ra olmaydi. Ammo PE Explorer buni to'xtatmaydi, chunki maxsus yozilgan algoritm tufayli u ushbu fayllarning shifrini ochishi va barcha mazmunini ko'rsatishi mumkin.

Sarlavhalarni ko'rish

PE faylini ochganingizdan so'ng, dastur sarlavhani ko'rish oynasini ochadi. Bu erda siz juda ko'p qiziqarli narsalarni ko'rishingiz mumkin, lekin hech narsani o'zgartirib bo'lmaydi va bu kerak emas.

Ma'lumotlar kataloglari

Ma'lumotlar kataloglari (ma'lumotlar kataloglari) har qanday bajariladigan faylning muhim qismidir, chunki aynan shu massivda tuzilmalar haqidagi ma'lumotlar saqlanadi (ularning o'lchami, boshiga ko'rsatgich va boshqalar). Fayllarning nusxalarini o'zgartirish kerak, aks holda bu qaytarib bo'lmaydigan oqibatlarga olib kelishi mumkin.

Bo'lim sarlavhalari

Barcha muhim dastur kodi PE Explorer-da kattaroq tartib uchun turli bo'limlarda saqlanadi. Ushbu bo'lim barcha ma'lumotlarni o'z ichiga olganligi sababli, ularni joylashuvini o'zgartirish orqali o'zgartirish mumkin. Agar ba'zi ma'lumotlarni o'zgartirmaslik kerak bo'lsa, dastur bu haqda sizni xabardor qiladi.

Resurs muharriri

Ma'lumki, resurslar dasturning ajralmas qismidir (piktogrammalar, shakllar, yozuvlar). Ammo PE Explorer yordamida ularni o'zgartirish mumkin. Shunday qilib, siz dastur belgisini almashtirishingiz yoki dasturni rus tiliga tarjima qilishingiz mumkin. Bu erda siz resurslarni kompyuteringizga saqlashingiz mumkin.

Demontajchi

Ushbu vosita bajariladigan fayllarni ekspress tahlil qilish uchun zarur, bundan tashqari, u yanada soddalashtirilgan, ammo kam funktsional formatda yaratilgan.

Import jadvali

Dasturdagi ushbu bo'lim tufayli siz tekshirilayotgan dastur kompyuteringizga zararli yoki yo'qligini bilib olishingiz mumkin. Ushbu bo'lim dasturda mavjud bo'lgan barcha funktsiyalarni o'z ichiga oladi.

Qaramlik skaneri

Viruslarga qarshi kurashda dasturning yana bir afzalligi. Bu erda siz dinamik kutubxonalar bilan bog'liqlikni ko'rishingiz mumkin, shu bilan ushbu dastur sizning kompyuteringizga tahdid soladimi yoki yo'qligini tan olasiz.

Dasturning afzalliklari

  1. Intuitiv
  2. Resurslarni o'zgartirish qobiliyati
  3. Kodni ishga tushirishdan oldin ham dasturdagi viruslar haqida ma'lumot olish imkonini beradi

Kamchiliklar

  1. Ruslashtirishning yo'qligi
  2. Pulli (bepul versiya faqat 30 kun davomida mavjud)

PE Explorer kompyuteringizni viruslardan himoya qilish imkonini beruvchi ajoyib vositadir. Albatta, uni butunlay zararsiz dasturga xavfli kod qo'shish orqali boshqa yo'nalishda ishlatish mumkin, ammo bu tavsiya etilmaydi. Bundan tashqari, resurslarni o'zgartirish imkoniyati tufayli siz reklama qo'shishingiz yoki dasturni rus tiliga tarjima qilishingiz mumkin.

SDL Passolo 2015 - bu dasturlarni dunyoning turli tillariga tarjima qilish uchun eng kuchli yordamchi dastur. Ko'p formatlarni tushunadi, til turini ajratadi. Dasturiy ta'minotni mahalliylashtirish uchun mo'ljallangan rivojlangan xususiyatlarga ega shablon resurs muharriri. SDL Passolo 2015 bir qator qulay formatlash vositalariga ega vizual dialog muharririga ega, deyarli har qanday resurs bilan ishlashni qo'llab-quvvatlaydi, juda ko'p nozik sozlash, ommaviy ishlov berish opsiyasi va o'rnatilgan imlo tekshirgichga ega. SDL Passolo 2015 tarjimonga dasturiy ta'minotni mahalliylashtirishda ko'p kuch va vaqtni tejashga yordam beradi. Buning sababi, dastur avtomatik tarjima qilish va tarjima qilingan matnni eng ko'p uchraydigan xatolar uchun tekshirish funktsiyasini ta'minlaydi. Avtomatik tarjima funktsiyasi Internetda ko'plab lug'atlar, shu jumladan Microsoft-dan olingan lug'atlar mavjud bo'lganda amalga oshiriladi. Agar siz tayyor lug'atlardan qoniqmasangiz, ularni o'zingiz yaratishingiz mumkin. Ba'zi dasturni bir marta tarjima qilish va tarjimalar ro'yxatini lug'atga eksport qilish kifoya. Va kelajakda bu lug'at dasturlarning yangi versiyalarini tarjima qilishda ulanishi mumkin. SDL Passolo 2015 tarjima qilinadigan dasturlardagi dialog oynalarini juda ilg'or vizual tuzatishga ega. Microsoft Visual Studio.Net-da forma tahrirlashdan unchalik kam emasligini aytish kifoya. Agar siz Resource Hacker yaxshi dialog sozlamalariga ega deb aytsangiz, siz Passoloni ko'rmagansiz. Passoloning afzalliklari ro'yxati bu bilan cheklanmaydi. Qo'shish. Ma'lumot: Yangi xususiyatlar: * Endi terminologiya Passolo tarjima ro'yxatidan ham taqdim etiladi. * Tarjima oldidan xizmatlar, boʻsh tarjimalarni qidirish, mos keluvchi va atamalarni endi variantlar dialogida osongina tanlash mumkin. * Loyihalar va lug'atlarda tezkor indekslar bilan tarjimalarni qidirish qidiruv jarayonini ancha tezlashtiradi. * Chiqish oynalarini o'zboshimchalik bilan ulash imkonini beruvchi yangi zamonaviy foydalanuvchi interfeysi. Chiqish oynalari uchun yangi avtomatik yashirish sozlamasi. * Klaviatura yorliqlarini asboblar panelini sozlash muloqot oynasida o'zgartirish mumkin. * Qattiq bo'lmagan tarjimalarni qidirish endi qidirilayotgan matndagi rangli matnlar bilan qat'iy bo'lmagan mosliklarning farqlarini belgilaydi. * Agar yozuv tanlangan bo'lsa, terminologiyalar manba matnning kontekst menyusidan tanlanadi va ko'rsatilgan terminologiya elementi haqida qo'shimcha ma'lumotlar paydo bo'ladi. * Fayllarni manba fayl sifatida qo'shish yoki ulardan ma'lumotlarni import qilish uchun ularni loyiha oynasiga sudrab olib tashlash mumkin. * Matndagi barcha o'zgarishlar tarixi sana va foydalanuvchi nomi bilan taqdim etiladi. Ma'lumotlarning oldingi versiyalarini Orqaga qaytarish funksiyasi yordamida tiklash mumkin. * Endi loyiha oynasidagi yozuvlarni filtrlash va guruhlash mumkin. * Loyiha oynasidagi yozuvlar qatorlar roʻyxati sifatida filtrlanishi mumkin.
Maqola yoqdimi? Do'stlar bilan baham ko'ring: