10个版本

0.5.0 2021年5月31日
0.4.0 2019年12月13日
0.3.1 2019年12月1日
0.3.0 2019年11月29日
0.1.1 2019年11月18日

#1417解析器实现

Download history 19/week @ 2024-03-10 1/week @ 2024-03-17 50/week @ 2024-03-31 40/week @ 2024-04-07 32/week @ 2024-04-14 59/week @ 2024-04-21 37/week @ 2024-04-28 43/week @ 2024-05-12 11/week @ 2024-05-19 2/week @ 2024-05-26 32/week @ 2024-06-02 35/week @ 2024-06-09 3/week @ 2024-06-16 38/week @ 2024-06-23

每月108次下载

MIT许可证

295KB
3K SLoC

Dex

Build Status

Dex 是一个完全用 Rust 编写的用于解析 Android 的 Dex 格式的解析器。

实现了大部分访问文件中数据结构的功能。截至 v0.3.0,测试覆盖率达到了 81%

用法

将以下内容添加到您的 Cargo.toml

dex = "0.4.0"

文档

dex 格式的文档主要来源是Android 网站。此 crate 中的大多数公共 structmethod 与名称相同。这里有几个示例这里 以帮助您开始。

开发说明

  • 该库使用 mmap 来访问文件内容。
  • 使用 scroll 来解析二进制数据。
  • 资源文件夹中包含的 classes.dex 来自开源应用程序 ADW 桌面。您可以在此找到源代码 这里

运行测试用例

一些测试用例包含 Java 代码,需要 javacd8。另一种选择是打开 PR 并使用 travis 设置进行测试。

  • 要获取 d8,您需要安装 Android SDK 并将 Android/Sdk/build-tools/<version>/ 目录添加到 PATH 变量中。
  • 对于 javac,您需要安装 Java。
  • 此外,需要在环境中设置 ANDROID_LIB_PATH 变量。它应指向 SDK 中的 android.jar 文件。(例如:Android/Sdk/platforms/android-<version>/android.jar)。这是为了避免运行 d8 时出现警告所必需的。
  • 使用cargo install cargo-tarpaulin并运行cargo tarpaulin来获取测试覆盖率。

贡献

欢迎所有贡献!如果您发现bug、有问题或者认为可以改进,请随意在Github上提出问题/PR。在提交PR时,请添加测试!

依赖

约4MB
约75K SLoC