.. | ||
blobrunner.md | ||
README.md |
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Przewodnik po dekompilacji Wasm i kompilacji Wat
W dziedzinie WebAssembly narzędzia do dekompilacji i kompilacji są niezbędne dla programistów. Ten przewodnik wprowadza niektóre zasoby online i oprogramowanie do obsługi plików Wasm (WebAssembly binary) i Wat (WebAssembly text).
Narzędzia online
- Aby dekompilować Wasm do Wat, przydatne jest narzędzie dostępne w demonstracji wasm2wat Wabt.
- Do kompilacji Wat z powrotem do Wasm służy demonstracja wat2wasm Wabt.
- Inną opcję dekompilacji można znaleźć w web-wasmdec.
Rozwiązania programowe
- Dla bardziej zaawansowanego rozwiązania, JEB od PNF Software oferuje rozbudowane funkcje.
- Otwarty projekt wasmdec jest również dostępny do zadań dekompilacji.
Zasoby do dekompilacji .Net
Dekompilacja zestawów .Net może być realizowana za pomocą narzędzi takich jak:
- ILSpy, które oferuje również wtyczkę do Visual Studio Code, umożliwiającą użycie na różnych platformach.
- Do zadań związanych z dekompilacją, modyfikacją i rekompilacją zaleca się dnSpy. Kliknięcie prawym przyciskiem na metodzie i wybranie Modify Method umożliwia zmiany w kodzie.
- dotPeek od JetBrains to kolejna alternatywa do dekompilacji zestawów .Net.
Ulepszanie debugowania i logowania z DNSpy
Logowanie DNSpy
Aby logować informacje do pliku za pomocą DNSpy, wprowadź następujący fragment kodu .Net:
%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Hasło: " + password + "\n"); %%%
Debugowanie DNSpy
Aby skutecznie debugować za pomocą DNSpy, zaleca się sekwencję kroków w celu dostosowania atrybutów zestawu do debugowania, zapewniając, że optymalizacje, które mogą utrudniać debugowanie, są wyłączone. Proces ten obejmuje zmianę ustawień DebuggableAttribute
, rekompilację zestawu i zapisanie zmian.
Ponadto, aby debugować aplikację .Net uruchamianą przez IIS, wykonanie iisreset /noforce
restartuje IIS. Aby dołączyć DNSpy do procesu IIS w celu debugowania, przewodnik instruuje, aby wybrać proces w3wp.exe w DNSpy i rozpocząć sesję debugowania.
Aby uzyskać pełny widok załadowanych modułów podczas debugowania, zaleca się dostęp do okna Modules w DNSpy, a następnie otwarcie wszystkich modułów i posortowanie zestawów dla łatwiejszej nawigacji i debugowania.
Ten przewodnik podsumowuje istotę dekompilacji WebAssembly i .Net, oferując ścieżkę dla programistów do łatwego poruszania się po tych zadaniach.
Dekompilator Java
Aby dekompilować bajtkod Java, te narzędzia mogą być bardzo pomocne:
Debugowanie DLL
Używając IDA
- Rundll32 jest ładowany z określonych ścieżek dla wersji 64-bitowych i 32-bitowych.
- Windbg jest wybierany jako debugger z włączoną opcją wstrzymywania przy ładowaniu/wyładowywaniu biblioteki.
- Parametry wykonania obejmują ścieżkę DLL i nazwę funkcji. Ta konfiguracja zatrzymuje wykonanie przy każdym ładowaniu DLL.
Używając x64dbg/x32dbg
- Podobnie jak w IDA, rundll32 jest ładowany z modyfikacjami wiersza poleceń, aby określić DLL i funkcję.
- Ustawienia są dostosowywane, aby przerwać przy wejściu DLL, co pozwala na ustawienie punktu przerwania w żądanym punkcie wejścia DLL.
Obrazy
- Punkty zatrzymania wykonania i konfiguracje są ilustrowane za pomocą zrzutów ekranu.
ARM i MIPS
- Do emulacji, arm_now jest przydatnym zasobem.
Shellcodes
Techniki debugowania
- Blobrunner i jmp2it to narzędzia do alokacji shellcodów w pamięci i debugowania ich za pomocą Ida lub x64dbg.
- Blobrunner wydania
- jmp2it skompilowana wersja
- Cutter oferuje emulację shellcode w oparciu o GUI i inspekcję, podkreślając różnice w obsłudze shellcode jako pliku w porównaniu do bezpośredniego shellcode.
Deobfuskacja i analiza
-
scdbg dostarcza informacji o funkcjach shellcode i możliwościach deobfuskacji. %%%bash scdbg.exe -f shellcode # Podstawowe informacje scdbg.exe -f shellcode -r # Raport analizy scdbg.exe -f shellcode -i -r # Interaktywne haki scdbg.exe -f shellcode -d # Zrzut zdekodowanego shellcode scdbg.exe -f shellcode /findsc # Znajdź offset startowy scdbg.exe -f shellcode /foff 0x0000004D # Wykonaj z offsetu %%%
-
CyberChef do dezasemblacji shellcode: przepis CyberChef
Movfuscator
- Obfuskator, który zastępuje wszystkie instrukcje
mov
. - Przydatne zasoby to wyjaśnienie na YouTube i slajdy PDF.
- demovfuscator może odwrócić obfuskację movfuscatora, wymagając zależności takich jak
libcapstone-dev
ilibz3-dev
, oraz instalacji keystone.
Delphi
- Dla binariów Delphi, zaleca się IDR.
Kursy
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABD
Deobfuskacja binarna
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.