mirror of
https://github.com/heroims/obfuscator
synced 2026-06-08 14:39:10 +00:00
36 lines
1.3 KiB
C++
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); |