smda 0.6.2

Recursive x86/x64/AArch64 disassembler library for control-flow recovery from memory dumps. Iced-x86 + disarm64-backed; zero-copy.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::{Result, label_provider::LabelProvider};

pub mod elf_symbol_provider;
pub mod win_api_resolver;

pub fn init() -> Result<Vec<LabelProvider>> {
    Ok(vec![
        LabelProvider::WinApi(win_api_resolver::WinApiResolver::new()?),
        LabelProvider::ElfSymbol(elf_symbol_provider::ElfSymbolProvider::new()?),
    ])
}

#[derive(Debug, Clone)]
pub struct ApiEntry {
    pub referencing_addr: std::collections::HashSet<u64>,
    pub dll_name: Option<String>,
    pub api_name: Option<String>,
}