hacktricks/reversing/reversing-tools/README.md

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
{% endhint %}

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

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 und libz3-dev erforderlich sind, und die Installation von keystone.

Delphi

  • Für Delphi-Binärdateien wird IDR empfohlen.

Kurse

{% 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
{% endhint %}