Decompiling an Android Application Written in .NET MAUI 9 (X...#2037
Open
carlospolop wants to merge 1 commit intomasterfrom
Open
Decompiling an Android Application Written in .NET MAUI 9 (X...#2037carlospolop wants to merge 1 commit intomasterfrom
carlospolop wants to merge 1 commit intomasterfrom
Conversation
Collaborator
Author
🔗 Additional ContextOriginal Blog Post: https://mwalkowski.com/post/decompiling-an-android-application-written-in-net-maui-9-xamarin/ Content Categories: Based on the analysis, this content was categorized under "Mobile Pentesting -> Android Applications Pentesting (or a new subsection under Android Reversing/Decompiling) -> "Decompiling .NET MAUI/Xamarin apps (MAUI 9 ELF assembly store: XABA/XALZ)"". Repository Maintenance:
Review Notes:
Bot Version: HackTricks News Bot v1.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Title / goal
The post explains how to reverse engineer (extract and decompile) managed .NET assemblies from Android apps built with .NET MAUI 9 (successor to Xamarin). It is not a CVE/vulnerability disclosure, but it is a practical, low-level technique that defeats a packaging change intended to make library extraction harder.
Why this matters (security impact / severity)
Even though .NET MAUI 9 moved DLLs into an ELF container to raise the bar, the a...
🔧 Technical Details
Trick 1 — Recover managed .NET MAUI 9 assemblies hidden inside an ELF container:
When a MAUI 9 Android build stores its assemblies inside
libassemblies.<arch>.blob.so, treat the file as an ELF container and enumerate sections withllvm-readelf --section-headers. Identify the MAUI-specificpayloadsection (typePROGBITS), then extract it losslessly usingllvm-objcopy --dump-section=payload=payload.bin libassemblies.<arch>.blob.so. Validate correct extraction by checking for theXABAmagic (0x41424158) at offset 0.Trick 2 — Parse the “assembly store” container format to carve individual DLLs:
Interpret
payload.binas a structured store: parse a 20-byte little-endian header (struct.unpack('<5I')) to obtainentry_countandindex_size; parseentry_count28-byte descriptors (struct.unpa...🤖 Agent ActionsUpdated xamarin-apps.md with the missing MAUI 9 Android reversing workflow. The new content fits that existing page better than creating a new file because the repo already used it for Xamarin/.NET managed assembly extraction, and this blog extends that same technique rather than introducing a separate category.
The addition covers the MAUI 9
libassemblies.<abi>.blob.soELF container,payloadextraction withllvm-readelf/llvm-objcopy,XABAvalidation, the assembly-store layout needed to carve DLLs, and the per-entryXALZLZ4 decompression path. I also added the blog, official .NET Android docs, andpymauistoreto the file’s## Referencessection.Validation: re-read the edited section, checked that
## Referencesis still at the end of the file, and reviewed the final diff.This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.