工具

paranoid-deobfuscator 字符串反混淆工具

一个 Python 命令行工具,用于还原被 Paranoid 和 LSParanoid 这两款 Android 字符串混淆插件隐藏的字符串,使 smali 代码便于静态分析。它在 smali 目录中查找混淆器的字符串查询方法和编码后的分块数组,用移植自这两个库 DeobfuscatorHelper 和 RandomHelper 类的 Python 实现解码分块,并就地把每处查询调用改写为带标记注释的 const-string 指令。辅助命令可列出还原的字符串、把分块保存到文件,以及根据已保存的分块解码单个字符串。

目标
应用
类别
Android 工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时最新版本为 v3.0.2,发布于 2025-02-18,并于同日上传到 PyPI;可用 pip 或 pipx 安装。pyproject.toml 要求 Python 3.10+,依赖 click 8(8.1.7 或更高)和 NumPy 2(2.1.3 或更高);CI 在每次推送时于 Python 3.10 至 3.13 上运行 pytest。所审阅的 main 分支 2025-03-26 提交在该版本之后只增加了测试和捐助链接。
  • 它处理从使用者自备的 APK 或 DEX 文件解码出的 smali 目录(README 搭配 Apktool 或 smali/baksmali 进行解码和重新构建),并会就地覆盖 smali 文件。README 说明只支持用 Paranoid v0.3.0(2020 年 1 月 25 日发布)或更新版本混淆的应用;README 中已被注释掉的 Windows 警告指向 issue #14,该 issue 已关闭。
  • 若找到多个候选的字符串查询方法或混淆字符串数组,命令会停止,源码称这种情况暂不支持;对无法跟踪的查询调用会记录警告。它只还原字符串常量,不会恢复名称或撤销其他混淆。测试覆盖字符串编码、smali 解析、Paranoid 解码以及 issue #18 的回归问题。
  • 采用 Apache-2.0 许可证(版权 2024 Giacomo Ferretti);解码模块注明其由 Paranoid 和 LSParanoid 的 Java 辅助类转换而来。被分析的应用适用其自身条款。本次审阅未运行任何内容;所审来源未确立与 REA 的关联。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  2. paranoid_deobfuscator/commands/deobfuscate.py GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  3. paranoid_deobfuscator/commands/helpers.py GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  4. paranoid_deobfuscator/paranoid/DeobfuscatorHelper.py GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  5. pyproject.toml GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  6. .github/workflows/run_tests.yml GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  7. LICENSE GitHub · giacomoferretti/paranoid-deobfuscator · 修订 028bd05
  8. https://github.com/giacomoferretti/paranoid-deobfuscator/releases/tag/v3.0.2
  9. https://pypi.org/project/paranoid-deobfuscator/3.0.2/

同分区更多条目:应用

应用分区全部 136 项资源