11 KiB
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Посібник з декомпіляції Wasm та компіляції Wat
У сфері WebAssembly інструменти для декомпіляції та компіляції є необхідними для розробників. Цей посібник представляє деякі онлайн-ресурси та програмне забезпечення для роботи з Wasm (бінарний формат WebAssembly) та Wat (текстовий формат WebAssembly) файлами.
Онлайн інструменти
- Для декомпіляції Wasm у Wat, корисним є інструмент на демо wasm2wat від Wabt.
- Для компіляції Wat назад у Wasm, демо wat2wasm від Wabt виконує цю функцію.
- Інший варіант декомпіляції можна знайти на web-wasmdec.
Програмні рішення
- Для більш надійного рішення, JEB від PNF Software пропонує розширені функції.
- Відкритий проект wasmdec також доступний для завдань декомпіляції.
Ресурси для декомпіляції .Net
Декомпіляцію .Net збірок можна виконати за допомогою таких інструментів:
- ILSpy, який також пропонує плагін для Visual Studio Code, що дозволяє крос-платформне використання.
- Для завдань, що включають декомпіляцію, модифікацію та рекомпіляцію, dnSpy настійно рекомендується. Клацання правою кнопкою на методі та вибір Modify Method дозволяє вносити зміни в код.
- JetBrains' dotPeek є ще одним альтернативним інструментом для декомпіляції .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 байт-коду ці інструменти можуть бути дуже корисними:
Налагодження DLL
Використання IDA
- Rundll32 завантажується з певних шляхів для 64-бітних та 32-бітних версій.
- Windbg обирається як налагоджувач з можливістю призупинення при завантаженні/вивантаженні бібліотеки.
- Параметри виконання включають шлях до DLL та ім'я функції. Ця конфігурація зупиняє виконання при кожному завантаженні DLL.
Використання x64dbg/x32dbg
- Подібно до IDA, rundll32 завантажується з модифікаціями командного рядка для вказівки DLL та функції.
- Налаштування коригуються для зупинки на вході DLL, що дозволяє встановлювати точки зупинки на бажаній точці входу DLL.
Зображення
- Точки зупинки виконання та конфігурації ілюструються через скріншоти.
ARM & MIPS
- Для емуляції arm_now є корисним ресурсом.
Shellcodes
Техніки налагодження
- Blobrunner та jmp2it є інструментами для виділення shellcodes в пам'яті та їх налагодження з Ida або x64dbg.
- Blobrunner релізи
- jmp2it скомпільована версія
- 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
Movfuscator
- Обфускатор, який замінює всі інструкції на
mov
. - Корисні ресурси включають пояснення на YouTube та PDF слайди.
- demovfuscator може скасувати обфускацію movfuscator, вимагаючи залежностей, таких як
libcapstone-dev
таlibz3-dev
, а також встановлення keystone.
Delphi
- Для бінарних файлів Delphi рекомендується IDR.
Курси
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABD
Деобфускація бінарних файлів
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.