|
|
|
#pragma once
|
|
|
|
#include <obf/transform/operation.hpp>
|
|
|
|
|
|
|
|
#include <obf/transform/add_op.hpp>
|
|
|
|
#include <obf/transform/and_op.hpp>
|
|
|
|
#include <obf/transform/or_op.hpp>
|
|
|
|
#include <obf/transform/rol_op.hpp>
|
|
|
|
#include <obf/transform/ror_op.hpp>
|
|
|
|
#include <obf/transform/sub_op.hpp>
|
|
|
|
#include <obf/transform/xor_op.hpp>
|
|
|
|
|
|
|
|
namespace theo::obf::transform {
|
|
|
|
inline std::map<xed_iclass_enum_t, operation_t*> operations = {
|
|
|
|
{XED_ICLASS_ADD, add_op_t::get()}, {XED_ICLASS_SUB, sub_op_t::get()},
|
|
|
|
{XED_ICLASS_AND, and_op_t::get()}, {XED_ICLASS_OR, or_op_t::get()},
|
|
|
|
{XED_ICLASS_ROL, rol_op_t::get()}, {XED_ICLASS_ROR, ror_op_t::get()},
|
|
|
|
{XED_ICLASS_XOR, xor_op_t::get()}};
|
|
|
|
}
|