какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

4. PE-Ρ„Π°ΠΉΠ»Ρ‹: сСкции

4.1. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ сСкций

Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ (hex)Π Π°Π·ΠΌΠ΅Ρ€Π’ΠΈΠΏΠΠ°Π·Π²Π°Π½ΠΈΠ΅ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
008CHAR[8]NameНазваниС сСкции.
084DWORDMisc.VirtualSizeΠ Π°Π·ΠΌΠ΅Ρ€ сСкции Π² памяти. Если это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС SizeOfRawData, Ρ‚ΠΎ сСкция дополняСтся Π² памяти Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.
0C4DWORDVirtualAddressRVA сСкции Π² памяти.
104DWORDSizeOfRawDataΠ Π°Π·ΠΌΠ΅Ρ€ сСкции Π² Ρ„Π°ΠΉΠ»Π΅. ВсСгда ΠΊΡ€Π°Ρ‚Π΅Π½ FileAlignment ΠΈΠ· Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Если сСкция содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ это ΠΏΠΎΠ»Π΅ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
144DWORDPointerToRawDataΠ‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π½Π½Ρ‹Ρ… сСкций. ВсСгда ΠΊΡ€Π°Ρ‚Π½ΠΎ FileAlignment ΠΈΠ· Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Если сСкция содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ это ΠΏΠΎΠ»Π΅ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
184DWORDPointerToRelocationsΠ’ исполняСмых Ρ„Π°ΠΉΠ»Π°Ρ… это ΠΏΠΎΠ»Π΅ всСгда Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
1Π‘4DWORDPointerToLinenumbersΠ’ исполняСмых Ρ„Π°ΠΉΠ»Π°Ρ… это ΠΏΠΎΠ»Π΅ всСгда Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
202WORDNumberOfRelocationsΠ’ исполняСмых Ρ„Π°ΠΉΠ»Π°Ρ… это ΠΏΠΎΠ»Π΅ всСгда Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
222WORDNumberOfLinenumbersΠ’ исполняСмых Ρ„Π°ΠΉΠ»Π°Ρ… это ΠΏΠΎΠ»Π΅ всСгда Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.
244DWORDCharacteristicsАтрибуты сСкции.

ΠŸΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ поля.

НазваниС сСкции

НазваниС сСкции содСрТит ΠΎΡ‚ 0 Π΄ΠΎ 8 ASCII-символов. ВмСсто константы 8 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ IMAGE_SIZEOF_SHORT_NAME. Если Π΄Π»ΠΈΠ½Π° названия мСньшС 8 символов, Ρ‚ΠΎ ΠΎΠ½ΠΎ дополняСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Если ΠΎΠ½ΠΎ состоит Ρ€ΠΎΠ²Π½ΠΎ ΠΈΠ· 8 символов, Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π½Π΅Ρ‚. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сСкции, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ соотносится с Π΅Π΅ содСрТимым. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ компилятор ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ своС собствСнноС соглашСниС ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ сСкций, поэтому ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ сСкции ΠΏΡ€ΠΈ Π΅Π΅ Π°Π½Π°Π»ΠΈΠ·Π΅ нСльзя. ЕдинствСнно Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ способом ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТит данная сСкция, являСтся Π°Π½Π°Π»ΠΈΠ· Π΅Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ содСрТащихся Π² Π½Π΅ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Атрибуты сСкции

32-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Characteristics содСрТит Π½Π°Π±ΠΎΡ€ Ρ„Π»Π°Π³ΠΎΠ², ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… содСрТимоС Π΄Π°Π½Π½ΠΎΠΉ сСкции. Π‘Π΅ΠΊΡ†ΠΈΠΈ исполняСмого Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

ΠΠ°Π·Π²Π°Π½ΠΈΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
IMAGE_SCN_CNT_CODE0x00000020БСкция содСрТит исполняСмый ΠΊΠΎΠ΄.
IMAGE_SCN_CNT_INITIALIZED_DATA0x00000040БСкция содСрТит ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
IMAGE_SCN_CNT_UNINITIALIZED_DATA0x00000080БСкция содСрТит Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
IMAGE_SCN_MEM_DISCARDABLE0x02000000БСкция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π° ΠΈΠ· памяти послС создания процСсса.
IMAGE_SCN_MEM_NOT_CACHED0x04000000БСкция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.
IMAGE_SCN_MEM_NOT_PAGED0x08000000БСкция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ.
IMAGE_SCN_MEM_SHARED0x10000000ВсС ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ экзСмпляр этой сСкции. По-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для сСкций Π΄Π°Π½Π½Ρ‹Ρ… динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
IMAGE_SCN_MEM_EXECUTE0x20000000Π‘Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.
IMAGE_SCN_MEM_READ0x40000000Π‘Π΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.
IMAGE_SCN_MEM_WRITE0x80000000Π’ ΡΠ΅ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ.

4.2. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ сСкций

Π‘Π°ΠΌΠΈ сСкции Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ послС всСх Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. КаТдая сСкция Π²Ρ‹Ρ€Π°Π²Π½Π΅Π½Π° Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ FileAlignment ΠΈΠ· Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ содСрТимого сСкций слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это содСрТимоС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΌ. НапримСр, ΠΎΠ΄Π½Π° сСкция ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ исполняСмый ΠΊΠΎΠ΄, ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

4.3. Доступ ΠΊ сСкциям

Для получСния указатСля Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ сСкции ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ макрос, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² WINNT.H:

Π³Π΄Π΅ pHeader – ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ PE, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ GetHeader.

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ»:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ привСсти Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ любой RVA Π² смСщСниС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°. Нам ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈΡ‰Π΅Ρ‚ ΡΠ΅ΠΊΡ†ΠΈΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Π΄Π°Π½Π½Ρ‹ΠΉ RVA, Π° вторая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ RVA Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΅ΠΌΡƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ нСпустого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π΄Π°Π½Π½Ρ‹Ρ… Π΅Π³ΠΎ RVA, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Ρ‚Π°Ρ‚ΡŒΡ [0x01] Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌ Portable Executable (EXE-Ρ„Π°ΠΉΠ») [Π€ΠΎΡ€ΠΌΠ°Ρ‚ PE-Ρ„Π°ΠΉΠ»Π°]

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ аналогию ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€ΠΎΠΉ ΠΈ PE-Ρ„Π°ΠΉΠ»ΠΎΠΌ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ Π΅ΡΡ‚ΡŒ свой этаТ, своя Π΄Π²Π΅Ρ€ΡŒ, прихоТая, гостинная, ΠΊΠ»Π°Π΄ΠΎΠ²ΠΊΠ°, свои ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ Π΅ΡΡ‚ΡŒ своя схСма ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Вся информация ΠΎ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π΅ ΠΈ сама эта ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π° хранится Π² PE-Ρ„Π°ΠΉΠ»Π΅. ВзглянСм Π½Π° структуру исполняСмого Ρ„Π°ΠΉΠ»Π°, Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ основныС части.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe101 v1ru png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe101 v1ru png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe101 v1ru png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. sekcii png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-sekcii png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° sekcii png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Как я ΠΈ сказал, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ хранят Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ PE-Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ PE-Ρ„Π°ΠΉΠ»Π°, Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ нСсёт Π² сСбС большой смысловой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ состоит ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠ°ΠΊ список состоит ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² свойств. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ЕстСствСнно, Π² Ρ„Π°ΠΉΠ»Π΅ всё это прСдставлСнно Π² Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌ прСдставлСнии. НС всС поля Π½ΡƒΠΆΠ½Ρ‹ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (запуска) PE-Ρ„Π°ΠΉΠ»Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поля, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Π’ΠΎΡ‚ Π΅Π³ΠΎ структура Π½Π° языкС C/C++.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. dos header png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-dos header png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° dos header png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π― Π²Ρ‹Π΄Π΅Π»ΠΈΠ» самым большим красный ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ DOS-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π±Π°ΠΉΡ‚Ρ‹ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. dos stub png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-dos stub png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° dos stub png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π”Π°Π»ΡŒΡˆΠ΅ Ρƒ нас ΠΏΠΎ списку PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° самом Π΄Π΅Π»Π΅, состоит ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… частСй: сигнатуры, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

Π’ΠΎΡ‚ Π΅Π³ΠΎ структура Π½Π° языкС C/C++:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe begin png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe begin png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe begin png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe header png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe header png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe header png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

На C/C++ структура Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° выглядит Ρ‚Π°ΠΊ:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. fileheader png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-fileheader png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° fileheader png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° прСдставлСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ C/C++ ΠΊΠΎΠ΄ΠΎΠΌ.

Π’ΠΎΡ‚ структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° языкС C/C++:

А Π²ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (порядковый Π½ΠΎΠΌΠ΅Ρ€ Π² DataDirectory):

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. section table png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-section table png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° section table png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

По сути, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ сСкций просто зафиксирована информация ΠΎ сСкциях.

Π’ΠΎΡ‚ ΠΈ всё, ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ приступаСм ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ сСкций. По сути, сСкции ΡΠ²Π»ΡΡŽΡ‚ΡΡ простыми ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Они ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ Ρƒ Π½ΠΈΡ… Π½Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… характСристики описаны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ сСкций. А Π²ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…, Π² этих сСкциях, зависят ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π² Π½ΠΈΡ… хранится. Π‘Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ сказал, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ½Π°Ρ‚. Π’Π°ΠΊΠΆΠ΅, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΡ€ΠΎΠ±ΠΎΠΊ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции зафиксирован Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ сСкций, поэтому сСкции Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π° для этого ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ NULL-Π±Π°ΠΉΡ‚Π°ΠΌΠΈ (00). Π’ΠΎΡ‚ ΠΈ всё, Ρ‡Ρ‚ΠΎ касаСтся сСкций.

На этом всё. Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Если Ρƒ Вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈΠ»ΠΈ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ нСточности Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΏΡ€ΠΎΡˆΡƒ ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π² коммСнтариях. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° всС ваши вопросы.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“ΠΈΠΏΠ΅Ρ€ΠΈΠΎΠ½: рСализация PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°

Π”Π°Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ освСщаСт тСорСтичСскиС аспСкты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎ врСмя выполнСния ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² ΠΈ описываСт ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Portable Executables (PE) [1]: Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (DLL), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Windows.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. 51892a4128452e9413fef96ea838b0f6. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-51892a4128452e9413fef96ea838b0f6. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 51892a4128452e9413fef96ea838b0f6. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe 1. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe 1. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Рисунок 1: ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°

1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π¨ΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎ врСмя выполнСния (runtime-crypter), ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ (сохраняя ΠΈΡ… ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅). Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ сСбя ΠΏΡ€ΠΈ запускС ΠΈ запускаСт своС исходноС содСрТимоС. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ врСдоносныС исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… срСдах: основанныС Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… антивирусныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ сигнатуры ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Π°Ρ ΠΆΠ΅ копия Π½Π΅ содСрТит извСстной сигнатуры, Π΅Π΅ содСрТимоС нСльзя ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΡŒ эвристичСскому Π°Π½Π°Π»ΠΈΠ·Ρƒ, поэтому ΠΎΠ½Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ выполняСтся Π±Π΅Π· Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° антивирусного сканСра. Π”Ρ€ΡƒΠ³ΠΈΠ΅ использования ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° – Π·Π°Ρ‰ΠΈΡ‚Π° Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ рСвСрсинга ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ сТатиСм).

Π”Π°Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ освСщаСт тСорСтичСскиС аспСкты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎ врСмя выполнСния ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠ² ΠΈ описываСт ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Portable Executables (PE) [1]: Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° динамичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (DLL), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Windows. РСализация ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Windows Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ понимания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… аспСктов:

ΠœΡ‹ прСдставим ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² эти Π΄Π²Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 2. Π—Π°Ρ‚Π΅ΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3 ΠΌΡ‹ рассмотрим ΠΈ объясним ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π“ΠΈΠΏΠ΅Ρ€ΠΈΠΎΠ½ для 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ², которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π΄Π²Π΅ части (см. рисунок 1): ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π¨ΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСн Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.1) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PE, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, вычисляСт Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму ΠΈ дописываСт Π΅Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ гСнСрируСтся случайный ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ AES-128 [2]. НаконСц, Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ копируСтся Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описанный Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.2) дСйствуСт ΠΊΠ°ΠΊ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ PE: ΠΎΠ½ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ содСрТимоС Ρ€Π°Π½Π΅Π΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈ запускаСт. ΠšΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ отсутствуСт, поэтому ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ приходится ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ мноТСства Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, провСряя ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд это каТСтся нСдостатком, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» нуТдаСтся Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΡƒ ΠΏΡ€ΠΈ запускС. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, это Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ статичСского ΠΈ динамичСского Π°Π½Π°Π»ΠΈΠ·Π°.

Для сравнСния, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (container.exe) ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ исправлСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Π±Π°Π·Ρ‹ ΠΎΠ±Ρ€Π°Π·Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сСкций ΠΈ Ρ‚. Π΄.). Наш ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ эти Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° компилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.

НСкоторыС аспСкты Π²Ρ€ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° ΠΈ антиэвристики Π² нашСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всС Π΅Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ прСдставим ΠΈ обсудим дальнСйшиС направлСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 4.

2 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° PE-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Windows PE

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» описываСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PE-Ρ„Π°ΠΉΠ»ΠΎΠ² Windows ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅, ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ соврСмСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ, систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈ Ρ‚. Π΄. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π΄Π°Π΄ΠΈΠΌ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π²Π°ΠΆΠ½Ρ‹Π΅ элСмСнты exe-Ρ„Π°ΠΉΠ»ΠΎΠ² Windows Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ структуру PE-ΠΎΠ±Ρ€Π°Π·Π°, Π½ΠΎ Π½Π΅ структуру PE-Ρ„Π°ΠΉΠ»Π°, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» windows начинаСтся с MZ-Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ. Данная Π·Π°Π³Π»ΡƒΡˆΠΊΠ° – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° MSDOS, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС «You can not run this program in DOS mode» (эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСльзя Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ DOS) ΠΈΠ»ΠΈ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ запускС Π² срСдС MSDOS Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² распознаСт DOS-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ сообщСниС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ MZ-Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ (ΠΈ послСдний) элСмСнт – ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Windows PE, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉΡΡ с магичСского значСния «P, E, 0x0, 0x0», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ€Π°Π·Π° (image file header). Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ€Π°Π·Π° ΠΈΠΌΠ΅Π΅Ρ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… машин (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 [4] ΠΈΠ»ΠΈ ARM [5]), Ρ„Π»Π°Π³ΠΈ (ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, являСтся Π»ΠΈ Ρ„Π°ΠΉΠ» динамичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ) ΠΈ Ρ‚. ΠΏ. Π’Π°ΠΆΠ½Ρ‹ΠΌΠΈ полями для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰Π΅Π΅ количСство сСкций ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Они Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ€Π°Π·Π±ΠΎΡ€Π° PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Ρ‰Π΅Π΅ количСство сСкций ΠΈ количСство записСй Π² data directory Π½Π΅ фиксировано.

