Files
heroims-obfuscator/llvm/lib/Transforms/Obfuscation/LegacyPMRegistration.cpp
heroims 2d2edd27e0 init
2022-04-11 17:27:31 +08:00

36 lines
1.3 KiB
C++

#include "Transforms/Obfuscation/BogusControlFlow.h"
#include "Transforms/Obfuscation/Flattening.h"
#include "Transforms/Obfuscation/Split.h"
#include "Transforms/Obfuscation/Substitution.h"
#include "Transforms/Obfuscation/StringObfuscation.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
using namespace llvm;
static void registerOllvmPass(const PassManagerBuilder &,
legacy::PassManagerBase &PM) {
PM.add(createBogus(true));
#if LLVM_VERSION_MAJOR >= 9
PM.add(createLowerSwitchPass());
#endif
PM.add(createFlattening(true));
PM.add(createSplitBasicBlock(true));
PM.add(createSubstitution(true));
}
static void registerOllvmModulePass(const PassManagerBuilder &,
legacy::PassManagerBase &PM) {
PM.add(createStringObfuscation(true));
}
static RegisterStandardPasses
RegisterMyPass1(PassManagerBuilder::EP_EnabledOnOptLevel0,
registerOllvmModulePass);
static RegisterStandardPasses
RegisterMyPass2(PassManagerBuilder::EP_OptimizerLast,
registerOllvmModulePass);
static RegisterStandardPasses
RegisterMyPass3(PassManagerBuilder::EP_EarlyAsPossible,
registerOllvmFunctionPass);