libmwemu 0.24.1

x86 32/64bits and system internals emulator, for securely emulating malware and other stuff.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::emu;

pub fn GetFileSize(emu: &mut emu::Emu) {
    let file_handle = emu.regs().rcx as u32;
    let lpFileSizeHigh = emu.regs().rdx;

    log_red!(emu, "** {} kernel32!GetFileSize file_handle: 0x{:x}",
             emu.pos, file_handle);

    let file_handle = emu.handle_management.get_mut_file_handle(file_handle).expect("Failed to get file handle");
    let file_size = file_handle.file_size;
    emu.regs_mut().set_eax(file_size);
    if lpFileSizeHigh != 0x0 {
        emu.maps.write_dword(lpFileSizeHigh, (file_size >> 32) as u32);
    }
}