Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mauidll — Extrae los ensamblados administrados (.NET) de un almacén de ensamblados de MAUI Android. | Kitploit
Herramientas/GitHubGitHub/bishopfox/mauidll
Seguridad AndroidAnálisis EstáticoAnálisis Dinámico de Código (DAST)Ingeniería InversaSeguridad MóvilUtilidades y FrameworksAnálisis de Binarios
GitHubbishopfox/mauidll

mauidll

Extrae los ensamblados administrados (.NET) de un almacén de ensamblados de MAUI Android.

Ver Repositorio
10hace 1 díaAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

mauidll

Extrae los ensamblados administrados (.NET) de un almacén de ensamblados de MAUI Android.

Las aplicaciones .NET Android incluyen su código administrado dentro de una biblioteca compartida, normalmente libassemblies.<abi>.blob.so (versiones anteriores) o libassembly-store.so. mauidll analiza ese archivo y escribe cada ensamblado que contiene en disco como un archivo .dll estándar, listo para su inspección en un descompilador como ILSpy.

La herramienta es un único programa Crystal autocontenido sin dependencias externas. El descompresor LZ4 que necesita está implementado en línea, por lo que no se requiere nada más allá de la biblioteca estándar.

Inicio rápido

root@kitploit:~
crystal build --release mauidll.cr -o mauidll
./mauidll libassembly-store.so extracted-dlls

El binario producido por crystal build es autocontenido: solo necesita Crystal en la máquina de compilación, no en ninguna máquina donde se ejecute.

Instalación

1. Instalar Crystal

mauidll se compila con el lenguaje Crystal. Si aún no tienes Crystal:

macOS

La forma más popular es Homebrew:

root@kitploit:~
brew install crystal

Crystal también está disponible como un tarball universal oficial (Apple Silicon e Intel) desde la página de descargas.

Linux

En Debian, Ubuntu y distribuciones relacionadas, instala el repositorio de paquetes oficial y luego el compilador:

root@kitploit:~
curl -fsSL https://crystal-lang.org/install.sh | sudo bash
sudo apt install crystal

Alternativamente, en cualquier distribución que soporte snaps:

root@kitploit:~
sudo snap install crystal --classic

En Arch Linux:

root@kitploit:~
sudo pacman -S crystal shards

2. Compilar

root@kitploit:~
crystal build --release mauidll.cr -o mauidll

mauidll fue desarrollado y probado con Crystal 1.20.x. Solo usa la biblioteca estándar, por lo que cualquier versión razonablemente reciente debería funcionar.

Uso

root@kitploit:~
./mauidll <assembly-store.so> [outdir]
ArgumentoSignificado
assembly-store.soRuta al almacén, p. ej. libassemblies.arm64-v8a.blob.so
outdir (opcional)Directorio de salida, por defecto dlls en el directorio actual

Ejemplo:

root@kitploit:~
./mauidll /tmp/app64-v8a/libassembly-store.so /tmp/extracted

Las líneas de salida reportan una línea por ensamblado (name: size -> decompressed size, valid PE), seguidas de un resumen como:

root@kitploit:~
Extracted 235 entries, valid PE (MZ) after extraction: 235/235

Cómo funciona

  1. El archivo del almacén es un objeto ELF. El almacén de ensamblados reside en una sección payload no cargable, que mauidll localiza a través de las cabeceras de sección ELF (se admiten tanto ELF de 32 como de 64 bits).
  2. El payload comienza con una cabecera XABA de 20 bytes: magic, versión, número de entradas, número de entradas del índice y tamaño del índice.
  3. Después del índice vienen los descriptores, de 28 bytes cada uno (índice de mapeo, desplazamiento de datos, tamaño de datos), luego una tabla de nombres (longitud uint32 little-endian + bytes UTF-8 por entrada).
  4. Cada blob es un ensamblado ya comprimido o uno sin comprimir. Un blob que comienza con XALZ es un bloque LZ4 sin procesar (no el formato de trama LZ4) precedido por una cabecera de 12 bytes que incluye el tamaño sin comprimir; cualquier otra cosa (que comience con MZ) se almacena tal cual.
  5. Los blobs descomprimidos se escriben en disco bajo el nombre de su ensamblado y se verifica que comiencen con la firma PE MZ.
Descargar herramienta