MarketKernel / html-disasm
git clone https://github.com/MarketKernel/html-disasm.git
v0.2.0 · today
Offline disassembler for ARM64, ARM32, x86-64, x86 (32-bit), WebAssembly, .NET (CIL), and Java bytecode. Supports Mach-O, ELF, PE, APK, and IPA files from macOS, iOS, Linux, Android, and Windows. Runs entirely in your browser from a single HTML file. No installation, no internet connection, no file uploads.
—
stars, 24h
+47
stars, 7 days · #961
+47
stars, 30 days · #6,289
47
★ total · +47% this week
5
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageTypeScript
LicenseMIT
Created2026-10-14 (6d ago)
Last pushtoday
Watchers0
OwnerUser
Links
- GitHub: github.com/MarketKernel/html-disasm
- Homepage: https://disasm.marketkernel.com
- Releases · Issues · Hacker News mentions
README excerpt
# Disassembler for ARM, x86, WebAssembly, .NET, and Java — in a Single HTML File 🇬🇧 English · 🇷🇺 Русский **A cross-platform disassembler that runs entirely in your browser — offline, with no installation or uploads.** Open a native executable, shared library, WebAssembly module, .NET assembly, Java class, or application archive and explore its instructions, functions, references, strings, and binary metadata. Everything fits into **one self-contained HTML file**: `build/disassembler.html`. Open it from your disk in a modern browser. Files are processed locally, and the page's Content Security Policy blocks network access. ### Supported formats and architectures | Platform or runtime | Formats | Architectures or bytecode | | --- | --- | --- | | macOS | Mach-O executables, `.dylib`, universal binaries | arm64, arm64e, x86-64, i386 | | iOS | Mach-O, `.ipa`, zipped `.app` | arm64, armv7 | | Windows | PE `.exe`, `.dll` | x86-64, i386, arm64, ARM64EC, ARM64X, 32-bit Arm | | Linux | ELF executables, shared libraries | x86-64, i386, arm64, 32-bit Arm | | Android | ELF `.so`, `.apk`, `.aab`, `.apks`, `.xapk` | arm64-v8a, armeabi-v7a, x86_64, x86 | | WebAssembly | `.wasm` core modules | WebAssembly instructions | | .NET | Managed `.exe`, `.dll` | CIL (C#, F#, Visual Basic, and other CLI languages) | | JVM | `.class`, `.jar`, `.war`, `.jmod`, `.aar` | Java bytecode (including code compiled from Kotlin and Scala) | Explore decoded instructions in assembly notation, with explanations and instruction statistics. For **arm64, x86-64, WebAssembly, .NET, and Java**, you can also switch to a more readable **HLA64** representation. HLA64 is an assembler with higher-level syntax for ARM64, x64, and WebAssembly; this project also extends its notation to CIL and JVM bytecode. ### Try it **Open the online PWA** — install it as an app or use it in your browser. After the first visit, it can run offline. Files are still opened locally and are never uploaded. On desktop Chrome, Edge, or Arc, use the browser's install option; on iOS, use **Share → Add to Home Screen**. **Download a standalone HTML file** — each release includes `disassembler- .html` and `SHA256SUMS.txt`. Keep the file on disk and open it without an internet connection. Unlike the PWA, the downloaded file remains on the version you chose. Source repository: . ### Examples [code] The Android armeabi-v7a build, with Thumb-2 and one A32 file, opened directly from the APK (stripped; the tool distinguishes T32, A32, and data through code analysis): [code] The same `hello.c` program compiled to WebAssembly with Emscripten: [code] ## Getting started 1. Run `./build.sh open`, or run `npm install && npm run build` and open `build/disassembler.html`. 2. Click **Open a program**, or drag a file onto the page. An app's program is inside its bundle: `Name.app/Contents/MacOS/Name` (in the Finder: Show Package Contents). Universal files open at their arm64 slice; the **Mach-O** page opens the others (x86_64, an