¿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
Respuesta
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.
Bueno, aquí también está mi pequeño experimento: http://blogs.conus.info/node/58 –
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.
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.
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.
- 1. ¿Por qué el compilador genera este código?
- 2. ¿Qué código genera el compilador para el autoboxeo?
- 3. Código de C# ofuscado
- 4. Código ofuscado en C
- 5. Depuración código ofuscado java
- 6. Ocultando cadenas en el código ofuscado
- 7. compilador genera constructores
- 8. Descompilación de código de byte ofuscado java
- 9. ¿Código de JavaScript ofuscado con valores binarios?
- 10. ¿Es incorrecto volver a ofuscar el código ofuscado?
- 11. Desencriptar el script Perl ofuscado
- 12. ¿El compilador solo compilará el código que se puede ejecutar?
- 13. ¿El compilador .NET JIT genera código diferente para parámetros genéricos con diferentes enumeraciones?
- 14. Reflector: ¿El comentario en este código significa que todo está ofuscado?
- 15. ¿Cómo depurar JavaScript ofuscado?
- 16. Cómo hacer que CC-Tray funcione
- 17. ¿Puede usted unidad de prueba de código ofuscado?
- 18. ¿Genera código Java en Eclipse?
- 19. compilador genera código incorrecto para los métodos anónimos [MS error corregido]
- 20. Ofuscación del código de Android con ProGuard ... ¿cómo sabe uno que se ha ofuscado?
- 21. Python que genera Python
- 22. Pruebas de unidad de escritura en mi compilador (que genera IL)
- 23. ¿Cuándo el compilador optimiza mi código
- 24. En makefiles, ¿qué significan CC y LD?
- 25. SBT genera código usando el generador definido por el proyecto
- 26. ¿Qué es call/cc?
- 27. Detalles de call/cc
- 28. Continuación (call/cc) en el Esquema
- 29. PHP Mail, CC Field
- 30. El código ofuscado de Android Proguard causa NullPointerException cuando realmente no debería ser
'-O3' es realmente difícil de descifrar – Anycorn
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 –
Huh. No es gracioso. –