awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
JesusFreke avatar

JesusFreke/smali

0
View on GitHub↗
6,627 stars·1,111 forks·Java·10 views

Smali

Smali is a two-way binary translation toolset designed to convert Dalvik bytecode to human-readable assembly and back again. It provides a mechanism for the disassembly and assembly of executable files used in virtual machine environments.

The project enables the modification of compiled Android application logic by transforming binary files into editable assembly and rebuilding them. It is used for reverse engineering, malware analysis, and the study of low-level instructions to identify program behavior or security flaws.

The toolkit covers binary construction through smali code assembly and detailed Dalvik analysis. This includes the translation of binary fields, method signatures, and type descriptors into text, as well as register allocation and the preservation of annotations and debug information during disassembly.

Features

  • Binary-to-Markup Translation - Provides a two-way translation between Dalvik binary bytecode and human-readable assembly representations.
  • Bytecode Analysis - Examines low-level Dalvik instructions to understand program behavior or identify security flaws.
  • Bytecode Disassemblers - Disassembles Dalvik bytecode into human-readable assembly while preserving annotations and debug information.
  • Opcode Mappings - Implements translation tables that map assembly mnemonics to specific Dalvik binary opcodes.
  • Android App Modifications - Enables the modification of compiled Android application logic by transforming binaries to editable assembly.
  • Binary Assembly - Transforms human-readable assembly instructions back into executable Dalvik binary files.
  • Binary Signature Resolution - Maps binary method signatures and field definitions into structured text for analysis and editing.
  • Symbolic Type Translation - Translates binary type descriptors into readable strings for classes, arrays, and primitive types.
  • Virtual Register Allocation - Assigns virtual registers to handle local variables and method parameters during bytecode assembly.
  • Android Application Reverse Engineering - Converts Dalvik bytecode into readable assembly to analyze the internal functioning of Android applications.
  • Manual Register Allocation - Assigns specific numbers of registers to methods to manage variables and incoming parameters.
  • Binary Field Textualization - Converts binary field definitions into text strings specifying the containing class and field type.
  • Binary Method Textualization - Translates binary method signatures and return values into verbose text to facilitate static analysis.
  • Binary Type Textualization - Maps primitive types, objects, and multi-dimensional arrays from binary formats into human-readable text.
  • Annotation Preservation - Preserves critical metadata and debug information during the disassembly of Dalvik bytecode.
  • Android - Decompiles suspicious Android binaries into a human-readable format to identify malicious code patterns.
  • Reverse Engineering Projects - Assembler and disassembler for Dalvik bytecode.
  • Reverse Engineering Tools - Tools for assembling and disassembling Dalvik bytecode.
  • Static Analysis Tools - Assembler and disassembler for the dex format.

Star history

Star history chart for jesusfreke/smaliStar history chart for jesusfreke/smali

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Smali

Similar open-source projects, ranked by how many features they share with Smali.
  • androguard/androguardandroguard avatar

    androguard/androguard

    6,116View on GitHub↗

    Reverse engineering and pentesting for Android applications

    Python
    View on GitHub↗6,116
  • calebfenton/simplifyCalebFenton avatar

    CalebFenton/simplify

    4,644View on GitHub↗

    Simplify is an Android virtual machine sandbox, bytecode execution tracer, and static analysis framework. It serves as a Dalvik bytecode deobfuscator designed to recover readable code from binaries by simulating program behavior without a physical device. The project distinguishes itself by using execution graph analysis to resolve reflection calls and simplify obfuscated code through constant propagation and dead code removal. It employs multi-path execution simulation to track all possible conditional branch outcomes and maps instruction flow to identify constant values. The system covers

    Java
    View on GitHub↗4,644
  • revanced/revanced-patcherReVanced avatar

    ReVanced/revanced-patcher

    3,397View on GitHub↗

    The ReVanced Patcher is a framework designed for modifying compiled Android application binaries. It functions as an engine for injecting custom code, altering bytecode, and updating resources directly within package files without requiring access to the original source code. The project distinguishes itself through a modular system that organizes modifications into independent, reusable units. These patches are managed through a dependency-aware execution process that ensures modifications are applied in the correct order, allowing for consistent behavior changes across different application

    Kotlinaaptandroidandroid-runtime
    View on GitHub↗3,397
  • charles2gan/gda-android-reversing-toolcharles2gan avatar

    charles2gan/GDA-android-reversing-Tool

    4,778View on GitHub↗

    This project is a comprehensive Android reverse engineering suite that functions as a decompiler, bytecode deobfuscator, and malware analysis tool. It is designed to convert APK, DEX, and OAT binaries into human-readable source code using a native implementation that does not require a Java Virtual Machine. The platform is distinguished by its integration with Frida for dynamic analysis, allowing users to hook methods, inject custom JavaScript, and dump device memory in real time. It also features specialized security engines, including a taint propagation engine and a stack-state machine, to

    Pythondecompilermalware-analysismobile-security
    View on GitHub↗4,778
See all 30 alternatives to Smali→

Frequently asked questions

What does jesusfreke/smali do?

Smali is a two-way binary translation toolset designed to convert Dalvik bytecode to human-readable assembly and back again. It provides a mechanism for the disassembly and assembly of executable files used in virtual machine environments.

What are the main features of jesusfreke/smali?

The main features of jesusfreke/smali are: Binary-to-Markup Translation, Bytecode Analysis, Bytecode Disassemblers, Opcode Mappings, Android App Modifications, Binary Assembly, Binary Signature Resolution, Symbolic Type Translation.

What are some open-source alternatives to jesusfreke/smali?

Open-source alternatives to jesusfreke/smali include: androguard/androguard — Reverse engineering and pentesting for Android applications. calebfenton/simplify — Simplify is an Android virtual machine sandbox, bytecode execution tracer, and static analysis framework. It serves as… revanced/revanced-patcher — The ReVanced Patcher is a framework designed for modifying compiled Android application binaries. It functions as an… charles2gan/gda-android-reversing-tool — This project is a comprehensive Android reverse engineering suite that functions as a decompiler, bytecode… pkivolowitz/asm_book — This project is an ARMv8 assembly programming guide and tutorial designed to teach the translation of high-level logic… google/android-classyshark — Android Classyshark is a binary analysis toolset designed to extract structural data from Android executable files. It…