blob: ee91fb4add29cb8cda26b7300117a7fa5fd94f77 (
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
|
use binaryninja::binaryview::BinaryView;
use binaryninja::command::FunctionCommand;
use binaryninja::function::Function;
use crate::cache::cached_function_guid;
pub struct CopyFunctionGUID;
impl FunctionCommand for CopyFunctionGUID {
fn action(&self, _view: &BinaryView, func: &Function) {
let Ok(llil) = func.low_level_il() else {
log::error!("Could not get low level il for copied function");
return;
};
if let Some(guid) = cached_function_guid(func, &llil) {
log::info!(
"Function GUID for {}... {}",
func.symbol().short_name().to_string(),
guid
);
if let Ok(mut clipboard) = arboard::Clipboard::new() {
let _ = clipboard.set_text(guid.to_string());
}
} else {
log::error!(
"Failed to create GUID for function... 0x{:0x}",
func.start()
);
}
}
fn valid(&self, _view: &BinaryView, _func: &Function) -> bool {
true
}
}
|