百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
O

Obfu-DE-Scate

> 编程语言
开源

Obfu[DE]scate 是一个用于 Android APK 的去混淆工具,它使用模糊比较逻辑来识别函数之间的相似性,即使它们已经被重新编写。

198 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Obfu[DE]scate 是一个用于 Android APK 的去混淆工具,它使用模糊比较逻辑来识别函数之间的相似性,即使它们已经被重新编写。

Obfu[DE]scate: A De-obfuscation and Comparison tool for Android APKs.

Obfu[DE]scate is a Python tool designed to simplify the process of de-obfuscating and comparing two versions of an Android APK - even if the functions have been renamed as part of obfuscation. With fuzzy comparison logic, Obfu[DE]scate can identify similarities between functions and help you uncover changes between APK versions.

➡️ Getting Started

Installation

Getting started with Obfu[DE]scate is easy! Follow these steps:

  1. Clone the repository to your local machine.
  2. Install the dependencies manually or via the included requirements file using the following command:
pip install -r REQUIREMENTS.txt
  1. Download APKTool for your system from their website. and make sure it's installed and available in your PATH.

Obfu[DE]scate has been tested on Windows 11, but should work on other systems as well.

Running

Obfu[DE]scate provides several command-line options to customize its behavior:

Shorthand Parameter Description Required
-a1 apk_file_path_1 The path to the original APK. This is the APK that the second APK will be compared against (i.e. an older version of the APK) True
-a2 apk_file_path_2 The path to the newer APK. The output will show changes between APK 1 and this APK. True
-cp class_path A reverse domain notation path that will be used to filter reviewed functions (i.e. provide com.example.class to only compare functions on this path). False
-o output_dir A directory to save the output mapping, html, and dissasembled APKs to. False
-apktool apk_tool_path If APKTool is not on your path use this parameter to tell ObfuDeScate where APKTool is located. False

To compare two APK files, simply run Obfu[DE]scate with the following command:

python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"

In the above example, Obfu[DE]scate will review all functions in the old_example.apk APK at the class path com.example.path and compare them against all functions found at the same class path in new_example.apk.

Outputs

Obfu[DE]scate generates two output files: a mapping file in newline-separated list format, and an interactive HTML file. These output files include:

  • mapping.txt - A newline seperated text file with each line relating to an identified match between a method in APK1 and APK2. The format for these lines are such as: com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a .
  • output.html - A HTML file that when opened in a web browser lists all functions in APK1. These are dropdowns that when clicked show the matched method in APK2 (if any), the confidence of them being a match, and the codeblock in SMALI for that method from APK1 and APK2.

Contributions

Obfu[DE]scate is an open-source project and welcomes contributions from the community. If you would like to contribute to Obfu[DE]scate, please follow these guidelines:

  • Fork the repository to your own GitHub account.
  • Create a new branch with a descriptive name for your contribution.
  • Make your changes and test them thoroughly.
  • Submit a pull request to the main repository, including a detailed description of your changes and any relevant documentation.
  • Wait for feedback from the maintainers and address any comments or suggestions (if any).
  • Once your changes have been reviewed and approved, they will be merged into the main repository.

⚖️ Code of Conduct

Obfu[DE]scate follows the Contributor Covenant Code of Conduct. Please make sure to review. and adhere to this code of conduct when contributing to Obfu[DE]scate.

Bug Reports and Feature Requests

If you encounter a bug or have a suggestion for a new feature, please open an issue in the GitHub repository. Please provide as much detail as possible, including steps to reproduce the issue or a clear description of the proposed feature. Your feedback is valuable and will help improve Obfu[DE]scate for everyone.

Thanks

This tool wouldn't work without APKTool! Secondly, many of the examples in this README use the Chess.com app as a base, check it out here.

License

GNU General Public License v3.0

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Pythonandroidapkapktooldeobfuscation

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月18日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言