Red de conocimiento informático - Material del sitio web - Cómo utilizar llvm-obfuscator para ofuscar código

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?

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: