Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π’Π•Π₯НИКА Π‘Π•Π’Π•Π’Π«Π₯ АВАК». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 95

Автор ΠšΡ€ΠΈΡ ΠšΠ°ΡΠΏΠ΅Ρ€ΡΠΊΠΈΠΉ

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠ΅Ρ€Π΅Π΄ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ стоят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ искаТСниС адрСса Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ строку? Если Π΄Π°, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π±Π°ΠΉΡ‚ строки ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Π±ΡƒΡ„Π΅Ρ€? Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ ситуации Π²Ρ‹Π΄Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ»ΠΈΡ‚ΡŒ свСт Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π°Π²Π°Ρ€ΠΈΠΈ. Π ΠΎΠ΄ ΠΈ Ρ„ΠΎΡ€ΠΌΠ° Π²Ρ‹Π΄Π°Ρ‡Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½ΠΎ практичСски всСгда приводится содСрТимоС рСгистров, Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠΈ стСка, инструкции, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅ΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° самого ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π­Ρ‚ΠΈΠΌΠΈ свСдСниями ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ вопросы.

НаимСнСС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠΉ оказываСтся Windows 2000, Π½Π΅ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰Π°Ρ Π½ΠΈ содСрТимоС рСгистров, Π½ΠΈ состояниС стСка. Однако ΠΎΠ½Π° позволяСт Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. БущСствуСт Ρ‚Π°ΠΊ ΠΆΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Β«Dr. WatsonΒ», прСдназначСнная для выяснСния ΠΏΡ€ΠΈΡ‡ΠΈΠ½ возникновСния Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ситуаций. Она Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π°Π½Π°Π»ΠΈΠ·Π° уязвимых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

Если ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 2000, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ buff.demo.exe (Π½Π° дискС, ΠΏΡ€ΠΈΠ»Π°Π³Π°Π΅ΠΌΠΎΠΌ ΠΊ ΠΊΠ½ΠΈΠ³Π΅, ΠΎΠ½ находится Π² Ρ„Π°ΠΉΠ»Π΅ β€œ/SRC/buff.demo.exe”) ввСсти строку Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΈΠ· Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΈ символов β€˜Z’ (ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… символов), ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π° ΠΎΠΊΠ½Π΅ появится Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания (смотри рисунок 79):


Рисунок 079 Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ, выдаваСмая ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Windows 2000 ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации

β€œΠ˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ адрСсу 0x5a5a5a5a ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ ΠΊ памяти ΠΏΠΎ адрСсу 0x5a5a5a5a. ΠŸΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ read”. Код символа β€˜Z’ Ρ€Π°Π²Π΅Π½ 0x5A, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, искаТСниС адрСса Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ адрСсу β€˜ZZZZ’ ΠΈΠ»ΠΈ 0x5a5a5a5a Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Но ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Π°ΠΉΡ‚Ρ‹ строки Π·Π°Ρ‚ΠΈΡ€Π°ΡŽΡ‚ адрСс Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°?

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΎΠΌ строки с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ символами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€œZZZZZZZZZZZZZZZ1234567” (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ «выплСвываСтся» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ строки Π΄Π»ΠΈΠ½Π½ΠΎΠΉ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ символов, ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ символов ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΌΠΈ, ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚).

Π’Π½ΠΎΠ²ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ситуация ΠΈ Π½Π° экранС появится Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания (смотри рисунок 081):


Рисунок 081

β€œΠ˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ адрСсу 0x35343332 ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ ΠΊ памяти ΠΏΠΎ адрСсу 0x35343332. ΠŸΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ read”. Код символа β€˜2’ - 0x32, β€˜3’ - 0x33, β€˜4’ - 0x34 ΠΈ β€˜5’ - 0x35. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² сохранСнный адрСс Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Ρ‹ΠΉ, сСмнадцатый, восСмнадцатый ΠΈ дСвятнадцатый символ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ строки (Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ нуля).

ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ адрСсу располоТСн Π±ΡƒΡ„Π΅Ρ€, содСрТащий строку. Однако Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь Π½Π° основС сообщаСмой Windows 2000 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. НСобходимо Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«ΠΎΡ‚ΠΌΠ΅Π½Π°Β» (эта ΠΊΠ½ΠΎΠΏΠΊΠ° появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π² систСмС установлСн ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, срСда Microsoft Visual C++, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ - SoftIce Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ инсталляции Π½Π΅ прСдоставляСт Ρ‚Π°ΠΊΠΎΠΉ возмоТности):

ПослС всплытия ΠΎΠΊΠ½Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° наибольший интСрСс прСдставит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра указатСля Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠΈ стСка ESP. Π‘Π°ΠΌΠΎ ΠΆΠ΅ содСрТимоС стСка Π²Ρ‹ΡˆΠ΅ рСгистра ESP (Π³Π΄Π΅ ΠΈ располагаСтся вСдСнная строка) ΠΊ этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Ρ‡Π°Ρ‰Π΅ всСго оказываСтся ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΎ.

На рисункС 082 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ содСрТимоС рСгистров ΠΈ состояния стСка. Π›Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² стСкС Π½Π° мСстС Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки находится мусор. Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² стСк заносятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТСбныС Π΄Π°Π½Π½Ρ‹Π΅, затирая всС Π½Π° своСм ΠΏΡƒΡ‚ΠΈ.


Рисунок 082

ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ рСгистра ESP (Ρ€Π°Π²Π½ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС 0x12FF80) Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ адрСс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π±ΡƒΡ„Π΅Ρ€Π°, содСрТащСго строку. Он Ρ€Π°Π²Π΅Π½ 0x0012FF80 - 0x14 [332] = 0x0011FF6C.

Если ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ввСсти строку Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅: β€œ\xCCZZZZZZZZZZZZZZ\x80\xFF\x12”, (ΠΊΠΎΠ΄ 0xCC это ΠΎΠΏΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ INT 0x3 - Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ 0Ρ…3 - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΆΠ΅ Π±Π°ΠΉΡ‚Π΅, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅), Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ (смотри рисунок 083):


Рисунок 083

β€œΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Unknown software exemption (0x800000003) Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎ адрСсу 0x0012FF6C”. АдрСс 0x9912FF6C Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ адрСс Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ строки ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вся информация, нСобходимая для вторТСния Π½Π° Ρ‡ΡƒΠΆΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°, ΠΈ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Π³Π»Π°Π²Π΅ «ВСхнология срыва стСка» ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ «ИспользованиС срыва стСка для запуска ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ΄ Windows NTΒ».

Под ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows 9x Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ содСрТимоС рСгистров ΠΈ состояниС стСка Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ «свСдСния». На экранС отобразится Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° рисункС 080.


Рисунок 080

Наибольший интСрСс прСдставляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра ESP, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ позволяСт Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ мСстополоТСниС Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки Π² стСкС. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистра EBP, Ρ€Π°Π²Π½ΠΎΠ³ΠΎ 0x5A5A5A5A Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ компилятор сгСнСрировал ΠΊΠΎΠ΄, Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгистра EBP. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ сохранСнного значСния EBP Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ удастся ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΌΠ΅Ρ€Π΅, Β«Π·Π°Π²Π΅ΡΠΈΡ‚ΡŒΒ» Π΅Π΅.

Π’ ΡˆΡ‚Π°Ρ‚Π½ΡƒΡŽ поставку Windows 9x, Windows NT 4.x, Windows 2000 Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Β«Dr. WatsonΒ», прСдназначСнная для выявлСния ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ошибок. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ ситуации ΠΎΠ½Π° сохраняСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ прилоТСния Π² Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ (Π² зависимости ΠΎΡ‚ настоСк) ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ: содСрТимоС рСгистров ΠΈ состояниС стСка, истории трассировки ΠΈ Ρ‚.Π΄.

Один ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅ [333]. Он ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ послС возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ пСрСполнСния Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ buff.demo.exe:

Β· БостояниС систСмы Π½Π° 15.09.00 10:31:30.
Β·
Β· *--Β» Π˜Ρ‚ΠΎΠ³/ОписаниС Β«--*
Β·
Β· ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π΅Π΅ DLL ΠΌΠΎΠ³Π»Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ
Β· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€
Β·
Β· Имя модуля: Β«Π½Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…Β»
Β·
Β· НазваниС прилоТСния: Buff.demo.exe
Β·
Β· ____________________
Β·
· *--» БвСдСния «--*
Β·
Β· Command line: F:\TPNA\SRC\BUFFDE~1.EXE
Β·
Β· Trap 0e 0000 - НСдопустимая страница
Β· eax=00000000 ebx=00530000 ecx=00406050 edx=0063fdd8 esi=817d3fd4 edi=00000000
Β· eip= 5a5a5a5a esp= 0063fdf8 ebp=5a5a5a5a - - - nv up EI pl ZR na PE nc
Β· cs=015f ss=0167 ds=0167 es=0167 fs=41a7 gs=0000
Β·Β»015f:5a5a5a5a page not present
Β· sel type base lim/bot
Β· ____________________ -- ____________________ ____________________
Β· cs 015f r-x- 00000000 ffffffff
Β· ss 0167 rw-e 00000000 0000ffff
Β· ds 0167 rw-e 00000000 0000ffff
Β· es 0167 rw-e 00000000 0000ffff
Β· fs 41a7 rw- 817d23fc 00000037
Β· gs 0000 --
Β·
Β· stack base: 00540000
Β· TIB limits: 0063e000 - 00640000
Β·
Β· - exception record -
Β·
Β· Exception Code: c0000005 (Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ доступа)
Β· Exception Address: 5a5a5a5a
Β· Exception Info: 00000000
Β· 5a5a5a5a
Β·
Β·Β»015f:5a5a5a5a page not present
Β·
Β·
Β· - stack summary -
Β·
Β· 0167:5a5a5a5a 015f:5a5a5a5a 015f:5a5a5a5a
Β·
Β· - stack trace -
Β·
Β· 0167:5a5a5a5a 015f:5a5a5a5a 015f:5a5a5a5a
Β·
Β· - stack dump -
Β·
Β· 0063fdf8 00005a5a
Β· 0063fdfc 00401262 = BUFF.DEMO.EXE:.text+0x262
Β·
Β· ____________________
Β· 015f:00401231 00a330694000 add byte ptr [ebx+00406930],ah
Β· 015f:00401237 e83f0e0000 call 0040207b = BUFF.DEMO.EXE:.text+0x107b
Β· 015f:0040123c e8810d0000 call 00401fc2 = BUFF.DEMO.EXE:.text+0xfc2
Β· 015f:00401241 e8f60a0000 call 00401d3c = BUFF.DEMO.EXE:.text+0xd3c
Β· 015f:00401246 a170694000 mov eax,dword ptr [00406970]
Β· 015f:0040124b a374694000 mov dword ptr [00406974],eax
Β· 015f:00401250 50 push eax
Β· 015f:00401251 ff3568694000 push dword ptr [00406968]
Β· 015f:00401257 ff3564694000 push dword ptr [00406964]
Β· 015f:0040125d e80afeffff call 0040106c = BUFF.DEMO.EXE:.text+0x6c
Β· BUFF.DEMO.EXE:.text+0x262:
Β· *015f:00401262 83c40c add esp,+0c
Β· 015f:00401265 8945e4 mov dword ptr [ebp-1c],eax
Β· 015f:00401268 50 push eax
Β· 015f:00401269 e8fb0a0000 call 00401d69 = BUFF.DEMO.EXE:.text+0xd69
Β· 015f:0040126e 8b45ec mov eax,dword ptr [ebp-14]
Β· 015f:00401271 8b08 mov ecx,dword ptr [eax]
Β· 015f:00401273 8b09 mov ecx,dword ptr [ecx]
Β· 015f:00401275 894de0 mov dword ptr [ebp-20],ecx
Β· 015f:00401278 50 push eax
Β· 015f:00401279 51 push ecx
Β· 015f:0040127a e8bf0b0000 call 00401e3e = BUFF.DEMO.EXE:.text+0xe3e
Β·
Β· ____________________
Β·
Β·
Β· 0063fe00 00000001
Β· 0063fe04 00760b70 -Β» 78 0b 76 00 00 00 00 00 46 3a 5c 54 50 4e 41 5c x.v…F:\TPNA\
Β· 0063fe08 00760b20 -Β» 00 0b 76 00 e0 0a 76 00 c0 0a 76 00 a0 0a 76 00…v…v…v…v.
Β· 0063fe0c 00000000
Β· 0063fe10 817d3fd4 -Β» 06 00 05 00 50 e9 52 c1 00 00 00 00 00 00 00 00…P.R…
Β· 0063fe14 00530000
Β· 0063fe18 c0000005
Β· 0063fe1c 0063ff68 -Β» ff ff ff ff 14 fe fb bf 38 91 f7 bf 00 00 00 00…8…
Β· 0063fe20 0063fe0c -Β» 00 00 00 00 d4 3f 7d 81 00 00 53 00 05 00 00 c0…?}…S…
Β· 0063fe24 0063fc28 -Β» 00 fd 63 00 1c fd 63 00 54 fc 63 00 4d 68 f7 bf…c…c.T.c.Mh…
Β· 0063fe28 0063ff68 -Β» ff ff ff ff 14 fe fb bf 38 91 f7 bf 00 00 00 00…8…
Β· 0063fe2c 004026dc = BUFF.DEMO.EXE:.text+0x16dc
Β· -Β» 55 8b ec 83 ec 08 53 56 57 55 fc 8b 5d 0c 8b 45 U…SVWU…]…E
Β· 0063fe30 004050a8 = BUFF.DEMO.EXE:.rdata+0xa8
Β· -Β» ff ff ff ff 6e 12 40 00 82 12 40 00 06 00 00 06… [email protected]…@…
Β· 0063fe34 00000000
Β· 0063fe38 0063ff78 -Β» f4 ff 63 00 e9 b3 f8 bf f4 23 7d 81 d4 3f 7d 81…c…#}…?}.
Β· 0063fe3c bff8b537 = KERNEL32!ApplicationStartup
Β·
Β· ____________________
Β·

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ: Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°. Π’ листингС Π·Π½Π°ΠΊΠΎΠΌ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π° инструкция, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅ΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: