|
|
|
@ -124,8 +124,15 @@ void deobfuscate(zydis_rtn_t& routine) {
|
|
|
|
|
|
|
|
|
|
std::uint32_t last_size = 0u;
|
|
|
|
|
static const std::vector<ZydisMnemonic> blacklist = {
|
|
|
|
|
ZYDIS_MNEMONIC_CLC, ZYDIS_MNEMONIC_BT, ZYDIS_MNEMONIC_TEST,
|
|
|
|
|
ZYDIS_MNEMONIC_CMP, ZYDIS_MNEMONIC_CMC, ZYDIS_MNEMONIC_STC};
|
|
|
|
|
ZYDIS_MNEMONIC_CLC, ZYDIS_MNEMONIC_BT, ZYDIS_MNEMONIC_TEST,
|
|
|
|
|
ZYDIS_MNEMONIC_CMP, ZYDIS_MNEMONIC_CMC, ZYDIS_MNEMONIC_STC,
|
|
|
|
|
ZYDIS_MNEMONIC_CMOVB, ZYDIS_MNEMONIC_CMOVBE, ZYDIS_MNEMONIC_CMOVL,
|
|
|
|
|
ZYDIS_MNEMONIC_CMOVLE, ZYDIS_MNEMONIC_CMOVNB, ZYDIS_MNEMONIC_CMOVNBE,
|
|
|
|
|
ZYDIS_MNEMONIC_CMOVNL, ZYDIS_MNEMONIC_CMOVNLE, ZYDIS_MNEMONIC_CMOVNO,
|
|
|
|
|
ZYDIS_MNEMONIC_CMOVNP, ZYDIS_MNEMONIC_CMOVNS, ZYDIS_MNEMONIC_CMOVNZ,
|
|
|
|
|
ZYDIS_MNEMONIC_CMOVO, ZYDIS_MNEMONIC_CMOVP, ZYDIS_MNEMONIC_CMOVS,
|
|
|
|
|
ZYDIS_MNEMONIC_CMOVZ,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const std::vector<ZydisMnemonic> whitelist = {
|
|
|
|
|
ZYDIS_MNEMONIC_PUSH, ZYDIS_MNEMONIC_POP, ZYDIS_MNEMONIC_CALL,
|
|
|
|
|