Π—Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ€Π°Π·Π° слСдуСт ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, нСсмотря Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½Π΅ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ). Он содСрТит Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ€ΠΎΠ΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° исполняСмого ΠΊΠΎΠ΄Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄. (см. [1] для подробностСй). Π’Π°ΠΆΠ½Ρ‹ΠΌΠΈ полями Π² ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π°Π·Π° ΠΎΠ±Ρ€Π°Π·Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·Π°. ΠœΡ‹ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° дСйствуСт ΠΊΠ°ΠΊ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ PE-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ. Π Π°Π· Ρ‚Π°ΠΊ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ адрСсу ΠΎΠ±Ρ€Π°Π·Π° (использованиС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ адрСса Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΉ – relocation table) Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅, Ρ€Π°Π²Π½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ поля Β«Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·Π°Β». Π”Π°Π»Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» копируСтся Π² Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ запускаСтся.

Data directory – Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠ±Ρ€Π°Π·Π°. По сущСству это список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит адрСса ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΉ, Ρ‚Π°Π±Π»ΠΈΡ† экспорта ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Ρ‚. Π΄. НаиболСС Π²Π°ΠΆΠ½ΠΎΠΉ записью для PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° содСрТит список ΠΈΠΌΠ΅Π½ API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Application Programming Interface). API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ находятся Π² DLL ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ прилоТСниями для взаимодСйствия с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ message box Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ MessageBox() ΠΈΠ· user32.dll). Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎ сути содСрТит ΠΈΠΌΠ΅Π½Π° DLL, ΠΈΠΌΠ΅Π½Π° API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ пустой список ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ DLL, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСса Π½ΡƒΠΆΠ½Ρ‹Ρ… API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π² список ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° – список Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π‘Π΅ΠΊΡ†ΠΈΠΈ содСрТат Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ΄, ΠΈ каТдая сСкция ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции содСрТит Π΅Π΅ имя, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚. Π΄.), адрСс сСкции ΠΈ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π Π°Π·ΠΌΠ΅Ρ€ сСкции состоит ΠΈΠ· Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сырых Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π Π°Π·ΠΌΠ΅Ρ€ сырых Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ сСкции Π² PE-ΠΎΠ±Ρ€Π°Π·Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ТСстком дискС), Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ – это Ρ€Π°Π·ΠΌΠ΅Ρ€ сСкции послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. ПолС адрСса Ρ‚Π°ΠΊΠΆΠ΅ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСса ΠΈ указатСля Π½Π° сырыС Π΄Π°Π½Π½Ρ‹Π΅. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° сырыС Π΄Π°Π½Π½Ρ‹Π΅ – это адрСс сСкции Π² Ρ€Π°ΠΌΠΊΠ°Ρ… PE-ΠΎΠ±Ρ€Π°Π·Π°, Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс – это адрСс сСкции послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π—Π° послСдним Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ сСкции ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ сами сСкции.

ΠœΡ‹ описали структуру PE-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, стоящиС ΠΏΠ΅Ρ€Π΅Π΄ PE-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ. ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ смоТСм ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ PE-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ адрСсации Π² PE-Ρ„Π°ΠΉΠ»Π΅: 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΈ 64-Π±ΠΈΡ‚Π½Ρ‹Π΅ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Windows ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Π•ΡΡ‚ΡŒ лишь ΠΎΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅: Π² зависимости ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ адрСса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°) ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 32 ΠΈΠ»ΠΈ 64 Π±ΠΈΡ‚Π°. Π¨ΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описан Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ½ΡΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, ΠΌΡ‹ остановимся Π½Π° 32-Π±ΠΈΡ‚Π½ΠΎΠΌ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт – Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ адрСсации: Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ записСй Π² PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ адрСсами (RVA). Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΊΠΎΠ΄ Π² исполняСмом Ρ„Π°ΠΉΠ»Π΅ Windows ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ PE-Ρ„Π°ΠΉΠ» загруТаСтся ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ адрСсу ΠΎΠ±Ρ€Π°Π·Π°. Если PE-Ρ„Π°ΠΉΠ» загруТаСтся Π² ΠΈΠ½ΠΎΠ΅ мСсто памяти, приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΉ (которая Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… exe-Ρ„Π°ΠΉΠ»ΠΎΠ²), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ адрСса. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ опишСм Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ PE-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Windows:

Π­Ρ‚ΠΎ лишь Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ΅ описаниС для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². НСкоторыС ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ Π² Π½Π΅ΠΌ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹, ΠΈ ΠΌΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ ΠΈΡ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 4.

3 Π“ΠΈΠΏΠ΅Ρ€ΠΈΠΎΠ½

Π“ΠΈΠΏΠ΅Ρ€ΠΈΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ части: ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ВзаимодСйствиС ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 2 ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ….

3.1 Π¨ΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ

Π¨ΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ – это консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ написанноС Π½Π° C/C++. Оно ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΈ внСдряСт Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π‘ΠΏΠ΅Ρ€Π²Π° ΠΌΡ‹ использовали ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ довольно слоТно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° приходится сильно ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe 2. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe 2. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Рисунок 2: Π”Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ содСрТит Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ адрСсу ΠΎΠ±Ρ€Π°Π·Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ адрСсу Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ пСрСзаписан Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ послС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΡ€ΠΈ этом приходится ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Β«Π±Π°Π·Π° ΠΎΠ±Ρ€Π°Π·Π°Β» PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Данная модификация Π±Π°Π·Ρ‹ ΠΎΠ±Ρ€Π°Π·Π° Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ (ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΡƒΡŽ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ.

Однако, Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ прСдставлСн Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния для PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈ запускС: ΠΌΡ‹ внСдряСм Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» Π² исходный ассСмблСрный ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π—Π°Ρ‚Π΅ΠΌ вызываСтся FASM для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ исполняСмого Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠΌ здСсь являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ большС Π½Π΅ трСбуСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, исправлСния Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… адрСсов ΠΈ Ρ‚. Π΄. ВсС это Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ Fasm. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ зависит ΠΎΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

ΠœΡ‹ описали ΠΎΠ±Ρ‰ΡƒΡŽ структуру ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Π΄Π΅Ρ‚Π°Π»ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ: ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ запускаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» копируСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ провСряСтся:

Π—Π°Ρ‚Π΅ΠΌ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ анализируСтся ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ поля Β«Π±Π°Π·Π° ΠΎΠ±Ρ€Π°Π·Π°Β» ΠΈ Β«Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·Π°Β». Π Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ сСкций), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π²Π°ΠΆΠ½Ρ‹ для ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ просто выводятся Π½Π° экран Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг – это ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π‘Π½Π°Ρ‡Π°Π»Π° вычисляСтся Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 Π±Π°ΠΉΡ‚Π° ΠΈ добавляСтся Π² Π½Π°Ρ‡Π°Π»ΠΎ Π±ΡƒΡ„Π΅Ρ€Π° памяти, Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ содСрТимоС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. AES – это Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΡˆΠΈΡ„Ρ€, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 16 Π±Π°ΠΉΡ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π° увСличиваСтся Π΄ΠΎ значСния, ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ 16 (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство заполняСтся нулями). ПослС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±ΡƒΡ„Π΅Ρ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° гСнСрируСтся случайный ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. Π“ΠΈΠΏΠ΅Ρ€ΠΈΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ AES-128, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π΅Π½ 16 Π±Π°ΠΉΡ‚Π°ΠΌ. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ приходится ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ большого количСства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ссли Π±Ρ‹ использовалось всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ пространство ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пространство ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΎ, ΠΈ ΠΊΠ»ΡŽΡ‡ гСнСрируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°:

Листинг 1: Алгоритм Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° AES

