This is a non-IMPACT record, meaning that access to the data is not controlled by IMPACT. For access, see the directions below.

This Resource is offered and provided outside of the IMPACT mediation framework. IMPACT and the IMPACT Coordination Council/Blackfire Technology, Inc. expressly disclaim all conditions, representations and warranties including but not limited to Resource availability, quality, accuracy, non-infringement, and non-interference. All Resource information and access is controlled by entities and under terms that are external to the IMPACT legal framework.


External Tool
External Data Source
56 (lowest rank is 56)

Category & Restrictions

cyber defense, forensics, mobile software


Generic Android Deobfuscator. Simplify virtually executes an app to understand its behavior and then tries to optimize the code so that it behaves identically but is easier for a human to understand. Each optimization type is simple and generic, so it doesn't matter what the specific type of obfuscation is used.

There are three parts to the project: smalivm, simplify, and the demo app.

smalivm: Provides a virtual machine sandbox for executing Dalvik methods. After executing a method, it returns a graph containing all possible register and class values for every execution path. It works even if some values are unknown, such as file and network I/O. For example, any if or switch conditional with an unknown value results in both branches being taken.

simplify: Analyzes the execution graphs from smalivm and applies optimizations such as constant propagation, dead code removal, unreflection, and some peephole optimizations. These are fairly simple, but when applied together repeatedly, they'll decrypt strings, remove reflection, and greatly simplify code. It does not rename methods and classes.

demoapp: Contains simple, heavily commented examples for using smalivm in your own project. If you're building something that needs to execute Dalvik code, check it out.

Additional Details

simplify, 1226, inferlink, external data source, source, corporation, external, inferlink corporation, understand, generic, type, code, simple, app, identically, virtually, behavior, human, executes, deobfuscator, doesn, matter, easier, behaves, specific, obfuscation, android, optimize, optimization, smalivm, values, methods, optimizations, executing, project, dalvik, unknown, execution, decrypt, switch, graphs, register, network, class, removal, strings, machine, rename, heavily, sandbox, commented, analyzes, file, remove, peephole, branches, check, reflection, method, demoapp, repeatedly, path, conditional, constant, unreflection, execute, graph, propagation, demo, other, dead, classes, applied, building, virtual, greatly, returns, examples, applies, ll