8.4 KiB
{% hint style="success" %}
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstütze HackTricks
- Überprüfe die Abonnementpläne!
- Tritt der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.
Wasm-Dekompilierung und Wat-Kompilierungsanleitung
Im Bereich von WebAssembly sind Werkzeuge zum Dekompilieren und Kompilieren für Entwickler unerlässlich. Diese Anleitung stellt einige Online-Ressourcen und Software für den Umgang mit Wasm (WebAssembly-Binärdatei) und Wat (WebAssembly-Text)-Dateien vor.
Online-Tools
- Um Wasm in Wat zu dekodieren, ist das Tool unter Wabt's wasm2wat-Demo nützlich.
- Für die Kompilierung von Wat zurück zu Wasm dient Wabt's wat2wasm-Demo.
- Eine weitere Dekompilierungsoption findet sich unter web-wasmdec.
Softwarelösungen
- Für eine robustere Lösung bietet JEB von PNF Software umfangreiche Funktionen.
- Das Open-Source-Projekt wasmdec steht ebenfalls für Dekompilierungsaufgaben zur Verfügung.
.Net-Dekompilierungsressourcen
Die Dekompilierung von .Net-Assemblies kann mit Tools wie:
- ILSpy erfolgen, das auch ein Plugin für Visual Studio Code anbietet, das plattformübergreifende Nutzung ermöglicht.
- Für Aufgaben, die Dekompilierung, Modifikation und Rekompilierung umfassen, wird dnSpy dringend empfohlen. Rechtsklick auf eine Methode und Auswahl von Methode ändern ermöglicht Codeänderungen.
- JetBrains' dotPeek ist eine weitere Alternative zur Dekompilierung von .Net-Assemblies.
Verbesserung von Debugging und Logging mit DNSpy
DNSpy-Logging
Um Informationen in eine Datei mit DNSpy zu protokollieren, integriere den folgenden .Net-Code-Schnipsel:
%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Passwort: " + password + "\n"); %%%
DNSpy-Debugging
Für effektives Debugging mit DNSpy wird eine Abfolge von Schritten empfohlen, um die Assembly-Attribute für das Debugging anzupassen und sicherzustellen, dass Optimierungen, die das Debugging behindern könnten, deaktiviert sind. Dieser Prozess umfasst das Ändern der DebuggableAttribute
-Einstellungen, das Neukompilieren der Assembly und das Speichern der Änderungen.
Darüber hinaus wird empfohlen, um eine .Net-Anwendung, die von IIS ausgeführt wird, zu debuggen, iisreset /noforce
auszuführen, um IIS neu zu starten. Um DNSpy an den IIS-Prozess zum Debuggen anzuhängen, wird in der Anleitung beschrieben, wie man den w3wp.exe-Prozess innerhalb von DNSpy auswählt und die Debugging-Sitzung startet.
Für eine umfassende Ansicht der geladenen Module während des Debuggings wird empfohlen, das Module-Fenster in DNSpy zu öffnen, gefolgt von der Öffnung aller Module und der Sortierung der Assemblies für eine einfachere Navigation und Debugging.
Diese Anleitung fasst das Wesentliche der WebAssembly- und .Net-Dekompilierung zusammen und bietet Entwicklern einen Weg, diese Aufgaben mit Leichtigkeit zu bewältigen.
Java-Dekompilierer
Um Java-Bytecode zu dekompilieren, können diese Tools sehr hilfreich sein:
Debugging von DLLs
Verwendung von IDA
- Rundll32 wird aus bestimmten Pfaden für 64-Bit- und 32-Bit-Versionen geladen.
- Windbg wird als Debugger ausgewählt, mit der Option, beim Laden/Entladen von Bibliotheken anzuhalten.
- Die Ausführungsparameter umfassen den DLL-Pfad und den Funktionsnamen. Diese Konfiguration stoppt die Ausführung beim Laden jeder DLL.
Verwendung von x64dbg/x32dbg
- Ähnlich wie bei IDA wird rundll32 mit Befehlszeilenänderungen geladen, um die DLL und die Funktion anzugeben.
- Die Einstellungen werden angepasst, um beim DLL-Eintritt anzuhalten, sodass ein Haltepunkt am gewünschten DLL-Eintrittspunkt gesetzt werden kann.
Bilder
- Ausführungshaltepunkte und Konfigurationen werden durch Screenshots veranschaulicht.
ARM & MIPS
- Für die Emulation ist arm_now eine nützliche Ressource.
Shellcodes
Debugging-Techniken
- Blobrunner und jmp2it sind Tools zum Zuweisen von Shellcodes im Speicher und zum Debuggen mit Ida oder x64dbg.
- Blobrunner Releases
- jmp2it kompilierte Version
- Cutter bietet eine GUI-basierte Emulation und Inspektion von Shellcode und hebt Unterschiede in der Handhabung von Shellcode als Datei im Vergleich zu direktem Shellcode hervor.
Deobfuskation und Analyse
-
scdbg bietet Einblicke in Shellcode-Funktionen und Deobfuskationsfähigkeiten. %%%bash scdbg.exe -f shellcode # Grundinformationen scdbg.exe -f shellcode -r # Analysebericht scdbg.exe -f shellcode -i -r # Interaktive Hooks scdbg.exe -f shellcode -d # Dump des dekodierten Shellcodes scdbg.exe -f shellcode /findsc # Startoffset finden scdbg.exe -f shellcode /foff 0x0000004D # Ausführung vom Offset %%%
-
CyberChef zum Disassemblieren von Shellcode: CyberChef-Rezept
Movfuscator
- Ein Obfuscator, der alle Anweisungen durch
mov
ersetzt. - Nützliche Ressourcen umfassen eine YouTube-Erklärung und PDF-Folien.
- demovfuscator könnte die Obfuskation von movfuscator rückgängig machen, wobei Abhängigkeiten wie
libcapstone-dev
undlibz3-dev
erforderlich sind, und die Installation von keystone.
Delphi
- Für Delphi-Binärdateien wird IDR empfohlen.
Kurse
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABD
Binärdeobfuskation
{% hint style="success" %}
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstütze HackTricks
- Überprüfe die Abonnementpläne!
- Tritt der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.