parent
eb13c85f48
commit
28e50e7b0c
@ -1 +1 @@
|
||||
Subproject commit e9dc43bd7da388c5f8304407fd076f802bd97a7f
|
||||
Subproject commit 46220b2d054f7c250d9eef27879a2f05b7c9d9fa
|
@ -0,0 +1,10 @@
|
||||
#include <vmlifters.hpp>
|
||||
|
||||
namespace vm::lifters
|
||||
{
|
||||
vm::lifters::lifter_t jmp = {
|
||||
// jmp
|
||||
vm::handler::JMP, []( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) {
|
||||
blk->jmp( vinstr->trace_data.vsp.qword[ 0 ] );
|
||||
} };
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
#include <vmlifters.hpp>
|
||||
|
||||
namespace vm::lifters
|
||||
{
|
||||
vm::lifters::lifter_t lrflags = {
|
||||
// push flags
|
||||
vm::handler::LRFLAGS,
|
||||
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) { blk->push( vtil::REG_FLAGS ); } };
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
#include <vmlifters.hpp>
|
||||
|
||||
namespace vm::lifters
|
||||
{
|
||||
vm::lifters::lifter_t lvsp = {
|
||||
// vsp = vsp[0]
|
||||
vm::handler::LVSP,
|
||||
[]( vtil::basic_block *blk, vm::instrs::virt_instr_t *vinstr ) { blk->pop( vtil::REG_SP ); } };
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
#include <vmprofiler.hpp>
|
||||
|
||||
namespace vm::handler::profile
|
||||
{
|
||||
vm::handler::profile_t lvsp = {
|
||||
// MOV RBP [RBP]
|
||||
"LVSP",
|
||||
LVSP,
|
||||
NULL,
|
||||
{ { []( const zydis_decoded_instr_t &instr ) -> bool {
|
||||
return instr.mnemonic == ZYDIS_MNEMONIC_MOV && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_REGISTER &&
|
||||
instr.operands[ 0 ].reg.value == ZYDIS_REGISTER_RBP &&
|
||||
instr.operands[ 1 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
|
||||
instr.operands[ 1 ].mem.base == ZYDIS_REGISTER_RBP;
|
||||
} } } };
|
||||
}
|
Loading…
Reference in new issue