module_functions/
module_functions.rs1use dma_rs::Dma;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let dma = Dma::new("fpga://algo=0")?;
5 let process = dma.attach("explorer.exe")?;
6
7 let kernel32_base = process.module_base("kernel32.dll")?;
8 println!("kernel32.dll base: 0x{:X}", kernel32_base);
9
10 let functions = [
11 "CreateFileW",
12 "ReadFile",
13 "WriteFile",
14 "GetProcAddress",
15 "LoadLibraryW",
16 ];
17
18 for func_name in &functions {
19 match process.proc_address("kernel32.dll", func_name) {
20 Ok(addr) => {
21 let offset = addr - kernel32_base;
22 println!("{}+0x{:X} = 0x{:X}", func_name, offset, addr);
23 }
24 Err(e) => println!("Failed to find {}: {}", func_name, e),
25 }
26 }
27
28 Ok(())
29}