2010-11-06 32 views
16

¿Hay algún compilador C/C++ que genere código ofuscado/noise? O tal vez algún parche para el compilador C/C++ de fuente abierta como GCC?compilador C/C++ que genera el código ofuscado

+8

'-O3' es realmente difícil de descifrar – Anycorn

+8

Bueno, el código de máquina es C y Los compiladores de C++ producen ya bastante ofuscados. Ahora que lo pienso, algunos códigos C y C++ que he visto ya están bastante distorsionados ... :-P –

+0

Huh. No es gracioso. –

Respuesta

3

Si está interesado en herramientas comerciales, puede consultar Morpher (descargo de responsabilidad: yo trabajo en este proyecto). Esencialmente es una versión de llvm-gcc con pases de ofuscación adicionales; se supone que debes utilizar Morpher como reemplazo directo para gcc. Los pases de ofuscación incluyen protección constante, clonación de bloques básicos y funciones, mallado de arcos CFG y otros; se describen en el documentation section con ejemplos de ensamblaje. Los idiomas admitidos oficialmente son C/C++/Objective-C/Objective-C++, aunque podemos adaptarlo a cualquier cosa que se pueda compilar en LLVM IR según su solicitud.

+0

Bueno, aquí también está mi pequeño experimento: http://blogs.conus.info/node/58 –

3

Puede ofuscar el ensamblador con http://www.pelock.com/products/obfuscator. Probablemente pueda compilar a ensamblador (en este caso, estilo MASM) y luego ofuscarlo.

Editar: Usando muchas virtual de funciones/indirecta y/o un intérprete (es decir, crear su propio mini-código de bytes para ciertas etapas de su procesamiento) como parte de los resultados de código, en mi experiencia, en el código bastante unreverseable.

-1

Otro enfoque puede ser ejecutar el ejecutable dentro de un entorno VM protegido. ZProtect - un producto que no he usado ni aprobado, sino que encuentro con "Tengo suerte Google", afirma que proporciona múltiples niveles de protección de código (VM, cifrado, ofuscación, etc.).

Si alguien realmente quiere saber realmente cómo hizo algo, lo sabrá, si se trata de un robo de propiedad intelectual, contrate a un buen abogado. Si es criptografía, utiliza un enfoque probado de la industria. Y si se trata de algo DRM, bueno, esa es una pelea moviéndose al hardware (y a los rootkits) de todos modos.

+2

DRM es una pelea moviéndose hacia lo estúpido. Los piratas ganarán, eventualmente. Lo mismo con cualquier otro IP, tan pronto como se vaya, solo es cuestión de tiempo hasta que alguien lo quite completamente de tu control. – BCS

+0

esto no es, creo que el asnwer – MLSC

1

Cualquier compilador eso es capaz de generar un pseudo número al azar-esque (a través de __COUNTER__) y puede inyectar bytes en una corriente de ensamblado en línea (a través de __emit) puede realizar la ofuscación de código en línea, su nada como lo empacadores externos y obfuscaters hacer, lo cual puede ser una ventaja. La 'fuerza' se basa principalmente en la cantidad de metaprogramación que pones en ella, pero obviamente nunca podrás decir cifrar IAT, etc.

Cuestiones relacionadas