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
·
CalebFenton avatar

CalebFenton/simplify

0
View on GitHub↗
4,644 stars·454 forks·Java·19 views

Simplify

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 a broad range of analysis capabilities, including exception propagation tracing, method side-effect categorization, and Java API call simulation. It also provides mechanisms for intercepting method executions via custom hooks to monitor or override virtual machine states.

Features

  • Android VM Sandboxes - Implements a virtual machine environment that emulates Dalvik instructions to analyze program behavior without a physical device.
  • Android Application Reverse Engineering - Analyzes the structure and flow of Android applications by resolving reflected calls and mapping execution paths.
  • Diagnostic Execution Tracers - Tracks variable values and instruction flow to resolve reflected calls and constant values during execution.
  • Dalvik Bytecode Execution - Executes Dalvik bytecode within a virtual machine sandbox to generate execution graphs of register and class values.
  • Execution Flow Tracing - Generates a graph of instructions that tracks register states and ancestry to define the execution order.
  • Reflection Call Resolution - Identifies targets of reflected method and field lookups and replaces them with direct invocations.
  • Bytecode Emulators - Executes Android instructions in a controlled environment to analyze program behavior without a physical device.
  • Virtual Machine State Simulators - Runs specific pieces of Android code in a controlled environment to determine the values of registers and classes.
  • Deobfuscation Tools - Removes confusing or hidden code patterns from Android binaries to make the underlying logic readable.
  • Obfuscated Code Analysis - Analyzes execution graphs to perform constant propagation and dead code removal to improve bytecode readability.
  • Java Bytecode Deobfuscators - Simplifies obfuscated Android bytecode using execution graph analysis and dead code removal.
  • Multi-Path Execution Simulation - Tracks all possible outcomes of conditional branches when input arguments are unknown to produce a path graph.
  • Path-Based State Tracking - Simulates all possible conditional branch outcomes to generate a comprehensive graph of potential program execution paths.
  • Execution Graph Analysis - Maps instruction flow and register ancestry to identify constant values and remove unreachable dead code.
  • Static Analysis Frameworks - Provides a framework for simulating Java API calls and exception propagation to recover readable code from binaries.
  • Configurable Execution Sandboxes - Runs bytecode with configurable limits on call depth and instruction counts to prevent infinite loops.
  • Dynamic Class Generation - Creates realistic class objects for input bytecode files to support methods that operate on custom classes.
  • Exception Propagation Tracing - Simulates the throwing and bubbling of exceptions through the call stack to identify error handling paths.
  • Java Runtime Emulations - Executes safe Java methods using reflection to increase performance and ensure correct standard library behavior.
  • Reflection-Based API Bridging - Executes standard Java library methods via reflection to ensure behavioral correctness during virtual machine analysis.
  • Side-Effect Analysis - Categorizes instructions based on their impact on external state to determine if code can be safely removed or inlined.
  • Android - Simulates the execution of Android bytecode in a sandbox to understand malicious app behavior.
  • Loop Detection - Prevents infinite execution during simulation by applying configurable limits on instruction counts, call depth, and time.
  • Side-Effect Categorization - Classifies instructions by their impact on external state to determine if code can be safely inlined or deleted.
  • Android Obfuscation - Generic deobfuscator for Android applications.
  • Android Static Analysis Tools - Tool for de-obfuscating Android packages into dex files.
  • Reverse Engineering Tools - Generic Android deobfuscator for simplifying code.

Star history

Star history chart for calebfenton/simplifyStar history chart for calebfenton/simplify

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

Frequently asked questions

What does calebfenton/simplify do?

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.

What are the main features of calebfenton/simplify?

The main features of calebfenton/simplify are: Android VM Sandboxes, Android Application Reverse Engineering, Diagnostic Execution Tracers, Dalvik Bytecode Execution, Execution Flow Tracing, Reflection Call Resolution, Bytecode Emulators, Virtual Machine State Simulators.

What are some open-source alternatives to calebfenton/simplify?

Open-source alternatives to calebfenton/simplify include: charles2gan/gda-android-reversing-tool — This project is a comprehensive Android reverse engineering suite that functions as a decompiler, bytecode… androguard/androguard — Reverse engineering and pentesting for Android applications. jesusfreke/smali — Smali is a two-way binary translation toolset designed to convert Dalvik bytecode to human-readable assembly and back… skylot/jadx — Jadx is a comprehensive Java decompilation suite designed to transform compiled binary application files into readable… col-e/recaf — Recaf is a suite of specialized tools for assembling, editing, deobfuscating, decompiling, and instrumenting Java… apklab/apklab — APKLab is an integrated security analysis platform and reverse engineering IDE for Android applications. It provides a…

Open-source alternatives to Simplify

Similar open-source projects, ranked by how many features they share with Simplify.
  • 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
  • androguard/androguardandroguard avatar

    androguard/androguard

    6,116View on GitHub↗

    Reverse engineering and pentesting for Android applications

    Python
    View on GitHub↗6,116
  • jesusfreke/smaliJesusFreke avatar

    JesusFreke/smali

    6,627View on GitHub↗

    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 a

    Java
    View on GitHub↗6,627
  • skylot/jadxskylot avatar

    skylot/jadx

    49,088View on GitHub↗

    Jadx is a comprehensive Java decompilation suite designed to transform compiled binary application files into readable source code. It functions as a static analysis workbench, providing a graphical interface for navigating, searching, and inspecting the internal logic of complex software packages. By utilizing a bytecode-to-Java pipeline, the project reconstructs high-level logical structures from low-level binary instructions, making it a primary tool for Android application reverse engineering. The project distinguishes itself through a sophisticated control flow reconstruction engine and

    Javaandroiddecompilerdex
    View on GitHub↗49,088
See all 30 alternatives to Simplify→