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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Вонкости дизассСмблирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 1

Автор Kaspersky Kris

Kris Kaspersky

Вонкости дизассСмблирования

Π”Π˜Π—ΠΠ‘Π‘Π•ΠœΠ‘Π›Π˜Π ΠžΠ’ΠΠΠ˜Π• Π’ Π£ΠœΠ•

МнС извСстны политичСскиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹,

Но мСня ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ чСловСчСскиС Π΄ΠΎΠ²ΠΎΠ΄Ρ‹.

Π€. Π₯Π΅Ρ€Π±Π΅Ρ€Ρ‚. «МСссия Π”ΡŽΠ½Ρ‹Β»

ΠžΡ‡Π΅Π½ΡŒ часто ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ Π½Π΅ оказываСтся Π½ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, Π½ΠΈ дизассСмблСра, Π½ΠΈ Π΄Π°ΠΆΠ΅ компилятора, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ хотя Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ трассировщик. РазумССтся, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π²Π·Π»ΠΎΠΌΠ΅ соврСмСнных Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π² Ρ‚Π°ΠΊΠΈΡ… условиях просто смСшно, Π½ΠΎ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли Тизнь заставляСт?

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ встроСн Π² DN ΠΈ, Ссли ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ²Π΅Π·Π΅Ρ‚, Ρ‚ΠΎ debug.com, входящий Π² поставку Windows ΠΈ часто ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ΠΎΡ‚ этим-Ρ‚ΠΎ ΠΌΡ‹ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ. Π‘Ρ€Π°Π·Ρƒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΡŽΡΡŒ, Ρ‡Ρ‚ΠΎ всС описанноС Π½ΠΈΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для своСго понимания Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ упорства, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ большиС практичСскиС возмоТности. Π’Ρ‹ смоТСтС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° диск ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ, Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько сСкторов, внСсти вирус ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ всС это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β«ΠΏΠΎΠ΄Ρ€ΡƒΡ‡Π½Ρ‹Ρ…Β» срСдств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ навСрняка окаТутся Π² вашСм распоряТСнии.

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

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всС ниТСописанноС Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ своим собствСнным ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°. Если Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ трСбованиями, Ρ‚ΠΎ приступим.

БВРУКВУРА ΠšΠžΠœΠΠΠ” INTEL 80x86

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‚Ρ‹ ΠΈ опасСн, Ρ‡Ρ‚ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Π» своими страстями…

Π€. Π₯Π΅Ρ€Π±Π΅Ρ€Ρ‚. «МСссия Π”ΡŽΠ½Ρ‹Β»

ДизассСмблированиС (особСнно Π² ΡƒΠΌΠ΅) Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ процСссор ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ всС ΠΎΠΏΠΊΠΎΠ΄Ρ‹ (ΠΊΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ·ΡƒΡΡ‚ΡŒ, Π½ΠΎ это Π½Π΅ самый Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ. Π£ΠΆ слишком ΠΌΠ½ΠΎΠ³ΠΎ придСтся Π·ΡƒΠ±Ρ€ΠΈΡ‚ΡŒ. Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡΡ‚ΠΎΡΡ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ.

Для Π½Π°Ρ‡Π°Π»Π° разбСрСмся с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ инструкций Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Intel (рис. 1).

Вонкости дизассСмблирования - any2fbimgloader0.jpeg

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ поля ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ поля ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚.Π΅. Π² ΠΎΠ΄Π½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π΅Ρ‚.

Π‘Π°ΠΌΠΎ ΠΏΠΎΠ»Π΅ ΠΊΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ восСмь Π±ΠΈΡ‚ ΠΈ часто (Π½ΠΎ Π½Π΅ всСгда) ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (рис. 2):

Вонкости дизассСмблирования - any2fbimgloader1.jpeg

ПолС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ, Ссли ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. Π•Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° слово (Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово Π² 32-Π±ΠΈΡ‚Π½ΠΎΠΌ ΠΈΠ»ΠΈ с прСфиксом 0Ρ…66 Π² 16-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅).

НаправлСниС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄-ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ. НулСвоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ присваиваСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρƒ, Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π»Π΅Π²ΠΎΠΌΡƒ. Рассмотрим это Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ инструкции mov bx,dx:

Вонкости дизассСмблирования - any2fbimgloader2.jpeg

Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„Π»Π°Π³ направлСния ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

Вонкости дизассСмблирования - any2fbimgloader3.jpeg

НС ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎ мановСнию волшСбной ΠΏΠ°Π»ΠΎΡ‡ΠΊΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² всСго ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚? Однако, Π΄Π°Π²Π°ΠΉΡ‚Π΅ задумаСмся, ΠΊΠ°ΠΊ это ΠΏΠΎΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ вСсти сСбя, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² нСпосрСдствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅? РазумССтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ ΠΈ нСзависимо ΠΎΡ‚ содСрТимого этого Π±ΠΈΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ источником. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Intel ΡƒΡ‡ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ нашли ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, часто экономящСС Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС Ρ†Π΅Π»Ρ‹Ρ… Ρ‚Ρ€ΠΈ Π±Π°ΠΉΡ‚Π°. Рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ слово ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово присваиваСтся нСпосрСдствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ мСньшСС 0100h. Ясно, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΌ являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ младший Π±Π°ΠΉΡ‚, Π° стоящиС слСва Π½ΡƒΠ»ΠΈ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ. Но ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ это процСссору! ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ Π±ΠΈΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π½Π° Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π’ΠΎΡ‚ для этого ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΡ‚ направлСния. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Вонкости дизассСмблирования - any2fbimgloader4.jpeg

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ экономим ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ Π² 16-разрядном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈ Ρ†Π΅Π»Ρ‹Ρ… Ρ‚Ρ€ΠΈ β€” Π² 32-разрядом. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ написании ΡΠ°ΠΌΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ассСмблСров Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ (ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ) Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΈ Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ оказываСтся мСньшС ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ. На этом, кстати, основан ΠΎΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ². ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Вонкости дизассСмблирования - any2fbimgloader5.jpeg

Π’ΠΎ Π΅ΡΡ‚ΡŒ, тСкущая ΠΊΠΎΠΌΠ°Π½Π΄Π° станСт Π½Π° Π±Π°ΠΉΡ‚ ΠΊΠΎΡ€ΠΎΡ‡Π΅! И Β«ΠΎΡ‚Ρ€Π΅Π·Π°Π½Π½Ρ‹ΠΉΒ» ноль Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ стал Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹! Но ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° Β«ΠΆΠΈΠ²ΠΎΠΌΒ» процСссорС Ρ‚Π°ΠΊΠΎΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ρ‚.ΠΊ. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ iΡ€ вычисляСтся Π΅Ρ‰Π΅ Π΄ΠΎ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° стадии Π΅Π΅ дСкодирования.

БовсСм Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ, ΠΈ особСнно ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ-эмуляторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ iΡ€ послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (это Π»Π΅Π³Ρ‡Π΅ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ наступаСт ΠΊΡ€Π°Ρ…. МалСнькая Ρ‚ΠΎΠ½ΠΊΠΎΡΡ‚ΡŒ β€” Π΄ΠΎ ΠΈΠ»ΠΈ послС оказалась Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΉ, ΠΈ Π²ΠΎΡ‚ Π²Π°ΠΌ Π² ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°ΠΌΠΏ экрана:

Вонкости дизассСмблирования - any2fbimgloader6.jpeg

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ этот ΠΏΡ€ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСссилСн ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ‚Ρ€Π°ΡΡΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ² (debug.com, DeGlucker, CuΡ€386), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ iΡ€ Π·Π° Π½ΠΈΡ… вычисляСт процСссор ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Однако, Π½Π° Β«ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅Β» ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π° всСгда найдСтся (см. ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π³Π»Π°Π²Ρƒ), Π° с эмуляционными ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅, ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ…, способных Π²ΠΎΠ·Ρ‹ΠΌΠ΅Ρ‚ΡŒ дСйствиС Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСссор.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ прСфиксов. Они дСлятся Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹:

Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ повторСния:

Вонкости дизассСмблирования - any2fbimgloader7.jpeg

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСфикса ΠΈΠ· Ρ‚ΠΎΠΉ ΠΆΠ΅ самой Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρ‚ΠΎ дСйствиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΈ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… процСссоров.

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ пСрСопрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² 16-разрядном Ρ€Π΅ΠΆΠΈΠΌΠ΅ для манипуляции с 32-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. ΠŸΡ€ΠΈ этом ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ любой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ x66:CLIΠ±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ! А ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ ΠΈ Π½Π΅Ρ‚? Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Π½ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ этого Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ΠΎ ΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΈ ΠΊ дизассСмблСрам, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ IDA Pro:

Вонкости дизассСмблирования - any2fbimgloader8.jpeg

На этом ΠΆΠ΅ основан ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ противодСйствия ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°ΠΌ, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΌΡƒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ-эмулятору cuΡ€386. Рассмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ конструкция x66:RETN. Казалось Π±Ρ‹, Ρ€Π°Π· ΠΊΠΎΠΌΠ°Π½Π΄Π° RETN Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², Ρ‚ΠΎ прСфикс x66 ΠΌΠΎΠΆΠ½ΠΎ просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Но, Π½Π° самом Π΄Π΅Π»Π΅, всС Π½Π΅ Ρ‚Π°ΠΊ просто. RETN Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с нСявным ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ-рСгистром iΡ€/eiΡ€. ИмСнно Π΅Π³ΠΎ ΠΈ измСняСт прСфикс. РазумССтся, Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΈ 16-разрядном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ всСгда обрСзаСтся Π΄ΠΎ 16 Π±ΠΈΡ‚, ΠΈ поэтому, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ сработаСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Но стСк-Ρ‚ΠΎ окаТСтся нСсбалансированным! Из Π½Π΅Π³ΠΎ вмСстС ΠΎΠ΄Π½ΠΎΠ³ΠΎ слова взяли Ρ†Π΅Π»Ρ‹Ρ… Π΄Π²Π°! Π’Π°ΠΊ Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ 0Ch β€” исчСрпаниС стСка. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Ρ‡Π΅ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ crack1E.com β€” Π΄Π°ΠΆΠ΅ cuΡ€386 Π²ΠΎ всСх Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… откаТСтся это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π° Turbo-Debuger Π²ΠΎΠΎΠ±Ρ‰Π΅ зависнСт! IDA Pro Π½Π΅ смоТСт ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ стСк, Π° вмСстС с Π½ΠΈΠΌ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.