Cómo utilizar llvm-obfuscator para ofuscar código
Método de ofuscación 1: sustitución de comandos
[html]?Ver texto sin formato
-mllvm?-sub:?Activar sustitución de comandos
- mllvm?funcSUB="func1, func2, func3": Si la sustitución de instrucciones está activada, esta sustitución de instrucciones solo se aplica en las funciones func1, func2 y func3
-mllvm? p >
2. Ofuscación 2: BogusControlFlow
[html]?Ver texto sin formato
-mllvm?-bcf: Activar entrega de flujo de control falso
- mllvm?funcBCF="func1, func2, func3": Si el pase está activado, el pase solo se aplica en las funciones func1, func2, func3
-mllvm?-perBCF=20: Si el pase está activado , entonces la transferencia se aplica a todas las funciones con probabilidad 20. Valor predeterminado: 100
-mllvm?-boguscf-prob=40: si esta opción está activada, los bloques básicos se ofuscarán con una probabilidad de 40. Valor predeterminado: 30
3. Método de ofuscación 3: Controlar el aplanamiento del flujo
[html]?Ver texto sin formato
-mllvm?-fla: Activar el flujo de control aplanamiento
-mllvm?funcFLA="func1, func2, func3": Si se activa el aplanamiento del flujo de control, la función solo se aplica en las funciones func1, func2 y func3
-mllvm? -perFLA=20: Si el aplanamiento del flujo de control está activado, aplique la función en cada función con una probabilidad de 20
4. ¿Cómo compilar el ofuscador O-LLVM desde código abierto?
[cpp] ?ver copia simple
$?git?clone?-b?llvm-3.5?/obfuscator-llvm/obfuscator.git?
$?mkdir?build?
$?cd?build?
$?cmake?-DCMAKE_BUILD_TYPE:String=Release?.../obfuscator/?/obfuscator/?
$?make? -j5?
Solo bin y lib son útiles en los resultados de la compilación, el resto se puede eliminar: