Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrxiaom/eden

伊甸 | 未来版本提取器
https://github.com/mrxiaom/eden

apk-decompiler csharp decompiler go-cqhttp mirai study-project wpf-application

Last synced: 12 days ago
JSON representation

伊甸 | 未来版本提取器

Awesome Lists containing this project

README

        

# 伊甸 Eden

未来框架版本信息自动提取工具。

## 声明

本项目仅作学习参考,探究低配置计算机反编译大尺寸安卓程序以及自动分析的可行性,请在下载后24小时内删除。
禁止将该项目用于任何非法、违反道德的用途,本项目作者将不对使用本程序的任意部分产生的后果负责。使用本项目的源代码、发布的二进制文件等即代表你同意以上条款,并自愿承担所产生的后果。

## 需求

* Java 8
* .NET Core 6.0 Runtime
* 至少 2GB 空闲运行内存
* 至少 4GB 空闲存储空间

本程序使用的反编译策略为,将所有 classes.dex 依次转换为 jar 再合并。此方法在一定程度上可减少运行内存占用,避免反编译过程中出现 OOM。缺点是转换的总过程在作者的计算机上 (i5-5300U) 大约需要半小时来完成对某大型APP的转换,反编译更是花上了数小时。但这使得这个过程成为了可能,若直接转换整个安装包的 dex 为 jar,在低配置的计算机上很可能会出现 OOM。

本程序会在 dex2jar 转换结果中选择特定的类进行分析,寻找相关信息以生成协议信息。

在对某大型 APP 进行过完整分析后,本程序可以使用极短的时间,定点分析抽离 APK 中我们所需的参数并输出,而不需要整个 APK 反编译耗费这么长时间,在作者的计算机中只需使用大约10秒时间就可以将所需的 class 文件从 dex 中导出。

## CLI 使用方法

安装运行环境: https://learn.microsoft.com/zh-cn/dotnet/core/install/linux

运行
```shell
dotnet Eden.CLI.dll 参数
```
可用参数
```shell
--working-dir Eden 工作路径
--eden-apk Eden.apk 路径,要相对于工作路径
--fast-dex (Default: true) 是否使用快速解包方法
--output-override 输出文件夹(out/版本号/)路径重写
--config-override 文件 config.json 输出路径重写,会覆盖 output-override
--dtconfig-override 文件 dtconfig.json 输出路径重写,会覆盖 output-override
--pad-override 文件 android_pad.json 输出路径重写,会覆盖 output-override
--phone-override 文件 android_phone.json 输出路径重写,会覆盖 output-override
--from-manifest (Default: true) 是否从 AndroidManifest.xml 读取协议 app id
--start-pos (Default: 0) 起始步骤,0=解压APK,1=解包Dex,2=反编译class,3=分析代码
--help Display this help screen.
--version Display version information.
```
示例如下
```shell
mkdir -r protocol-versions/android_phone protocol-versions/android_pad
dotnet Eden.CLI.dll --working-dir v9065 --eden-apk Android_9.0.65_64.apk --phone-override protocol-versions/android_phone/9.0.65.json --pad-override protocol-versions/android_pad/9.0.65.json
```

## 构建

请阅读 files 文件夹内的说明。

## 鸣谢

* [pxb1988/dex2jar](https://github.com/pxb1988/dex2jar) 提供dex转jar方法 - Apache-2.0 License
* [mstrobel/procyon](https://github.com/mstrobel/procyon) 提供反编译工具 - Apache-2.0 License
* [googlecode/android4me](https://code.google.com/archive/p/android4me) 提供安卓XML解密方法 - Apache-2.0 License