libmwemu 0.24.3

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
use crate::emu::Emu;
use crate::{color, exception::types};
use iced_x86::Instruction;

pub fn execute(emu: &mut Emu, ins: &Instruction, instruction_sz: usize, _rep_step: bool) -> bool {
    emu.show_instruction(color!("Red"), &crate::emu::decoded_instruction::DecodedInstruction::X86(*ins));
    log::trace!("/!\\ int 3 sigtrap!!!!");
    emu.exception(types::ExceptionType::Int3);
    // If no exception handler is installed, treat int3 as clean process exit
    // rather than continuing. On real Windows without a debugger, int3 terminates.
    if emu.seh() == 0 && emu.veh() == 0 && emu.uef() == 0 {
        emu.stop();
    }
    return true;
}