tip
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Gu铆a de Decompilaci贸n de Wasm y Compilaci贸n de Wat
En el 谩mbito de WebAssembly, las herramientas para decompilar y compilar son esenciales para los desarrolladores. Esta gu铆a presenta algunos recursos en l铆nea y software para manejar archivos Wasm (binario de WebAssembly) y Wat (texto de WebAssembly).
Herramientas en L铆nea
- Para decompilar Wasm a Wat, la herramienta disponible en la demo wasm2wat de Wabt es muy 煤til.
- Para compilar Wat de vuelta a Wasm, la demo wat2wasm de Wabt cumple con el prop贸sito.
- Otra opci贸n de decompilaci贸n se puede encontrar en web-wasmdec.
Soluciones de Software
- Para una soluci贸n m谩s robusta, JEB de PNF Software ofrece caracter铆sticas extensas.
- El proyecto de c贸digo abierto wasmdec tambi茅n est谩 disponible para tareas de decompilaci贸n.
Recursos de Decompilaci贸n de .Net
Decompilar ensamblados de .Net se puede lograr con herramientas como:
- ILSpy, que tambi茅n ofrece un plugin para Visual Studio Code, permitiendo su uso multiplataforma.
- Para tareas que involucran decompilaci贸n, modificaci贸n y recompilaci贸n, se recomienda encarecidamente dnSpy. Hacer clic derecho en un m茅todo y elegir Modificar M茅todo permite cambios en el c贸digo.
- dotPeek de JetBrains es otra alternativa para decompilar ensamblados de .Net.
Mejorando la Depuraci贸n y Registro con DNSpy
Registro de DNSpy
Para registrar informaci贸n en un archivo usando DNSpy, incorpora el siguiente fragmento de c贸digo .Net:
%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Contrase帽a: " + password + "\n"); %%%
Depuraci贸n de DNSpy
Para una depuraci贸n efectiva con DNSpy, se recomienda una secuencia de pasos para ajustar los atributos de ensamblado para la depuraci贸n, asegurando que las optimizaciones que podr铆an obstaculizar la depuraci贸n est茅n deshabilitadas. Este proceso incluye cambiar la configuraci贸n de DebuggableAttribute
, recompilar el ensamblado y guardar los cambios.
Adem谩s, para depurar una aplicaci贸n .Net ejecutada por IIS, ejecutar iisreset /noforce
reinicia IIS. Para adjuntar DNSpy al proceso de IIS para depuraci贸n, la gu铆a instruye sobre seleccionar el proceso w3wp.exe dentro de DNSpy y comenzar la sesi贸n de depuraci贸n.
Para una vista completa de los m贸dulos cargados durante la depuraci贸n, se aconseja acceder a la ventana de M贸dulos en DNSpy, seguida de abrir todos los m贸dulos y ordenar los ensamblados para facilitar la navegaci贸n y depuraci贸n.
Esta gu铆a encapsula la esencia de la decompilaci贸n de WebAssembly y .Net, ofreciendo un camino para que los desarrolladores naveguen estas tareas con facilidad.
Decompilador de Java
Para decompilar bytecode de Java, estas herramientas pueden ser muy 煤tiles:
Depuraci贸n de DLLs
Usando IDA
- Rundll32 se carga desde rutas espec铆ficas para versiones de 64 bits y 32 bits.
- Windbg se selecciona como el depurador con la opci贸n de suspender en la carga/descarga de bibliotecas habilitada.
- Los par谩metros de ejecuci贸n incluyen la ruta de la DLL y el nombre de la funci贸n. Esta configuraci贸n detiene la ejecuci贸n al cargar cada DLL.
Usando x64dbg/x32dbg
- Similar a IDA, rundll32 se carga con modificaciones en la l铆nea de comandos para especificar la DLL y la funci贸n.
- Se ajustan las configuraciones para romper en la entrada de la DLL, permitiendo establecer un punto de interrupci贸n en el punto de entrada deseado de la DLL.
Im谩genes
- Los puntos de detenci贸n de ejecuci贸n y configuraciones se ilustran a trav茅s de capturas de pantalla.
ARM & MIPS
- Para emulaci贸n, arm_now es un recurso 煤til.
Shellcodes
T茅cnicas de Depuraci贸n
- Blobrunner y jmp2it son herramientas para asignar shellcodes en memoria y depurarlos con Ida o x64dbg.
- Blobrunner versiones
- jmp2it versi贸n compilada
- Cutter ofrece emulaci贸n e inspecci贸n de shellcode basada en GUI, destacando las diferencias en el manejo de shellcode como un archivo frente a shellcode directo.
Deofuscaci贸n y An谩lisis
-
scdbg proporciona informaci贸n sobre funciones de shellcode y capacidades de deofuscaci贸n. %%%bash scdbg.exe -f shellcode # Informaci贸n b谩sica scdbg.exe -f shellcode -r # Informe de an谩lisis scdbg.exe -f shellcode -i -r # Hooks interactivos scdbg.exe -f shellcode -d # Volcar shellcode decodificado scdbg.exe -f shellcode /findsc # Encontrar desplazamiento de inicio scdbg.exe -f shellcode /foff 0x0000004D # Ejecutar desde el desplazamiento %%%
-
CyberChef para desensamblar shellcode: receta de CyberChef
Movfuscator
- Un ofuscador que reemplaza todas las instrucciones con
mov
. - Recursos 煤tiles incluyen una explicaci贸n en YouTube y diapositivas en PDF.
- demovfuscator podr铆a revertir la ofuscaci贸n de movfuscator, requiriendo dependencias como
libcapstone-dev
ylibz3-dev
, e instalando keystone.
Delphi
- Para binarios de Delphi, se recomienda IDR.
Cursos
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABD (Deofuscaci贸n binaria)
tip
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.