Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚

ДизассСмблСр своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ

Π—Π½Π°Π½ΠΈΠ΅ структуры ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠ³ Π½Π°Π·Π²Π°Ρ‚ΡŒ сСбя программистом. ЕстСствСнно Ρ‚Π°ΠΊ Π±Ρ‹Π»ΠΎ Π½Π΅ всСгда. Π”ΠΎ появлСния ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ассСмблСров ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ нСпосрСдствСнно Π² машинном ΠΊΠΎΠ΄Π΅. ΠšΠ°Ρ‚ΠΎΡ€ΠΆΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°, сопряТСнная с большим количСством ошибок. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ассСмблСры ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ (Π² Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΉ стСпСни) Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΆΠ΅Π»Π΅Π·Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄Π° кодирования ΠΊΠΎΠΌΠ°Π½Π΄. Π§Ρ‚ΠΎ ΡƒΠΆ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ компиляторах высокоуровнСвых языков. Они ΠΏΠΎΡ€Π°ΠΆΠ°ΡŽΡ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ своСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚ΠΎΠΉ простотой, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ программисту позволяСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, Π² достаточной стСпСни, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ). ΠžΡ‚ программиста трСбуСтся лишь Π·Π½Π°Π½ΠΈΠ΅ любимого языка/ IDE. Π—Π½Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ компилятор исходный листинг вовсС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.
Π’Π΅ΠΌ ΠΆΠ΅, ΠΊΠΎΠΌΡƒ интСрСсно Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС структуры кодирования ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ исходный ΠΊΠΎΠ΄ дизассСмблСра для x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ дизассСмблСра для x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ являСтся, хотя Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΈ Π½Π΅ особо слоТной, Π½ΠΎ всС, ΠΆΠ΅ довольно спСцифичной. ΠžΡ‚ программиста Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° знания – знания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ микропроцСссор распознаСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€œΠ±Π°ΠΉΡ‚ΠΈΠΊΠΎΠ²β€ Π² машинном ΠΊΠΎΠ΄Π΅. Π”Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡƒΠ·Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ знания Π² объСмС достаточном для написания ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ соврСмСнного дизассСмблСра – приходится ΠΈΡΠΊΠ°Ρ‚ΡŒ самому (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π° английском языкС). Π”Π°Π½Π½Ρ‹ΠΉ пост Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ‚Ρƒ освСщСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ создания дизассСмблСра, Π² Π½Π΅ΠΌ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассказываСтся Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π±Ρ‹Π» написан дизассСмблСр для x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, 32-разрядного Ρ€Π΅ΠΆΠΈΠΌΠ° исполнСния ΠΊΠΎΠΌΠ°Π½Π΄. Π’Π°ΠΊ ΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… нСточностСй ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… понятий ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ спСцификации.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ для intel x86

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:
β€’ ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ прСфиксы (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ прСфикс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 1 Π±Π°ΠΉΡ‚)
β€’ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (1 ΠΈΠ»ΠΈ 2 Π±Π°ΠΉΡ‚Π°)
β€’ Mod_R/M – Π±Π°ΠΉΡ‚ΠΈΠΊ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ структуру ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ β€” ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ.
β€’ ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΈΠ½ΠΎΠ³Π΄Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ поля SIB[Scale, Index, Base], смСщСния ΠΈ нСпосрСдствСнного значСния).

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСфиксы:
ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΡˆΠ΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ сСгмСнтный рСгистр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ячСйкС памяти.
β€’ 0x26 – прСфикс Π·Π°ΠΌΠ΅Π½Ρ‹ сСгмСнта ES
β€’ 0x2E – прСфикс Π·Π°ΠΌΠ΅Π½Ρ‹ сСгмСнта CS
β€’ 0x36 – прСфикс Π·Π°ΠΌΠ΅Π½Ρ‹ сСгмСнта SS
β€’ 0x3E – прСфикс Π·Π°ΠΌΠ΅Π½Ρ‹ сСгмСнта DS
β€’ 0x64 – прСфикс Π·Π°ΠΌΠ΅Π½Ρ‹ сСгмСнта FS
β€’ 0x65 – прСфикс Π·Π°ΠΌΠ΅Π½Ρ‹ сСгмСнта GS

β€’ 0x0F – прСфикс Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π·Π° настоящий прСфикс – Π² этом случаС считаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 0x0F)

β€’ 0x66 – прСфикс пСрСопрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, вмСсто рСгистра eax Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ax)
β€’ 0x67 – прСфикс пСрСопрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° адрСса (см Π½ΠΈΠΆΠ΅)
β€’ 0x9B – прСфикс оТидания (WAIT)
β€’ 0xF0 – прСфикс Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (LOCK с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСализуСтся синхронизация ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ)
β€’ 0xF2 – прСфикс ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΡŒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ REPNZ – Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π±Π°ΠΉΡ‚ (строками)
β€’ 0xF3 – прСфикс ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΡŒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ REP – Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π±Π°ΠΉΡ‚ (строками)

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих прСфиксов мСняСт сСмантику ΠΈ (ΠΈΠ»ΠΈ) структуру машинной инструкции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅Π΅ Π΄Π»ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ).

ΠžΠΏΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄.
Опкод ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½, ΠΈΠ½ΠΎΠ³Π΄Π° вмСсти с прСфиксом (Π°ΠΌΠΈ) ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ опрСдСляСт ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΡƒ (Π½Π°Π·Π²Π°Π½ΠΈΠ΅) ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Команд ΠΌΠ½ΠΎΠ³ΠΎ. И ΠΏΡ€ΠΈ услоТнСнии соврСмСнных микропроцСссоров ΠΈΡ… количСство Π½Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ – Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ, Π° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Π½Π΅ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ (обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ). Бписок ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ассоциированных с Π½ΠΈΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сайтах ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ микропроцСссоров.

Π‘Π°ΠΉΡ‚ Mod_R/M состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ:

β€’ Mod – ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π±ΠΈΡ‚Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 3)
β€’ R/M – ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ Π±ΠΈΡ‚Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 7)
β€’ Value of ModR/M – ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ Π±ΠΈΡ‚Π° (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 7)

Для написания дизассСмблСра ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ страничку: http://ref.x86asm.net/geek32.html.

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ нСсколько Ρ‚Π°Π±Π»ΠΈΡ†. Π’ сущности, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ описаниС ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ Π½Π°ΠΌ ΠΈ понадобятся, для написания дизассСмблСра. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ трСбуСтся ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊ логичСскому Ρ€Π°ΡΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΈ свободноС врСмя.
Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ прСдставлСн список ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π΅ содСрТащих прСфикс 0x0F. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ список ΠΊΠΎΠΌΠ°Π½Π΄ содСрТащих этот прСфикс (Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих ΠΊΠΎΠΌΠ°Π½Π΄ появились Π² микропроцСссорах сСмСйства β€œPentium with MMX” ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ…).
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ Mod_R/M Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для 32-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ каТдая ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΈΠ· этих Ρ‚Ρ€Π΅Ρ… Ρ‚Π°Π±Π»ΠΈΡ† уточняСт Ρ€Π°Π·Π±ΠΎΡ€ Mod_R/M Π±Π°ΠΉΡ‚Π° частных случаСв ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.
ПослСдняя Ρ‚Π°Π±Π»ΠΈΡ†Π° позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ Mod_R/M Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для 16-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ считаСтся, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° кодируСтся Π² 32-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Для смСны Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСфикс пСрСопрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° адрСса (0x67).

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это пСрСнСсти ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ структуры Π΄Π°Π½Π½Ρ‹Ρ…. На Ρ‚ΠΎΠΌ ΠΆΠ΅ сайтС ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ xml-вСрсии Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΈ ΡƒΠΆΠ΅ ΠΈΡ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² красивыС ΡΠΈΡˆΠ½Ρ‹Π΅ структуры. Π― ΠΆΠ΅ поступил ΠΈΠ½Π°Ρ‡Π΅ – Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» html Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Excel, ΠΈ ΡƒΠΆΠ΅ Ρ‚Π°ΠΌ, написав нСслоТный скриптик Π½Π° VBA, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» исходный ΡΠΈΡˆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΡƒΠΆΠ΅ послС Ρ€ΡƒΡ‡Π½Ρ‹Ρ… исправлСний прСдставлял собой Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π°ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дизассСмблирования достаточно прост:

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

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ»Π΅Π±Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ нуля Π΄ΠΎ Ρ‚Ρ€Π΅Ρ…. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ содСрТат Π±ΠΎΠ»Π΅Π΅ сотни Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ – Ρƒ Π½ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ названия, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Mod_R/M Π±Π°ΠΉΡ‚Π° (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ²) Ρƒ Π½ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°.

Для просмотра ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° дизассСмблирования ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€œHello world” ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ дизассСмблСра для компилятора C++ Builder 6.

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

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

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ? Волько ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ понятно.

Π²ΠΎΡ‚ этот ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ Π΅ΡΡ‚ΡŒ дизассСмблированиС.

ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½Π° Π½Π΅ просила ΠΊΠ»ΡŽΡ‡ рСгистрации ΠΈ Ρ‡Ρ‚ΠΎ Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² этом Ρ€ΠΎΠ΄Π΅

ДизассС́мблСр β€” транслятор, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС ассСмблСра.

По Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ дСлятся Π½Π°

АвтоматичСскиС
Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ автоматичСских дизассСмблСров ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Sourcer. Π’Π°ΠΊΠΈΠ΅ дизассСмблСры Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ листинг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ β€” IDA. Он позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° дизассСмблирования ΠΈ являСтся вСсьма ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ инструмСнтом для исслСдования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

Π±Ρ‹Π»ΠΎ: AE 00
Π° стало: mov ax, 0

ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² ΠΌΠ΅ΠΌΠΎ-ΠΊΠΎΠ΄

ДизассС́мблСр β€” транслятор, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС ассСмблСра.

По Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ дСлятся Π½Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ автоматичСских дизассСмблСров ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Sourcer[1]. Π’Π°ΠΊΠΈΠ΅ дизассСмблСры Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ листинг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ β€” IDA. Он позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° дизассСмблирования ΠΈ являСтся вСсьма ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ инструмСнтом для исслСдования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

Π§Π°Ρ‰Π΅ всСго дизассСмблСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΈΠ»ΠΈ Π΅Ρ‘ части), исходный тСкст ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСизвСстСн β€” с Ρ†Π΅Π»ΡŒΡŽ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, копирования ΠΈΠ»ΠΈ Π²Π·Π»ΠΎΠΌΠ°. Π Π΅ΠΆΠ΅ β€” для поиска ошибок (Π±Π°Π³ΠΎΠ²) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ компиляторах, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ создаваСмого компилятором машинного ΠΊΠΎΠ΄Π°.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹ΠΉ дизассСмблСр (ΠΊΠ°ΠΊ ΠΈ построчный ассСмблСр) являСтся составной Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

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

ДизассСмблированиС

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ дизассСмблСрах, ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠ· сСбя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈ рассмотрим ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ дизассСмблСр?

ДизассСмблированиС – это опСрация, обратная Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚.Π΅. восстановлСниС тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ассСмблСрС ΠΈΠ· исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ….

Π‘Ρ€Π°Π·Ρƒ Π·Π°Π±Π΅Π³Ρƒ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ Π²ΠΏΠ΅Ρ€Ρ‘Π΄ ΠΈ скаТу, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ ассСмблировании восстановлСнного тСкста, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΊΠΎΠ΄, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π΅ΡΡ‚ΡŒ шанс, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° откаТСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π›ΡŽΠ±Π°Ρ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ дизассСмблированного тСкста ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π²Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ассСмблСр замСняСт всС ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° константы. ΠŸΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ссылки Π½Π° ΠΌΠ΅Ρ‚ΠΊΠΈ.

Π’ΠΈΠ΄Ρ‹ дизассСмблСров

По Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ дизассСмблСры дСлятся Π½Π° автоматичСскиС ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ автоматичСского дизассСмблСра являСтся Sourcer.
Π’Π°ΠΊΠΈΠ΅ дизассСмблСры Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ листинг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

По числу просмотров ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° дизассСмблСры дСлятся Π½Π° ΠΎΠ΄Π½ΠΎ-, Π΄Π²ΡƒΡ…- ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹Π΅.

ΠžΠ΄Π½ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹Π΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ «дизассСмблСрами Π±Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠΊΒ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² основном Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°Ρ… ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°Ρ… ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ псСвдоассСмблСрный тСкст.

НаиболСС распространСны Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Ρ‹Π΅ дизассСмблСры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² листингС дизассСмблирования, Π½ΠΎ, Π½Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ раздСлСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ПослС Π½ΠΈΡ… программист Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ» подправляСт ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ мСста.

НазначСниС дизассСмблСра

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

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

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

Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ поставки входят нСсколько ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° LST2ASM, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ листинги Π² ассСмблСрный тСкст, ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° PATCHER, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

BIOS Pre-Processor позволяСт (совмСстно с SOURCER) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ исходный тСкст Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (BIOS), установлСнной Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π—Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ? Для изучСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ BIOS, для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π² BIOS, для исправлСния ошибок, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² рядС Π΄Ρ€ΡƒΠ³ΠΈΡ… случаСв. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ листинга для BIOS ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΎΡ‚ 10 ΠΌΠΈΠ½ΡƒΡ‚ Π΄ΠΎ 2 часов, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ стоит Ρ‚ΠΎΠ³ΠΎ.

BIOSPre-Processor Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π‘Π½Π°Ρ‡Π°Π»Π° анализируСтся Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈ находятся Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. ΠŸΠΎΡ‚ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ области Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€. Π—Π°Ρ‚Π΅ΠΌ опрСдСляСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ BIOS ΠΈ вся нСобходимая информация заносится Π² Ρ„Π°ΠΉΠ» BIOS.DEF, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ обрабатываСтся SOURCER.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ тСкст, Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΉ дизассСмблСром, Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ поддаСтся Ρ€Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π»ΠΈΠ±ΠΎ получаСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Π΅Π΄Π΅Ρ‚ сСбя совсСм Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ хочСтся, Π½ΠΎ ΠΎΠ± этом ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅.

Π—Π°Ρ‰ΠΈΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ дизассСмблирования

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

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для противодСйствия дизассСмблСрам.

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

2. Π‘ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ дизассСмблСр Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния.

2.1. КосвСнная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния.

2.2. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ адрСса ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°Π±Π»ΠΈΡ†Π° 1).

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

ДизассСмблированиС

Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «Π”изассСмблированиС» Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… словарях:

Tool-assisted speedrun β€” (сокращСнно TAS[1]) скоростноС ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ с использованиСм встроСнных инструмСнтов эмулятора, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сохранСниС ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ, Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠΊΠ°Π΄Ρ€ΠΎΠ²Ρ‹ΠΉ Π²Π²ΠΎΠ΄, просмотр содСрТимого памяти ΠΈ Π°Π½Π°Π»ΠΈΠ· исполняСмого ΠΊΠΎΠ΄Π°. ИдСя TAS… … ВикипСдия

Debug β€” Π’ΠΈΠΏ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Tim Paterson (Π°Π½Π³Π».) ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма DOS, MS DOS, OS/2, Microsoft Windows Π‘Π°ΠΉΡ‚ … ВикипСдия

Π―Π·Ρ‹ΠΊ ассСмблСра β€” Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС ассСмблСра Motorola MC6800 (слСва ΠΈΠ΄ΡƒΡ‚ адрСса ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС, вычислСнныС ΠΈ сгСнСрированн … ВикипСдия

АссСмблСр β€” Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. О языкС программирования см. Π―Π·Ρ‹ΠΊ ассСмблСра. АссСмблСр (ΠΎΡ‚ Π°Π½Π³Π». assembler сборщик) ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, компилятор исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной Π½Π° языкС… … ВикипСдия

ДизассСмблСр β€” транслятор, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС ассСмблСра. По Ρ€Π΅ΠΆΠΈΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ дСлятся Π½Π° АвтоматичСскиС Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ автоматичСских дизассСмблСров ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒβ€¦ … ВикипСдия

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ β€” Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ описаниС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Β«ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡΒ»; см. Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»ΠΈ тСхничСскоС срСдство, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ.[1][2][3] ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ трансляция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, составлСнной Π½Π° исходном языкС высокого… … ВикипСдия

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° β€” Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π» нуТдаСтся Π² ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ написания статСй … ВикипСдия

Π’Π·Π»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния β€” (Π°Π½Π³Π». software cracking) дСйствия, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° устранСниС Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (ПО), встроСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ для ограничСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. ПослСднСС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для стимуляции ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ такого… … ВикипСдия

Π”ΠΎΠ½Π³Π» β€” Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (Ρ‚Π°ΠΊΠΆΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ½Π³Π» ΠΎΡ‚ Π°Π½Π³Π». dongle) Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ срСдство, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния (ПО) ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ копирования, нСлСгального использования ΠΈ нСсанкционированного распространСния.… … ВикипСдия

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слова Β«Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ»

Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚

Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΜΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π”Π΅Π»Π°Π΅ΠΌ ΠšΠ°Ρ€Ρ‚Ρƒ слов Π»ΡƒΡ‡ΡˆΠ΅ вмСстС

Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Π€ΠΎΡ‚ΠΎ Π”Π΅Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ΠŸΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ Π›Π°ΠΌΠΏΠΎΠ±ΠΎΡ‚, я ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠšΠ°Ρ€Ρ‚Ρƒ слов. Π― ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡƒΠΌΠ΅ΡŽ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΏΠ»ΠΎΡ…ΠΎ понимаю, ΠΊΠ°ΠΊ устроСн ваш ΠΌΠΈΡ€. Помоги ΠΌΠ½Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ!

Бпасибо! Π― стал Ρ‡ΡƒΡ‚ΠΎΡ‡ΠΊΡƒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠΈΡ€ эмоций.

Вопрос: Π³ΠΎΠ³ΠΎΡ‚Π°Π½ΡŒΠ΅ β€” это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅?

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ со словом Β«Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ&raquo

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ со словом Β«Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ&raquo

Если это простоС Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ с использованиСм экспСримСнта ΠΈ Π΄ΠΎΠ³Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Но Ρ‚Ρ‹ ΠΏΠΎΠΉΠΌΠΈ, Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ зная систСму ΠΊΠΎΠΌΠ°Π½Π΄ процСссора, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ этот ΠΊΠΎΠ΄ написан, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ этот ΠΊΠΎΠ΄ выполняСт.

ПослС запуска IDA ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ 3 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° продолТСния: Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (new), ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π±Π΅Π· Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° (go), ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ дизассСмблированный Ρ„Π°ΠΉΠ» (previous).

ΠŸΡ€Π°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅

ΠšΠ°Ρ€Ρ‚Π° слов ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ русского языка

Онлайн-тСзаурус с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска ассоциаций, синонимов, контСкстных связСй ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ словам ΠΈ выраТСниям русского языка.

Бправочная информация ΠΏΠΎ склонСнию ΠΈΠΌΡ‘Π½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, ΡΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡŽ Π³Π»Π°Π³ΠΎΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΡ€Ρ„Π΅ΠΌΠ½ΠΎΠΌΡƒ ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ слов.

Π‘Π°ΠΉΡ‚ оснащён ΠΌΠΎΡ‰Π½ΠΎΠΉ систСмой поиска с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ русской ΠΌΠΎΡ€Ρ„ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

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

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

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