Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mauidll — Extraia os assemblies gerenciados (.NET) de um assembly store do MAUI Android. | Kitploit
Ferramentas/GitHubGitHub/bishopfox/mauidll
Segurança AndroidAnálise EstáticaAnálise Dinâmica de Código (DAST)Engenharia ReversaSegurança MóvelUtilitários e FrameworksAnálise de Binários
GitHubbishopfox/mauidll

mauidll

Extraia os assemblies gerenciados (.NET) de um assembly store do MAUI Android.

Ver Repositório
10há 1 diaAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

mauidll

Extrai os assemblies gerenciados (.NET) de um assembly store do MAUI Android.

Os aplicativos .NET Android distribuem seu código gerenciado dentro de uma biblioteca compartilhada, geralmente libassemblies.<abi>.blob.so (versões mais antigas) ou libassembly-store.so. O mauidll analisa esse arquivo e grava cada assembly que ele contém no disco como um arquivo .dll padrão, pronto para inspeção em um decompilador como o ILSpy.

A ferramenta é um único programa Crystal autocontido, sem dependências externas. O descompressor LZ4 de que ele precisa é implementado inline, então nada além da biblioteca padrão é necessário.

Início rápido

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

O binário produzido por crystal build é autocontido: ele só precisa do Crystal na máquina de compilação, não em qualquer máquina onde você o execute.

Instalação

1. Instale o Crystal

O mauidll é compilado com a linguagem Crystal. Se você ainda não tem o Crystal:

macOS

A forma mais popular é o Homebrew:

root@kitploit:~
brew install crystal

O Crystal também está disponível como um tarball universal oficial (Apple Silicon e Intel) na página de downloads.

Linux

No Debian, Ubuntu e distribuições relacionadas, instale o repositório de pacotes oficial e depois o compilador:

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

Alternativamente, em qualquer distribuição que suporte snaps:

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

No Arch Linux:

root@kitploit:~
sudo pacman -S crystal shards

2. Compile

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

O mauidll foi desenvolvido e testado com o Crystal 1.20.x. Ele usa apenas a biblioteca padrão, então qualquer versão razoavelmente recente deve funcionar.

Uso

root@kitploit:~
./mauidll <assembly-store.so> [outdir]
ArgumentoSignificado
assembly-store.soCaminho para o store, por exemplo libassemblies.arm64-v8a.blob.so
outdir (opcional)Diretório de saída, o padrão é dlls no diretório atual

Exemplo:

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

As linhas de saída reportam uma linha por assembly (name: size -> decompressed size, valid PE), seguidas por um resumo como:

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

Como funciona

  1. O arquivo do store é um objeto ELF. O assembly store fica em uma seção payload não carregável, que o mauidll localiza através dos cabeçalhos de seção do ELF (ELF de 32 e 64 bits são ambos suportados).
  2. O payload começa com um cabeçalho XABA de 20 bytes: magic, versão, número de entradas, número de entradas do índice e tamanho do índice.
  3. Após o índice vêm os descritores, 28 bytes cada (índice de mapeamento, offset dos dados, tamanho dos dados), depois uma tabela de nomes (comprimento uint32 little-endian + bytes UTF-8 por entrada).
  4. Cada blob é ou um assembly já comprimido ou um bruto. Um blob começando com XALZ é um bloco LZ4 bruto (não o formato de frame LZ4) precedido por um cabeçalho de 12 bytes que inclui o tamanho descomprimido; qualquer outra coisa (começando com MZ) é armazenada literalmente.
  5. Os blobs descomprimidos são gravados no disco sob o nome do assembly e verificados para começar com a assinatura PE MZ.
Baixar ferramenta