A bit more research is required to determine how IDA calculates function signatures. Calculating signatures independently would allow other tools (such as radare2, binary-ninja, Ghidra) to use the lumen server.
The signature is the md5 of the function's bytes and a bitmap of the same length.
Ideally, something like this:
fn calc_chksum(fn_bytes: &[u8]) -> [u8; 16] {
let mut md5 = Md5::new();
md5.update(fn_bytes);
let bitmap = // work needed
md5.update(&bitmap);
md5.digest()
}
A bit more research is required to determine how IDA calculates function signatures. Calculating signatures independently would allow other tools (such as radare2, binary-ninja, Ghidra) to use the lumen server.
The signature is the md5 of the function's bytes and a bitmap of the same length.
Ideally, something like this: