#pe #x86-64 #unwind #microsoft

pe-unwind-info

PE unwind info 解析器

6 个版本

0.2.3 2024 年 3 月 4 日
0.2.2 2024 年 2 月 29 日
0.2.1 2024 年 1 月 18 日
0.1.1 2023 年 12 月 14 日
0.1.0 2023 年 7 月 25 日

#575解析器实现

Download history 284/week @ 2024-03-13 274/week @ 2024-03-20 330/week @ 2024-03-27 358/week @ 2024-04-03 753/week @ 2024-04-10 608/week @ 2024-04-17 874/week @ 2024-04-24 912/week @ 2024-05-01 884/week @ 2024-05-08 570/week @ 2024-05-15 976/week @ 2024-05-22 660/week @ 2024-05-29 626/week @ 2024-06-05 389/week @ 2024-06-12 418/week @ 2024-06-19 460/week @ 2024-06-26

2,106 每月下载量
framehop 中使用

MIT 许可证

50KB
956 代码行

crates.io page docs.rs page

pe-unwind-info

用于解析 .pdata 部分内容和解 unwinding 信息结构的零拷贝解析器(通常由 .pdata 部分的内容访问)。

此库提供了对 .pdata 部分中函数表的低级、高效解析器,以及在其他位置中 unwinding 信息结构的解析器。在此功能之上,还提供了高级功能来解析整个帧(给定模块的内容)。这仅在必要时复制数据。不需要堆分配。

目前该库针对 x86_64 PE 模块。即将添加 ARM64 支持。

此库假设所有信息都是小端格式:据我所知,Windows 总是针对只支持小端格式的 CPU,或者配置支持小端和大端格式的 CPU 以使用小端格式。


lib.rs:

PE 二进制文件中 .pdata 部分内容和 unwinding 信息的零拷贝解析器。

在这些解析器之上,还提供了一些高级接口,以便轻松解析帧。解析器和高级接口都注重效率,尽量减少数据的复制。没有堆分配。

依赖项

~1.2–1.8MB
~33K SLoC