updated profiles... i need to update many more, i was lazy before...

merge-requests/16/merge
_xeroxz 3 years ago
parent 16aeb2d6d4
commit 1f5fe9cd7b

@ -3,13 +3,22 @@
namespace vm::handler::profile namespace vm::handler::profile
{ {
vm::handler::profile_t addq = { vm::handler::profile_t addq = {
// MOV RAX, [RBP]
// ADD [RBP+8], RAX // ADD [RBP+8], RAX
// PUSHFQ // PUSHFQ
// POP [RBP] // POP [RBP]
"ADDQ", "ADDQ",
ADDQ, ADDQ,
NULL, NULL,
{ { // ADD [RBP+8], RAX { { // MOV RAX, [RBP]
[]( 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_RAX &&
instr.operands[ 1 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
instr.operands[ 1 ].mem.base == ZYDIS_REGISTER_RBP;
},
// ADD [RBP+8], RAX
[]( const zydis_decoded_instr_t &instr ) -> bool { []( const zydis_decoded_instr_t &instr ) -> bool {
return instr.mnemonic == ZYDIS_MNEMONIC_ADD && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_MEMORY && return instr.mnemonic == ZYDIS_MNEMONIC_ADD && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
instr.operands[ 0 ].mem.base == ZYDIS_REGISTER_RBP && instr.operands[ 0 ].mem.base == ZYDIS_REGISTER_RBP &&
@ -26,13 +35,31 @@ namespace vm::handler::profile
} } } }; } } } };
vm::handler::profile_t adddw = { vm::handler::profile_t adddw = {
// MOV EAX, [RBP]
// SUB RBP, 0x4
// ADD [RBP+8], EAX // ADD [RBP+8], EAX
// PUSHFQ // PUSHFQ
// POP [RBP] // POP [RBP]
"ADDDW", "ADDDW",
ADDDW, ADDDW,
NULL, NULL,
{ { // ADD [RBP+8], EAX { { // MOV EAX, [RBP]
[]( 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_EAX &&
instr.operands[ 1 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
instr.operands[ 1 ].mem.base == ZYDIS_REGISTER_RBP;
},
// SUB RBP, 0x4
[]( const zydis_decoded_instr_t &instr ) -> bool {
return instr.mnemonic == ZYDIS_MNEMONIC_SUB &&
instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_REGISTER &&
instr.operands[ 0 ].reg.value == ZYDIS_REGISTER_RBP &&
instr.operands[ 1 ].type == ZYDIS_OPERAND_TYPE_IMMEDIATE &&
instr.operands[ 1 ].imm.value.u == 0x4;
},
// ADD [RBP+8], EAX
[]( const zydis_decoded_instr_t &instr ) -> bool { []( const zydis_decoded_instr_t &instr ) -> bool {
return instr.mnemonic == ZYDIS_MNEMONIC_ADD && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_MEMORY && return instr.mnemonic == ZYDIS_MNEMONIC_ADD && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
instr.operands[ 0 ].mem.base == ZYDIS_REGISTER_RBP && instr.operands[ 0 ].mem.base == ZYDIS_REGISTER_RBP &&
@ -49,13 +76,31 @@ namespace vm::handler::profile
} } } }; } } } };
vm::handler::profile_t addw = { vm::handler::profile_t addw = {
// MOV AX, [RBP]
// SUB RBP, 0x6
// ADD [RBP+8], AX // ADD [RBP+8], AX
// PUSHFQ // PUSHFQ
// POP [RBP] // POP [RBP]
"ADDW", "ADDW",
ADDW, ADDW,
NULL, NULL,
{ { // ADD [RBP+8], AX { { // MOV AX, [RBP]
[]( 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_AX &&
instr.operands[ 1 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
instr.operands[ 1 ].mem.base == ZYDIS_REGISTER_RBP;
},
// SUB RBP, 0x6
[]( const zydis_decoded_instr_t &instr ) -> bool {
return instr.mnemonic == ZYDIS_MNEMONIC_SUB &&
instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_REGISTER &&
instr.operands[ 0 ].reg.value == ZYDIS_REGISTER_RBP &&
instr.operands[ 1 ].type == ZYDIS_OPERAND_TYPE_IMMEDIATE &&
instr.operands[ 1 ].imm.value.u == 0x6;
},
// ADD [RBP+8], AX
[]( const zydis_decoded_instr_t &instr ) -> bool { []( const zydis_decoded_instr_t &instr ) -> bool {
return instr.mnemonic == ZYDIS_MNEMONIC_ADD && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_MEMORY && return instr.mnemonic == ZYDIS_MNEMONIC_ADD && instr.operands[ 0 ].type == ZYDIS_OPERAND_TYPE_MEMORY &&
instr.operands[ 0 ].mem.base == ZYDIS_REGISTER_RBP && instr.operands[ 0 ].mem.base == ZYDIS_REGISTER_RBP &&

@ -169,13 +169,16 @@ namespace vm::handler::profile
vm::handler::extention_t::sign_extend }; vm::handler::extention_t::sign_extend };
vm::handler::profile_t lconstwsxq = { vm::handler::profile_t lconstwsxq = {
// CWDE
// CDQE // CDQE
// SUB RBP, 8 // SUB RBP, 8
// MOV [RBP], RAX // MOV [RBP], RAX
"LCONSTWSXQ", "LCONSTWSXQ",
LCONSTWSXQ, LCONSTWSXQ,
16, 16,
{ { // CDQE { { // CWDE
[]( const zydis_decoded_instr_t &instr ) -> bool { return instr.mnemonic == ZYDIS_MNEMONIC_CWDE; },
// CDQE
[]( const zydis_decoded_instr_t &instr ) -> bool { return instr.mnemonic == ZYDIS_MNEMONIC_CDQE; }, []( const zydis_decoded_instr_t &instr ) -> bool { return instr.mnemonic == ZYDIS_MNEMONIC_CDQE; },
// SUB RBP, 8 // SUB RBP, 8
[]( const zydis_decoded_instr_t &instr ) -> bool { []( const zydis_decoded_instr_t &instr ) -> bool {

Loading…
Cancel
Save