#msvc #demangle #c-plus-plus #undecorate

程序+库 msvc-demangler

一个 Rust 库,用于解混淆/去装饰由 MSVC 混淆的 C++ 符号

13 个版本 (破坏性更新)

使用旧的 Rust 2015

0.10.1 2024 年 5 月 10 日
0.10.0 2024 年 2 月 7 日
0.9.0 2021 年 6 月 3 日
0.8.0 2019 年 8 月 12 日
0.6.0 2018 年 5 月 22 日

#85 in 开发工具

Download history 14485/week @ 2024-05-03 13657/week @ 2024-05-10 15864/week @ 2024-05-17 17942/week @ 2024-05-24 15050/week @ 2024-05-31 14317/week @ 2024-06-07 15006/week @ 2024-06-14 14252/week @ 2024-06-21 13639/week @ 2024-06-28 18431/week @ 2024-07-05 18001/week @ 2024-07-12 21172/week @ 2024-07-19 15393/week @ 2024-07-26 13505/week @ 2024-08-02 13792/week @ 2024-08-09 12057/week @ 2024-08-16

每月下载量 57,562
用于 18 个开源包(直接使用 8 个)

MIT/NCSA

92KB
2K SLoC

msvc-demangler

msvc-demangler 是一个 Rust 的 crate,可以解混淆使用 MSVC 混淆方案的 C++ 符号。这些符号由 Microsoft C++ 编译器(Windows 版本)以及一些其他编译器生成。

示例

use msvc_demangler;
let flags = msvc_demangler::DemangleFlags::llvm();
let result = msvc_demangler::demangle("??_0klass@@QEAAHH@Z", flags).unwrap();
println!("{}", result);

行为

其功能类似于 Windows 上的 undname 和底层的 UnDecorateSymbolName 函数。由于 Microsoft 没有文档化混淆方案,因此这可能不是完全准确的。在不清楚的情况下,实现尝试遵循 LLVM 所做的。

许可

此 msvc-demangler 采用 MIT 和伊利诺伊大学开源许可双重许可。

许可: MIT/NCSA


lib.rs:

msvc-demangler 是一个 Rust 的 crate,可以解混淆使用 MSVC 混淆方案的 C++ 符号。这些符号由 Microsoft C++ 编译器(Windows 版本)以及一些其他编译器生成。

示例

use msvc_demangler;
let flags = msvc_demangler::DemangleFlags::llvm();
let result = msvc_demangler::demangle("??_0klass@@QEAAHH@Z", flags).unwrap();
println!("{}", result);

行为

其功能类似于 Windows 上的 undname 和底层的 UnDecorateSymbolName 函数。由于 Microsoft 没有文档化混淆方案,因此这可能不是完全准确的。在不清楚的情况下,实现尝试遵循 LLVM 所做的。

许可

此 msvc-demangler 采用 MIT 和伊利诺伊大学开源许可双重许可。

依赖项

~110KB