{% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} # ВизначСння ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΡ… Π±Ρ–Π½Π°Ρ€Π½ΠΈΡ… Ρ„Π°ΠΉΠ»Ρ–Π² * **Π²Ρ–Π΄ΡΡƒΡ‚Π½Ρ–ΡΡ‚ΡŒ рядків**: Π—Π°Π·Π²ΠΈΡ‡Π°ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ– Π±Ρ–Π½Π°Ρ€Π½Ρ– Ρ„Π°ΠΉΠ»ΠΈ ΠΌΠ°ΠΉΠΆΠ΅ Π½Π΅ ΠΌΡ–ΡΡ‚ΡΡ‚ΡŒ рядків * Π‘Π°Π³Π°Ρ‚ΠΎ **нСвикористаних рядків**: Π’Π°ΠΊΠΎΠΆ, ΠΊΠΎΠ»ΠΈ ΡˆΠΊΡ–Π΄Π»ΠΈΠ²Π΅ ΠŸΠ— використовує якийсь ΠΊΠΎΠΌΠ΅Ρ€Ρ†Ρ–ΠΉΠ½ΠΈΠΉ ΠΏΠ°ΠΊΡƒΠ²Π°Π»ΡŒΠ½ΠΈΠΊ, Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ ΠΌΠΎΠΆΠ½Π° Π·Π½Π°ΠΉΡ‚ΠΈ Π±Π°Π³Π°Ρ‚ΠΎ рядків Π±Π΅Π· пСрСхрСсних посилань. ΠΠ°Π²Ρ–Ρ‚ΡŒ якщо Ρ†Ρ– рядки Ρ–ΡΠ½ΡƒΡŽΡ‚ΡŒ, Ρ†Π΅ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ Π±Ρ–Π½Π°Ρ€Π½ΠΈΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΉ. * Π’ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ використовувати дСякі інструмСнти, Ρ‰ΠΎΠ± спробувати Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ, який ΠΏΠ°ΠΊΡƒΠ²Π°Π»ΡŒΠ½ΠΈΠΊ Π±ΡƒΠ² використаний для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π±Ρ–Π½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Ρƒ: * [PEiD](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml) * [Exeinfo PE](http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/ExEinfo-PE.shtml) * [Language 2000](http://farrokhi.net/language/) # ΠžΡΠ½ΠΎΠ²Π½Ρ– Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†Ρ–Ρ— * **ΠŸΠΎΡ‡Π½Ρ–Ρ‚ΡŒ** Π°Π½Π°Π»Ρ–Π·ΡƒΠ²Π°Ρ‚ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΉ Π±Ρ–Π½Π°Ρ€Π½ΠΈΠΉ Ρ„Π°ΠΉΠ» **Π·Π½ΠΈΠ·Ρƒ Π² IDA Ρ– рухайтСся Π²Π³ΠΎΡ€Ρƒ**. Π ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²ΡƒΠ²Π°Ρ‡Ρ– Π²ΠΈΡ…ΠΎΠ΄ΡΡ‚ΡŒ, ΠΊΠΎΠ»ΠΈ Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ΄ Π²ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ, Ρ‚ΠΎΠΌΡƒ ΠΌΠ°Π»ΠΎΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, Ρ‰ΠΎ Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²ΡƒΠ²Π°Ρ‡ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡΡ‚ΡŒ виконання Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π½Π° ΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ. * Π¨ΡƒΠΊΠ°ΠΉΡ‚Π΅ **JMP** Π°Π±ΠΎ **CALL** Π΄ΠΎ **рСєстрів** Π°Π±ΠΎ **областСй** **ΠΏΠ°ΠΌ'яті**. Π’Π°ΠΊΠΎΠΆ ΡˆΡƒΠΊΠ°ΠΉΡ‚Π΅ **Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, Ρ‰ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Ρ‚Π° адрСсу, Π° ΠΏΠΎΡ‚Ρ–ΠΌ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡŽΡ‚ΡŒ `retn`**, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ повСрнСння Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Π² Ρ†ΡŒΠΎΠΌΡƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ адрСсу, яка Ρ‚Ρ–Π»ΡŒΠΊΠΈ Ρ‰ΠΎ Π±ΡƒΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Π² стСк. * ΠŸΠΎΡΡ‚Π°Π²Ρ‚Π΅ **Ρ‚ΠΎΡ‡ΠΊΡƒ Π·ΡƒΠΏΠΈΠ½ΠΊΠΈ** Π½Π° `VirtualAlloc`, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ Ρ†Π΅ виділяє місцС Π² ΠΏΠ°ΠΌ'яті, Π΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΌΠΎΠΆΠ΅ записувати Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ΄. "Π—Π°ΠΏΡƒΡΡ‚Ρ–Ρ‚ΡŒ Π΄ΠΎ ΠΊΠΎΠ΄Ρƒ користувача" Π°Π±ΠΎ використовуйтС F8, Ρ‰ΠΎΠ± **ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ значСння Π² EAX** після виконання Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Ρ‚Π° "**слідкуйтС Π·Π° Ρ†Ρ–Ρ”ΡŽ Π°Π΄Ρ€Π΅ΡΠΎΡŽ Π² Π΄Π°ΠΌΠΏΡ–**". Π’ΠΈ Π½Ρ–ΠΊΠΎΠ»ΠΈ Π½Π΅ Π·Π½Π°Ρ”Ρ‚Π΅, Ρ‡ΠΈ Ρ†Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π΄Π΅ Π±ΡƒΠ΄Π΅ Π·Π±Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΎ Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ΄. * **`VirtualAlloc`** Π·Ρ– значСнням "**40**" як Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ” Читання+Запис+Виконання (дСякий ΠΊΠΎΠ΄, який ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡ” виконання, Π±ΡƒΠ΄Π΅ скопійовано сюди). * **ΠŸΡ–Π΄ час розпакування** ΠΊΠΎΠ΄Ρƒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΠΈ **ΠΊΡ–Π»ΡŒΠΊΠ° Π²ΠΈΠΊΠ»ΠΈΠΊΡ–Π²** Π΄ΠΎ **Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ** Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ, Ρ‚Π°ΠΊΠΈΡ… як **`memcopy`** Π°Π±ΠΎ **`Virtual`**`Alloc`. Π―ΠΊΡ‰ΠΎ Π²ΠΈ опинитСся Π² Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, яка, Π·Π΄Π°Ρ”Ρ‚ΡŒΡΡ, Π²ΠΈΠΊΠΎΠ½ΡƒΡ” лишС Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π½Ρ– ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— Ρ–, ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ, дСякий `memcopy`, рСкомСндація полягає Π² Ρ‚ΠΎΠΌΡƒ, Ρ‰ΠΎΠ± спробувати **Π·Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ–Π½Π΅Ρ†ΡŒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—** (ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ, JMP Π°Π±ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊ Π΄ΠΎ якогось рСєстру) **Π°Π±ΠΎ** ΠΏΡ€ΠΈΠ½Π°ΠΉΠΌΠ½Ρ– **Π²ΠΈΠΊΠ»ΠΈΠΊ Π΄ΠΎ ΠΎΡΡ‚Π°Π½Π½ΡŒΠΎΡ— Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—** Ρ– запустити Π΄ΠΎ Π½Π΅Ρ—, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ ΠΊΠΎΠ΄ Π½Π΅ Ρ” Ρ†Ρ–ΠΊΠ°Π²ΠΈΠΌ. * ΠŸΡ–Π΄ час розпакування ΠΊΠΎΠ΄Ρƒ **Π·Π²Π΅Ρ€Ρ‚Π°ΠΉΡ‚Π΅ ΡƒΠ²Π°Π³Ρƒ** Π½Π° Ρ‚Π΅, ΠΊΠΎΠ»ΠΈ Π²ΠΈ **Π·ΠΌΡ–Π½ΡŽΡ”Ρ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠ°ΠΌ'яті**, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ Π·ΠΌΡ–Π½Π° області ΠΏΠ°ΠΌ'яті ΠΌΠΎΠΆΠ΅ Π²ΠΊΠ°Π·ΡƒΠ²Π°Ρ‚ΠΈ Π½Π° **ΠΏΠΎΡ‡Π°Ρ‚ΠΎΠΊ розпакування ΠΊΠΎΠ΄Ρƒ**. Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ скинути ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠ°ΠΌ'яті, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ Process Hacker (процСс --> властивості --> ΠΏΠ°ΠΌ'ΡΡ‚ΡŒ). * ΠŸΡ–Π΄ час спроби Ρ€ΠΎΠ·ΠΏΠ°ΠΊΡƒΠ²Π°Ρ‚ΠΈ ΠΊΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ спосіб **Π·Π½Π°Ρ‚ΠΈ, Ρ‡ΠΈ Π²ΠΈ Π²ΠΆΠ΅ ΠΏΡ€Π°Ρ†ΡŽΡ”Ρ‚Π΅ Π· Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ** (Ρ‰ΠΎΠ± Π²ΠΈ ΠΌΠΎΠ³Π»ΠΈ просто скинути ΠΉΠΎΠ³ΠΎ) - Ρ†Π΅ **ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚ΠΈ рядки Π±Ρ–Π½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Ρƒ**. Π―ΠΊΡ‰ΠΎ Π² якийсь ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²ΠΈ Π²ΠΈΠΊΠΎΠ½ΡƒΡ”Ρ‚Π΅ стрибок (ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ, Π·ΠΌΡ–Π½ΡŽΡŽΡ‡ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠ°ΠΌ'яті) Ρ– ΠΏΠΎΠΌΡ–Ρ‡Π°Ρ”Ρ‚Π΅, Ρ‰ΠΎ **Π΄ΠΎΠ΄Π°Π½ΠΎ Π½Π°Π±Π°Π³Π°Ρ‚ΠΎ Π±Ρ–Π»ΡŒΡˆΠ΅ рядків**, Ρ‚ΠΎΠ΄Ρ– Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΠΈ, Ρ‰ΠΎ **ΠΏΡ€Π°Ρ†ΡŽΡ”Ρ‚Π΅ Π· Ρ€ΠΎΠ·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ**.\ Однак, якщо ΠΏΠ°ΠΊΡƒΠ²Π°Π»ΡŒΠ½ΠΈΠΊ Π²ΠΆΠ΅ ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ Π±Π°Π³Π°Ρ‚ΠΎ рядків, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ подивитися, ΡΠΊΡ–Π»ΡŒΠΊΠΈ рядків ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ слово "http" Ρ– ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚ΠΈ, Ρ‡ΠΈ Ρ†Π΅ число зростає. * Коли Π²ΠΈ скидаєтС Π²ΠΈΠΊΠΎΠ½ΡƒΠ²Π°Π½ΠΈΠΉ Ρ„Π°ΠΉΠ» Π· області ΠΏΠ°ΠΌ'яті, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΏΡ€Π°Π²ΠΈΡ‚ΠΈ дСякі Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ [PE-bear](https://github.com/hasherezade/pe-bear-releases/releases).