diff options
| author | Mason Reed <mason@vector35.com> | 2026-02-11 18:04:07 -0800 |
|---|---|---|
| committer | Mason Reed <35282038+emesare@users.noreply.github.com> | 2026-02-23 00:09:44 -0800 |
| commit | 37008b7fa16837d04c1658868646cad681cbe035 (patch) | |
| tree | 577c2b62ee47c78a5d31d11f2aa610e441f5c808 /plugins/bntl_utils/Cargo.toml | |
| parent | 837f8590be80b7c98162e70e4f0c1814b83e9d7b (diff) | |
Add BNTL utility plugin
Allow users to easily create, diff, dump and validate type libraries
Supports the following formats:
- C header files (via core type parsers)
- Binary files (collects exported and imported functions)
- WinMD files (via `windows-metadata` crate)
- Existing type library files (for easy fixups)
- Apiset files (to resolve through forwarded windows dlls)
Can be invoked as a regular plugin via UI commands or via CLI.
Processing of type libraries inherently requires external linking, processing will automatically merge and deduplicate colliding type libraries so prefer to use inside a project or a directory and process all information (for a given platform) at once, rather than smaller invocations.
Diffstat (limited to 'plugins/bntl_utils/Cargo.toml')
| -rw-r--r-- | plugins/bntl_utils/Cargo.toml | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/plugins/bntl_utils/Cargo.toml b/plugins/bntl_utils/Cargo.toml new file mode 100644 index 00000000..0f867847 --- /dev/null +++ b/plugins/bntl_utils/Cargo.toml @@ -0,0 +1,42 @@ +[package] +name = "bntl_utils" +version = "0.1.0" +edition = "2021" +license = "Apache-2.0" +publish = false + +[lib] +crate-type = ["cdylib", "lib"] + +[dependencies] +binaryninja.workspace = true +binaryninjacore-sys.workspace = true +tracing = "0.1" +thiserror = "2.0" +similar = "2.7.0" +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +nt-apiset = "0.1.0" +url = "2.5" +uuid = "1.20" +walkdir = "2.5" +dashmap = "6.1" + +# For TBD parsing +serde-saphyr = { version = "0.0.18", default-features = false, features = [] } + +# For reports +minijinja = "2.10.2" +minijinja-embed = "2.10.2" + +[build-dependencies] +minijinja-embed = "2.10.2" + +# TODO: We need to depend on latest because the windows-metadata crate has not yet been bumped, but depending on the crate +# TODO: with git will mean we pull in all of the data of the crate instead of just the necessary bits, we likely need to +# TODO: wait until the windows-metadata crate is bumped before merging this PR. +# TODO: Relevant PR: https://github.com/microsoft/windows-rs/pull/3799 +# TODO: Relevant issue: https://github.com/microsoft/windows-rs/issues/3887 +[dependencies.windows-metadata] +git = "https://github.com/microsoft/windows-rs" +tag = "72"
\ No newline at end of file |
