blob: a04f3659985b95a855292d2b1b0fa428ff834dca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
mod demangler;
use binaryninja::add_optional_plugin_dependency;
use binaryninja::demangle::Demangler;
use binaryninja::settings::Settings;
use demangler::SwiftDemangler;
pub const SETTING_EXTRACT_TYPES: &str = "analysis.swift.extractTypesFromMangledNames";
#[no_mangle]
#[allow(non_snake_case)]
pub extern "C" fn CorePluginDependencies() {
add_optional_plugin_dependency("arch_x86");
add_optional_plugin_dependency("arch_arm64");
}
#[no_mangle]
#[allow(non_snake_case)]
pub extern "C" fn CorePluginInit() -> bool {
binaryninja::tracing_init!("Plugin.Swift");
let settings = Settings::new();
settings.register_setting_json(
SETTING_EXTRACT_TYPES,
r#"{
"title" : "Extract Types from Mangled Names",
"type" : "boolean",
"default" : true,
"description" : "Extract parameter and return type information from Swift mangled names and apply them to function signatures. When disabled, only the demangled name is applied."
}"#,
);
Demangler::register("Swift", SwiftDemangler);
true
}
|