¿Hay un ofuscador de rubí o "compilador"?Ruby obfuscator
Respuesta
Hay algunas opciones, como RubyScript2Exe o AllInOneRuby. Sin embargo, todos los ofuscadores de idiomas interpretados tienden a tener un defecto grave: por lo general no entienden las técnicas de metaprogramación más sofisticadas.
Es decir, que no necesariamente detecte a que algo como foo.send(:bar, ...)
es una invocación del método bar
en una biblioteca completamente diferente, o que eval("require %w{abc def ghi}")
significa para requerir tres bibliotecas diferentes. Estos son ejemplos triviales: las cosas se vuelven mucho más complejas cuando lanzas method_missing
y su estilo en la mezcla.
Cuando un ofuscador encuentra este tipo de código, diligentemente compilará las instrucciones apropiadas, pero puede que no sepa incluir también ciertas bibliotecas u otro código de otra parte. Eso puede causar problemas graves, ya que dinámicamente include
d o require
d no estará disponible en tiempo de ejecución en un archivo ejecutable enlazado estáticamente.
Desafortunadamente, muchas gemas y bibliotecas usan sofisticadas técnicas de metaprogramación. Es probable que se meta en problemas aquí si intenta usar la ofuscación y espera que su programa tenga el mismo comportamiento. Peor aún, debido a que hay tantos niveles de direccionamiento indirecto, si ocurre un error en la versión ofuscada, es posible que nunca sepas qué sucedió exactamente o cómo reproducirlo.
RubyScript2Exe - http://www.erikveen.dds.nl/rubyscript2exe/
Dependiendo de lo que esté tratando de hacer, hay una Gema que le permitirá crear una extensión C a partir de un script de Ruby que luego se puede usar como un requerimiento dentro de su aplicación Ruby. Se llama ruby2cext. Ofuscará todo su código en C y podrá requerir .so en un script de Ruby separado y funcionará como un script de Ruby normal.
este proyecto se ve bien ... es una pena que esté abandonado :(editar: https://github.com/rdp/crystalizer –
- 1. Obfuscator .Net
- 2. . Obfuscator .Net Problems
- 3. Obfuscator & Tech Support
- 4. Obfuscator SWF gratuito
- 5. Cómo escribir su propio .net obfuscator
- 6. Cómo crear mi propio dotnet obfuscator
- 7. Ofuscación de múltiples ensamblados .NET relacionados con obfuscator de babel
- 8. Obfuscator Opción "Prevenir que Microsoft Desensamblador IL abra mi ensamblaje"
- 9. En busca de una función de obfuscator de dirección de correo electrónico sólo php
- 10. ¿Hay un obfuscator .NET gratuito que admita la operación de línea de comandos?
- 11. Ruby vs. Ruby on Rails
- 12. Intellisense para Ruby, Ruby on Rails, Python
- 13. Ruby: ¿Cómo agrupar una matriz de Ruby?
- 14. Ruby Enterprise Edition vs Ruby 1.9
- 15. Ruby 1.9 más lento que Ruby 1.8?
- 16. TDD: Rspec Ruby MongoDB/Ruby Mongo Driver
- 17. Perfilando una aplicación ruby / ruby on rails
- 18. Lanzamiento de Ruby sin el prefijo "Ruby"
- 19. ruby operator "= ~"
- 20. Ruby Basics
- 21. Ruby: console.log?
- 22. date_select Ruby
- 23. Ruby Grammar
- 24. Ruby: extiéndete
- 25. Ruby Performance
- 26. Ruby Semaphores?
- 27. RAII en Ruby (O, Cómo administrar recursos en Ruby)
- 28. ruby / ruby on rails detección de fuga de memoria
- 29. ¿Cómo envuelvo una extensión Ruby C en una Ruby Gem?
- 30. Obtener inf-ruby para usar ruby version manager (rvm)
Nota: Este no es un comentario sobre la capacidad de RubyScript2Exe o AllInOneRuby específicamente, solo comentarios generales sobre la inadecuación de ofuscadores en idiomas que tienen poderosas capacidades de reflexión/introspección. –