1 unsigned char key [ AES KEY SIZE ];
2 for ( int i = 0; i

Π’ листингС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Π²Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² исходном ΠΊΠΎΠ΄Π΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°: KEY SIZE ΠΈ KEY RANGE. KEY SIZE опрСдСляСт фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡Π° Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 15 (Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нулями). МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΊΠ»ΡŽΡ‡Π° опрСдСляСтся константой KEY RANGE, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 255.

ПослС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ AES для Fasm [6] ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π΅ Π² Π²ΠΈΠ΄Π΅ DLL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ доступной для нашСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π½Π° C/C++. Π¨ΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ DLL, API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ aesEncrypt() ΠΈ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ с содСрТимым Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (содСрТащий ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму, сам Ρ„Π°ΠΉΠ» ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ 16) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сгСнСрированного ΠΊΠ»ΡŽΡ‡Π°. Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» конвСртируСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ASCII-прСдставлСниС:

Листинг 2: Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ», ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² массив Fasm

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ листинга совмСстимо с Fasm, хранится Π² Ρ„Π°ΠΉΠ»Π΅ input.asm ΠΈ копируСтся Π² ΠΏΠ°ΠΏΠΊΡƒ с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π—Π°Ρ‚Π΅ΠΌ Π±Π°Π·Π° ΠΎΠ±Ρ€Π°Π·Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·Π°, KEY SIZE ΠΈ KEY RANGE Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, совмСстимый с Fasm (сСмантика ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Fasm-ΠΊΠΎΠ΄Π° описана Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.2) ΠΈ копируСтся Π² ΠΏΠ°ΠΏΠΊΡƒ с исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π²ΠΎ врСмя выполнСния (для подробностСй см. Ρ€Π°Π·Π΄Π΅Π» 3.2).

Π‘Π°Π·Π° ΠΎΠ±Ρ€Π°Π·Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° конвСртируСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Fasm-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ адрСс ΠΎΠ±Ρ€Π°Π·Π° Ρ€Π°Π²Π΅Π½ 0x1000000), сохраняСтся Π² Ρ„Π°ΠΉΠ»Π΅ imagebase.asm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ копируСтся Π² ΠΏΠ°ΠΏΠΊΡƒ исходных ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°:

Листинг 3: Π‘Π°Π·Π° ΠΎΠ±Ρ€Π°Π·Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, записанная Π² синтаксисС Fasm

1 format PE GUI 4.0 at 0x1000000

Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·Π° конвСртируСтся Π² строку ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 0x8000) ΠΈ хранится Π² Ρ„Π°ΠΉΠ»Π΅ sizeofimage.asm:

Листинг 4: Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π·Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, записанный Π² синтаксисС Fasm

НаконСц, KEY SIZE ΠΈ KEY RANGE ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ Fasm:

Листинг 5: ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ пространства ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² синтаксис Fasm

1 REAL KEY SIZE equ 6
2 REAL KEY RANGE equ 4

Π”Π°Π»Π΅Π΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ исполняСмый Ρ„Π°ΠΉΠ» Fasm, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

3.2 ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠΎ сути дСйствуСт ΠΊΠ°ΠΊ Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ PE-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ ΠΈ написан Π½Π° Fasm. Листинг 6 содСрТит Ρ‡Π°ΡΡ‚ΡŒ исходного ΠΊΠΎΠ΄Π° Ρ„Π°ΠΉΠ»Π° main.asm ΠΈ дСмонстрируСт ΠΎΠ±Ρ‰ΡƒΡŽ структуру ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Main.asm начинаСтся с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° include, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ прСпроцСссора языка C ΠΈ вставляСт Π² ΠΊΠΎΠ΄ содСрТимоС листинга 3. ВставлСнный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ заставляСт Fasm Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PE-Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ загруТаСтся ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ адрСсу. Благодаря этому Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ всСгда загруТаСтся ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ адрСсу ΠΎΠ±Ρ€Π°Π·Π° Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4 содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ entry, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² fasm для достиТСния адрСса Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°. Π—Π° Π½Π΅ΠΉ слСдуСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ C/C++ для Π²Π°ΠΆΠ½Ρ‹Ρ… API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 7 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» aes.inc, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ AES Π² Fasm [6]. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ для Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe 3. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe 3. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe 3. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Рисунок 3: ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² памяти ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΎΠΉ

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. pe 4. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-pe 4. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° pe 4. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Рисунок 4: ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² памяти послС Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ

