simplify
4,676
Stars
458
Forks
123
Watchers
33
Open Issues
Apache-2.0
许可证
Kotlin
语言
2014-01-16
创建时间
2026-11-08
最近更新
项目能做什么
专为 Android 打造的虚拟机与代码反混淆工具。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# Simplify
Simplify is a generic Android deobfuscator. It virtually executes Dalvik code, then rewrites each method into
code that behaves identically and is easier for a human to read. Its optimizations are generic, so they work
regardless of which obfuscator produced the input.
<p align="center">
<img src="https://cloud.githubusercontent.com/assets/1356658/5331911/1e790c86-7df4-11e4-91e7-aba1d2c63b98.png" alt="Decompiled obfuscated code: many method calls, no clear meaning" height="380px" />
<img src="https://cloud.githubusercontent.com/assets/1356658/5331912/1ecc6d7c-7df4-11e4-9572-bc3d41303842.png" alt="The same code after Simplify: string literals in place of decryption calls" height="380px" />
</p>
## Quick Start
Building requires JDK 21 selected through `JAVA_HOME` and a case-sensitive filesystem. Clone with the
Android framework submodule, then build the standalone jar:
```bash
git clone --recursive https://github.com/CalebFenton/simplify.git
cd simplify
./gradlew :simplify:fatJar
```
In an existing clone, fetch the submodule with `git submodule update --init --recursive`.
Simplify the included [obfuscated example app](simplify/ObfuscatedApp/README.md):
```bash
java -jar simplify/build/libs/simplify.jar -it "org/cf/obfuscated" -et "MainActivity" simplify/obfuscated-app.apk
```
The run takes under a minute, ends with a summary of optimized, failed, and skipped methods, and writes
`obfuscated-app_simple.apk` to the current directory; `-o` chooses another path. Run
`java -jar simplify/build/libs/simplify.jar --help` for every option.
## What This Does
The project has four Gradle modules. **smalivm** is a sandboxed virtual machine for Dalvik methods. It returns
an execution graph of every possible register and class value on every path, even when some inputs are
unknown: a branch on an unknown value takes both arms. **simplify** reads those graphs and applies constant
propagation, dead code removal, unreflection, and peephole optimizations, repeating them until the method
stops changing or reaches `--max-passes`. It does not rename classes or methods. **demoapp** shows how to embed smalivm, and **sdbg** is
an interactive debugger for the same execution engine.
An optimization runs only when the analysis of a method is complete. A method whose analysis hits a limit is
reported as skipped and left unchanged. Exceptions, synchronization, volatile accesses, and writes to objects
other code can see are observable, so their operations stay. For example, save this as `example/Example.smali`:
```smali
.class public LExample;
.super Ljava/lang/Object;
.method public static add()I
.locals 2
const/4 v0, 0x4
const/4 v1, 0x3
add-int v0, v0, v1
return v0
.end method
.method public static test1()I
.locals 2
new-instance v0, Ljava/lang/Integer;
const/4 v1, 0x1
invoke-direct {v0, v1}, Ljava/lang/Integer;-><init>(I)V
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
return v0
阅读完整原文
商业机会分析 AI 生成
现代化Android逆向辅助分析CLI与插件(JADX/JEB插件)
| 产品构想 | 基于smalivm引擎进行现代化改造(支持Multi-DEX、更新Android Framework stub),并封装为流行反编译工具(如JADX、JEB)的一键去混淆插件,采取开源核心+高级特性收费模式。 |
| 核心功能 | Multi-DEX支持、JADX GUI一键交互式去混淆、动态字符串还原、死代码剔除与常量折叠预览、现代Android API模拟。 |
| 目标用户 | 独立安全研究员、安全渗透测试人员、逆向工程师。 |
| 难度/周期 | 中等 · 1-3个月 · 成本:开发机器、自动化测试环境(约数百元/月) |
| 收费模式 | 核心开源,高级GUI插件/更新维护采用Gumroad/Sponsor订阅制收费(推测定价 $19-$49/月或买断)。 |
| 竞争风险 | 现代加固方案包含大量Native层防护(OLLVM等),纯Dalvik虚拟执行无法处理Native级混淆;维护Android framework stub工作量大。 |
| 依据 | 已验证事实 |
移动恶意软件自动化预处理微服务(SaaS/私有化API)
| 产品构想 | 将Simplify打包为容器化高吞吐解混淆服务,作为SOC/安全沙箱前置预处理节点,输入APK/DEX直接输出解混淆后的清晰APK及分析报告。 |
| 核心功能 | RESTful API批量解混淆、超时与死循环熔断保护、资源耗尽限制、结构化反混淆指纹报告、私有化Docker镜像交付。 |
| 目标用户 | 威胁情报公司、企业SOC团队、第三方移动应用安全检测厂商。 |
| 难度/周期 | 中等偏高 · 2-4个月 · 成本:中型云服务器(用于密集CPU分析计算,约 500-1500元/月) |
| 收费模式 | 按调用量计费的SaaS API或年度私有部署授权 License(推测企业版 $2,000-$5,000/年)。 |
| 竞争风险 | 复杂APK分析容易发生路径爆炸导致内存溢出或超时(README已提到分析遇到限制会skip);市场有成熟的商业沙箱竞争。 |
| 依据 | 数据支持的判断 |
定制加壳/混淆逆向与规则开发技术咨询服务
| 产品构想 | 利用smalivm的虚拟机图执行能力,承接企业对抗黑产APK分析、特定厂商混淆还原(如特定反射字典还原、字符串解密算法还原)的定制脚本开发与技术支持。 |
| 核心功能 | 针对特定混淆模板编写定制优化规则、结合Unidbg的JNI与Java混合模拟还原、专家级逆向分析报告。 |
| 目标用户 | 反欺诈团队、风控安全团队、知识产权维权律所/机构。 |
| 难度/周期 | 高 · 按项目交付(1-3周/案) · 成本:纯人力时间成本 |
| 收费模式 | 项目制咨询服务费(推测每项目 1万-5万元人民币不等)。 |
| 竞争风险 | 依赖个人专业深度与客户资源,业务难以标准化和规模化扩展。 |
| 依据 | AI推测 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
| 项目 | 中文简介 | Stars | 语言 |
|---|---|---|---|
| morluto/rea | 中文介绍暂未生成 Reverse engineer anything with agents, from app behavior dow |
452,354 | TypeScript |
| flutter/flutter | 中文介绍暂未生成 Flutter makes it easy and fast to build beautiful apps for m |
181,208 | Dart |
| Genymobile/scrcpy | 中文介绍暂未生成 Display and control your Android device |
154,580 | C |
| rustdesk/rustdesk | 中文介绍暂未生成 An open-source remote desktop application designed for self- |
129,051 | Rust |
| react/react-native | 中文介绍暂未生成 A framework for building native applications using React |
126,898 | C++ |
| Hack-with-Github/Awesome-Hacking | 中文介绍暂未生成 A collection of various awesome lists for hackers, pentester |
125,272 | - |
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。
项目优势与风险
| 技术成熟度 | 创建于 2014-01-16,近 30 天仍在推送,发布过 10 个 Release |
| 社区活跃 | Star 4,676 / Fork 458 / Issue 33(数据支持,可自行核实) |
| 许可证 | Apache-2.0 |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
快速开始(以仓库 README 为准)
git clone https://github.com/CalebFenton/simplify.git cd simplify # 请阅读仓库 README 获取确切安装步骤(依赖、配置、启动命令)
术语说明:Docker=应用容器(把程序和依赖打包运行);API Key=调用外部服务的密钥;Git Clone=把仓库代码下载到本地。常见错误:API Key 未配置 / 端口占用 / 数据库连接失败,多数项目在 README 的 Troubleshooting 章节有说明。