{"id":15672329,"url":"https://github.com/mrxiaom/eden","last_synced_at":"2025-04-07T11:09:58.107Z","repository":{"id":204303870,"uuid":"711455381","full_name":"MrXiaoM/Eden","owner":"MrXiaoM","description":"伊甸 | 未来版本提取器","archived":false,"fork":false,"pushed_at":"2024-12-25T11:59:30.000Z","size":280,"stargazers_count":80,"open_issues_count":0,"forks_count":21,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T10:05:42.879Z","etag":null,"topics":["apk-decompiler","csharp","decompiler","go-cqhttp","mirai","study-project","wpf-application"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrXiaoM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-29T10:20:13.000Z","updated_at":"2025-01-19T14:39:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"80e0db5e-cc05-4533-b553-8e4ab9c1569d","html_url":"https://github.com/MrXiaoM/Eden","commit_stats":{"total_commits":36,"total_committers":2,"mean_commits":18.0,"dds":0.4722222222222222,"last_synced_commit":"3e55346be71b2bf8c4fe63c0c3447b5372eb800d"},"previous_names":["mrxiaom/eden"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXiaoM%2FEden","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXiaoM%2FEden/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXiaoM%2FEden/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXiaoM%2FEden/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrXiaoM","download_url":"https://codeload.github.com/MrXiaoM/Eden/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640465,"owners_count":20971557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apk-decompiler","csharp","decompiler","go-cqhttp","mirai","study-project","wpf-application"],"created_at":"2024-10-03T15:23:18.899Z","updated_at":"2025-04-07T11:09:58.077Z","avatar_url":"https://github.com/MrXiaoM.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\" src=\"docs/eden.png\" width=\"180\"/\u003e\n\n# 伊甸 Eden\n\n未来框架版本信息自动提取工具。\n\n## 声明\n\n本项目仅作学习参考，探究低配置计算机反编译大尺寸安卓程序以及自动分析的可行性，请在下载后24小时内删除。  \n禁止将该项目用于任何非法、违反道德的用途，本项目作者将不对使用本程序的任意部分产生的后果负责。使用本项目的源代码、发布的二进制文件等即代表你同意以上条款，并自愿承担所产生的后果。\n\n## 需求\n\n* Java 8\n* .NET Core 6.0 Runtime\n* 至少 2GB 空闲运行内存\n* 至少 4GB 空闲存储空间\n\n本程序使用的反编译策略为，将所有 classes.dex 依次转换为 jar 再合并。此方法在一定程度上可减少运行内存占用，避免反编译过程中出现 OOM。缺点是转换的总过程在作者的计算机上 (i5-5300U) 大约需要半小时来完成对某大型APP的转换，反编译更是花上了数小时。但这使得这个过程成为了可能，若直接转换整个安装包的 dex 为 jar，在低配置的计算机上很可能会出现 OOM。\n\n本程序会在 dex2jar 转换结果中选择特定的类进行分析，寻找相关信息以生成协议信息。\n\n在对某大型 APP 进行过完整分析后，本程序可以使用极短的时间，定点分析抽离 APK 中我们所需的参数并输出，而不需要整个 APK 反编译耗费这么长时间，在作者的计算机中只需使用大约10秒时间就可以将所需的 class 文件从 dex 中导出。\n\n## CLI 使用方法\n\n安装运行环境: https://learn.microsoft.com/zh-cn/dotnet/core/install/linux\n\n运行\n```shell\ndotnet Eden.CLI.dll 参数\n```\n可用参数\n```shell\n  --working-dir          Eden 工作路径\n  --eden-apk             Eden.apk 路径，要相对于工作路径\n  --fast-dex             (Default: true) 是否使用快速解包方法\n  --output-override      输出文件夹(out/版本号/)路径重写\n  --config-override      文件 config.json 输出路径重写，会覆盖 output-override\n  --dtconfig-override    文件 dtconfig.json 输出路径重写，会覆盖 output-override\n  --pad-override         文件 android_pad.json 输出路径重写，会覆盖 output-override\n  --phone-override       文件 android_phone.json 输出路径重写，会覆盖 output-override\n  --from-manifest        (Default: true) 是否从 AndroidManifest.xml 读取协议 app id\n  --start-pos            (Default: 0) 起始步骤，0=解压APK，1=解包Dex，2=反编译class，3=分析代码\n  --help                 Display this help screen.\n  --version              Display version information.\n```\n示例如下\n```shell\nmkdir -p protocol-versions/android_phone protocol-versions/android_pad\ndotnet 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\n```\n\n## 构建\n\n请阅读 files 文件夹内的说明。\n\n## 鸣谢\n\n* [pxb1988/dex2jar](https://github.com/pxb1988/dex2jar) 提供dex转jar方法 - Apache-2.0 License\n* [mstrobel/procyon](https://github.com/mstrobel/procyon) 提供反编译工具 - Apache-2.0 License\n* [googlecode/android4me](https://code.google.com/archive/p/android4me) 提供安卓XML解密方法 - Apache-2.0 License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrxiaom%2Feden","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrxiaom%2Feden","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrxiaom%2Feden/lists"}