4 Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ направлСния дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π”Π°Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π“ΠΈΠΏΠ΅Ρ€ΠΈΠΎΠ½Π° – PE-ΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎ врСмя выполнСния. ΠŸΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° домашнСй страницС Nullsecurity ΠΏΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ.

5 Благодарности

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ всСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Nullsecurity Π·Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ОсобоС спасибо КСлси Π·Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ ошибок ΠΈ Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ бСсСды.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Ρ‚Π°Ρ‚ΡŒΡ [0x02] Π˜ΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌ Portable Executable [Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° PE-Ρ„Π°ΠΉΠ»Π°]

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. loading png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-loading png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° loading png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. virtual memory png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-virtual memory png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° virtual memory png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

А послС этого происходит ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (транслированиС) адрСсов физичСской памяти (ΠžΠ—Π£), ΠΊ адрСсам Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти. Π­Ρ‚ΠΎΡ‚ процСсс ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½ Π½ΠΈΠΆΠ΅.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ozu virutal memory png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ozu virutal memory png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ozu virutal memory png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. virtual memory 2 png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-virtual memory 2 png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° virtual memory 2 png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π’Π°ΠΊ Π·Π°Ρ‡Π΅ΠΌ ΠΆΠ΅ ImageBase процСссу? ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, скаТСм, Ρ€Π°Π²Π΅Π½ 0? ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Ρ€Π°Π²Π΅Π½ 0x400000? Π’Π°ΠΊ ΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅!

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. memory map png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-memory map png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° memory map png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π’Π°ΠΊΠΆΠ΅ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти хранятся Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Dynamic Linked Libraries (DLLs) ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ структуры, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, PEBs (Process Environment Blocks) ΠΈ TEBs (Thread Environment Blocks). Π­Ρ‚ΠΈ структуры хранят Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ процСссС ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ….

1.2. ПослС этого, происходит считываниС поля e_lfanew ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Π±ΠΎΡ€Ρƒ PE-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСкции ΠΈΠ· PE-Ρ„Π°ΠΉΠ»Π° считываСтся Π±Π»ΠΎΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ SizeOfRawData (сСкция) ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ PointerToRawData, послС этого этот Π±Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎ адрСсу ImageBase + VirtualAddress с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ характСристиками.

какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. mapping png. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ‚ΠΎ. какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-mapping png. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° какая сСкция pe Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° mapping png. Π‘Ρ€Π°Π·Ρƒ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° PE Π² Ρ„Π°ΠΉΠ»Π΅ располагаСтся массив Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСкций. Π•Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся ΠΏΠΎΠ»Π΅ΠΌ NumberOfSections Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сСкции состоит ΠΈΠ· 0x28 Π±Π°ΠΉΡ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π‘Π½Π°Ρ‡Π°Π»Π°, ΠΏΠΎ адрСсу Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (ImageBase) происходит ΠΏΡ€ΠΎΠ΅Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² PE-Ρ„Π°ΠΉΠ»Π°.

ПослС Ρ€Π°Π·Π±ΠΎΡ€Π° всСх Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Ρ€Π°Π·Π±ΠΎΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ сСкций, проСцирования Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ начинаСтся исполнСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ адрСсу ImageBase + AddressOfEntryPoint. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, AddressOfEntryPoint ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠ΅ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π° (.text), которая содСрТит ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции, Π½ΠΎ это всСго лишь соглашСниС ΠΈ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсоблюдСно.

Ну, Π½Π° этом всё. Если Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ, Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄ Ссли Π²Ρ‹ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ «Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ» создадим свой EXE-Ρ„Π°ΠΉΠ» с использованиСм лишь ΠΎΠ΄Π½ΠΎΠ³ΠΎ Hex-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. ПослС ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния PE ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *