mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 16:10:54 +00:00
129 lines
11 KiB
Markdown
129 lines
11 KiB
Markdown
{% hint style="success" %}
|
||
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримайте HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
# Посібник з декомпіляції Wasm та компіляції Wat
|
||
|
||
У сфері **WebAssembly** інструменти для **декомпіляції** та **компіляції** є необхідними для розробників. Цей посібник представляє деякі онлайн-ресурси та програмне забезпечення для роботи з **Wasm (бінарний формат WebAssembly)** та **Wat (текстовий формат WebAssembly)** файлами.
|
||
|
||
## Онлайн інструменти
|
||
|
||
- Для **декомпіляції** Wasm у Wat, корисним є інструмент на [демо wasm2wat від Wabt](https://webassembly.github.io/wabt/demo/wasm2wat/index.html).
|
||
- Для **компіляції** Wat назад у Wasm, [демо wat2wasm від Wabt](https://webassembly.github.io/wabt/demo/wat2wasm/) виконує цю функцію.
|
||
- Інший варіант декомпіляції можна знайти на [web-wasmdec](https://wwwg.github.io/web-wasmdec/).
|
||
|
||
## Програмні рішення
|
||
|
||
- Для більш надійного рішення, [JEB від PNF Software](https://www.pnfsoftware.com/jeb/demo) пропонує розширені функції.
|
||
- Відкритий проект [wasmdec](https://github.com/wwwg/wasmdec) також доступний для завдань декомпіляції.
|
||
|
||
# Ресурси для декомпіляції .Net
|
||
|
||
Декомпіляцію .Net збірок можна виконати за допомогою таких інструментів:
|
||
|
||
- [ILSpy](https://github.com/icsharpcode/ILSpy), який також пропонує [плагін для Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode), що дозволяє крос-платформне використання.
|
||
- Для завдань, що включають **декомпіляцію**, **модифікацію** та **рекомпіляцію**, [dnSpy](https://github.com/0xd4d/dnSpy/releases) настійно рекомендується. **Клацання правою кнопкою** на методі та вибір **Modify Method** дозволяє вносити зміни в код.
|
||
- [JetBrains' dotPeek](https://www.jetbrains.com/es-es/decompiler/) є ще одним альтернативним інструментом для декомпіляції .Net збірок.
|
||
|
||
## Покращення налагодження та ведення журналів з DNSpy
|
||
|
||
### Ведення журналів DNSpy
|
||
Щоб записати інформацію у файл за допомогою DNSpy, включіть наступний фрагмент коду .Net:
|
||
|
||
%%%cpp
|
||
using System.IO;
|
||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||
File.AppendAllText(path, "Password: " + password + "\n");
|
||
%%%
|
||
|
||
### Налагодження DNSpy
|
||
Для ефективного налагодження з DNSpy рекомендується виконати послідовність кроків для налаштування **атрибутів збірки** для налагодження, забезпечуючи, щоб оптимізації, які можуть заважати налагодженню, були вимкнені. Цей процес включає зміну налаштувань `DebuggableAttribute`, рекомпіляцію збірки та збереження змін.
|
||
|
||
Більше того, щоб налагодити .Net додаток, запущений через **IIS**, виконання `iisreset /noforce` перезапускає IIS. Щоб приєднати DNSpy до процесу IIS для налагодження, посібник інструктує про вибір процесу **w3wp.exe** в DNSpy та початок сесії налагодження.
|
||
|
||
Для всебічного перегляду завантажених модулів під час налагодження рекомендується отримати доступ до вікна **Modules** в DNSpy, після чого відкрити всі модулі та відсортувати збірки для легшої навігації та налагодження.
|
||
|
||
Цей посібник охоплює суть декомпіляції WebAssembly та .Net, пропонуючи шлях для розробників, щоб легко виконувати ці завдання.
|
||
|
||
## **Java Декомпілятор**
|
||
Для декомпіляції Java байт-коду ці інструменти можуть бути дуже корисними:
|
||
- [jadx](https://github.com/skylot/jadx)
|
||
- [JD-GUI](https://github.com/java-decompiler/jd-gui/releases)
|
||
|
||
## **Налагодження DLL**
|
||
### Використання IDA
|
||
- **Rundll32** завантажується з певних шляхів для 64-бітних та 32-бітних версій.
|
||
- **Windbg** обирається як налагоджувач з можливістю призупинення при завантаженні/вивантаженні бібліотеки.
|
||
- Параметри виконання включають шлях до DLL та ім'я функції. Ця конфігурація зупиняє виконання при кожному завантаженні DLL.
|
||
|
||
### Використання x64dbg/x32dbg
|
||
- Подібно до IDA, **rundll32** завантажується з модифікаціями командного рядка для вказівки DLL та функції.
|
||
- Налаштування коригуються для зупинки на вході DLL, що дозволяє встановлювати точки зупинки на бажаній точці входу DLL.
|
||
|
||
### Зображення
|
||
- Точки зупинки виконання та конфігурації ілюструються через скріншоти.
|
||
|
||
## **ARM & MIPS**
|
||
- Для емуляції [arm_now](https://github.com/nongiach/arm_now) є корисним ресурсом.
|
||
|
||
## **Shellcodes**
|
||
### Техніки налагодження
|
||
- **Blobrunner** та **jmp2it** є інструментами для виділення shellcodes в пам'яті та їх налагодження з Ida або x64dbg.
|
||
- Blobrunner [релізи](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)
|
||
- jmp2it [скомпільована версія](https://github.com/adamkramer/jmp2it/releases/)
|
||
- **Cutter** пропонує емуляцію shellcode на основі GUI та інспекцію, підкреслюючи відмінності в обробці shellcode як файлу в порівнянні з прямим shellcode.
|
||
|
||
### Деобфускація та аналіз
|
||
- **scdbg** надає інформацію про функції shellcode та можливості деобфускації.
|
||
%%%bash
|
||
scdbg.exe -f shellcode # Основна інформація
|
||
scdbg.exe -f shellcode -r # Звіт з аналізу
|
||
scdbg.exe -f shellcode -i -r # Інтерактивні хуки
|
||
scdbg.exe -f shellcode -d # Вивантажити декодований shellcode
|
||
scdbg.exe -f shellcode /findsc # Знайти початковий зсув
|
||
scdbg.exe -f shellcode /foff 0x0000004D # Виконати з зсуву
|
||
%%%
|
||
|
||
- **CyberChef** для дизасемблювання shellcode: [Рецепт CyberChef](https://gchq.github.io/CyberChef/#recipe=To_Hex%28'Space',0%29Disassemble_x86%28'32','Full%20x86%20architecture',16,0,true,true%29)
|
||
|
||
## **Movfuscator**
|
||
- Обфускатор, який замінює всі інструкції на `mov`.
|
||
- Корисні ресурси включають [пояснення на YouTube](https://www.youtube.com/watch?v=2VF_wPkiBJY) та [PDF слайди](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas_2015_the_movfuscator.pdf).
|
||
- **demovfuscator** може скасувати обфускацію movfuscator, вимагаючи залежностей, таких як `libcapstone-dev` та `libz3-dev`, а також встановлення [keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md).
|
||
|
||
## **Delphi**
|
||
- Для бінарних файлів Delphi рекомендується [IDR](https://github.com/crypto2011/IDR).
|
||
|
||
|
||
# Курси
|
||
|
||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse_ReverseEngineering)
|
||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) \(Деобфускація бінарних файлів\)
|
||
|
||
|
||
|
||
{% hint style="success" %}
|
||
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Підтримайте HackTricks</summary>
|
||
|
||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
|
||
|
||
</details>
|
||
{% endhint %}
|