Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mauidll — Extrayez les assemblys managés (.NET) d'un assembly store MAUI Android. | Kitploit
Outils/GitHubGitHub/bishopfox/mauidll
Sécurité AndroidAnalyse StatiqueAnalyse Dynamique de Code (DAST)Rétro-ingénierieSécurité MobileUtilitaires et FrameworksAnalyse de Binaires
GitHubbishopfox/mauidll

mauidll

Extrayez les assemblys managés (.NET) d'un assembly store MAUI Android.

Voir le dépôt
10il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

mauidll

Extrait les assemblys managés (.NET) d'un assembly store MAUI Android.

Les applications .NET Android embarquent leur code managé dans une bibliothèque partagée, généralement libassemblies.<abi>.blob.so (versions plus anciennes) ou libassembly-store.so. mauidll analyse ce fichier et écrit chaque assembly qu'il contient sur le disque sous forme de fichier .dll standard, prêt à être inspecté dans un décompilateur tel que ILSpy.

L'outil est un programme Crystal unique et autonome, sans dépendances externes. Le décompresseur LZ4 dont il a besoin est implémenté en interne, donc rien au-delà de la bibliothèque standard n'est requis.

Démarrage rapide

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

Le binaire produit par crystal build est autonome : il ne nécessite Crystal que sur la machine de compilation, pas sur une quelconque machine où vous l'exécutez.

Installation

1. Installer Crystal

mauidll est compilé avec le langage Crystal. Si vous n'avez pas encore Crystal :

macOS

La méthode la plus répandue est Homebrew :

root@kitploit:~
brew install crystal

Crystal est également disponible sous forme d'archive universelle officielle (Apple Silicon et Intel) depuis la page de téléchargements.

Linux

Sur Debian, Ubuntu et distributions apparentées, installez le dépôt de paquets officiel puis le compilateur :

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

Alternativement, sur toute distribution prenant en charge les snaps :

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

Sur Arch Linux :

root@kitploit:~
sudo pacman -S crystal shards

2. Compiler

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

mauidll a été développé et testé avec Crystal 1.20.x. Il n'utilise que la bibliothèque standard, donc toute version raisonnablement récente devrait fonctionner.

Utilisation

root@kitploit:~
./mauidll <assembly-store.so> [outdir]
ArgumentSignification
assembly-store.soChemin vers le store, par ex. libassemblies.arm64-v8a.blob.so
outdir (optionnel)Répertoire de sortie, par défaut dlls dans le répertoire courant

Exemple :

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

Les lignes de sortie rapportent une ligne par assembly (name: size -> decompressed size, valid PE), suivies d'un résumé tel que :

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

Fonctionnement

  1. Le fichier store est un objet ELF. L'assembly store réside dans une section payload non chargeable, que mauidll localise via les en-têtes de section ELF (ELF 32 et 64 bits sont tous deux pris en charge).
  2. Le payload commence par un en-tête XABA de 20 octets : magie, version, nombre d'entrées, nombre d'entrées d'index et taille de l'index.
  3. Après l'index viennent les descripteurs, de 28 octets chacun (index de mapping, offset des données, taille des données), puis une table de noms (longueur uint32 little-endian + octets UTF-8 par entrée).
  4. Chaque blob est soit un assembly déjà compressé, soit un assembly brut. Un blob commençant par XALZ est un bloc LZ4 brut (pas le format de trame LZ4) précédé d'un en-tête de 12 octets qui inclut la taille non compressée ; tout le reste (commençant par MZ) est stocké tel quel.
  5. Les blobs décompressés sont écrits sur le disque sous leur nom d'assembly et vérifiés pour commencer par la signature PE MZ.
Télécharger l’outil