Desofuscador y desempaquetador de Ruby
Detecta y revierte la ofuscacion de Ruby automaticamente. Identifica cadenas codificadas con Base64.decode64() y Base64.strict_decode64(), decodificacion Base64 con .unpack("m"), patrones de cifrado XOR, llamadas de envio dinamico con send(), definiciones en tiempo de ejecucion con define_method, eval() anidado con desenvolvimiento recursivo y cadenas empaquetadas en hex mediante .pack("H*"). Cada deteccion incluye puntuacion de confianza, numeros de linea de origen y contexto del codigo circundante. Gratis, privado y sin registro.
Detect and reverse Ruby obfuscation techniques. Automatically identifies Base64 eval, .unpack("m"), XOR cipher patterns, send() dynamic dispatch, define_method, nested eval, and hex-packed strings with confidence ratings and source context.
Paste Ruby code above and click Analyze Ruby Codeto detect obfuscation patterns. The tool identifies Base64 eval, .unpack("m"), XOR cipher patterns, send() dispatch, define_method, nested eval, and hex-packed strings. Try loading an example to see how it works!
Funciones
- 7 detectores de patrones de ofuscacion de Ruby: detecta automaticamente cadenas codificadas con Base64.decode64() y Base64.strict_decode64(), decodificacion Base64 con .unpack('m'), patrones de bytes con cifrado XOR (bytes.zip.cycle.map .pack), llamadas de envio dinamico send(), definiciones dinamicas define_method, eval() anidado con decodificacion recursiva y cadenas empaquetadas en hex con .pack('H*'). Cada detector usa coincidencia de patrones especializada para Ruby.
- Visualizacion de valores codificados y analisis decodificado: cada deteccion muestra el valor codificado original o el indicador de ofuscacion junto al resultado decodificado o el analisis en una tarjeta limpia. Las cadenas Base64 se decodifican por completo, el eval anidado se desenvuelve recursivamente hasta 3 niveles y las llamadas send/define_method muestran los nombres de metodo dinamicos.
- Puntuacion de confianza y contexto de origen: cada deteccion recibe una calificacion de confianza de 1 a 5: muy alta para Base64 decodificado que contiene palabras clave de Ruby (def, class, require), alta para decodificaciones correctas, media para detecciones send/define_method y baja para patrones XOR que requieren tiempo de ejecucion. Se incluyen numeros de linea de origen y contexto del codigo circundante para cada indicador.
- 100 % local en el navegador y privado: toda la desofuscacion de Ruby se ejecuta integramente en tu navegador. Tu codigo Ruby, todos los indicadores detectados, los valores decodificados y los resultados del analisis nunca salen de tu dispositivo. Sin subidas a servidores, sin llamadas a API, sin almacenamiento de datos y sin rastreo.
Que es la desofuscacion de Ruby?
La desofuscacion de Ruby es el proceso de detectar y revertir tecnicas de ofuscacion deliberada de codigo usadas en programas Ruby. El codigo Ruby ofuscado suele ocultar cadenas, llamadas a metodos y logica para evadir el analisis estatico, eludir herramientas de seguridad o proteger propiedad intelectual. Entre las tecnicas comunes estan codificar cadenas con Base64, usar .unpack("m") para decodificacion en linea, ocultar llamadas a metodos tras el envio dinamico send(), definir metodos en tiempo de ejecucion con define_method y envolver cargas utiles en llamadas eval() anidadas. Desofuscar Ruby es esencial para el analisis de seguridad, la respuesta a incidentes y la comprension de codigo Ruby malicioso o protegido.
Como funciona nuestro desofuscador de Ruby
El desofuscador de Ruby escanea el codigo fuente Ruby con coincidencia de patrones consciente del lenguaje para cada tecnica de ofuscacion. Las llamadas Base64.decode64() se detectan extrayendo el argumento de cadena y decodificandolo mediante la funcion atob() del navegador. Los patrones .unpack("m") se identifican y decodifican de forma similar. Las llamadas eval() anidadas se desenvuelven recursivamente hasta 3 niveles, intentando decodificar el Base64 interno en cada nivel. Las llamadas send() se identifican por sus argumentos de nombre de metodo en cadena, y las definiciones define_method se capturan con sus nombres de metodo. Los patrones de cifrado XOR (bytes.zip con cycle.map y XOR sobre pack) se detectan con indicadores de contexto. Todo el procesamiento se ejecuta localmente en tu navegador.
Limitaciones y consideraciones
Esta herramienta tiene limitaciones importantes. Los patrones de cifrado XOR se detectan, pero no se pueden decodificar sin la clave real en tiempo de ejecucion: se marcan para investigacion manual. No se admite cifrado personalizado con las bibliotecas OpenSSL o Digest de Ruby. La construccion de cadenas basada en variables ("this_" + "that") no se detecta como ofuscacion, ya que es un patron Ruby legitimo. Las cargas utiles comprimidas con gzip no se manejan, ya que Zlib de Ruby no esta disponible en el navegador. Verifica siempre la salida decodificada antes de actuar sobre ella: pueden producirse falsos positivos por coincidencias casuales de cadenas.
Privacidad y seguridad
Esta herramienta se ejecuta integramente en tu navegador con JavaScript del lado del cliente. El codigo Ruby que pegas, todos los indicadores de ofuscacion detectados, los valores decodificados y los resultados del analisis nunca se suben a ningun servidor, se almacenan en ninguna base de datos ni se transmiten por la red. Todo el analisis, la coincidencia de patrones y la decodificacion se ejecutan localmente en tu dispositivo. No hay llamadas a API, rastreo de analiticas, cookies ni recopilacion de datos de ningun tipo. Esto la hace totalmente segura para analizar codigo Ruby propietario, gemas de terceros, muestras de malware o codigo fuente sensible.
Preguntas frecuentes
La herramienta detecta siete patrones comunes de ofuscacion de Ruby: Base64.decode64() y Base64.strict_decode64() con cadenas codificadas en Base64, decodificacion Base64 con .unpack("m"), manipulacion de bytes con cifrado XOR (bytes.zip con cycle.map y XOR), llamadas de envio dinamico send() con nombres de metodo en cadena, definiciones dinamicas de metodos con define_method, eval() anidado con decodificacion Base64 recursiva hasta 3 niveles de profundidad, y cadenas codificadas en hex con .pack("H*").
Cuando la herramienta encuentra una llamada eval() con un argumento de cadena, intenta recursivamente decodificar cualquier llamada interna Base64.decode64() o .unpack("m") dentro de esa cadena. Cada capa decodificada se revisa de nuevo en busca de mas llamadas eval(), hasta 3 niveles de profundidad. Esto revela el codigo Ruby real una vez retiradas todas las capas de ofuscacion.
Los patrones de cifrado XOR suelen usar una clave definida en otra parte del codigo o construida dinamicamente, lo que hace imposible descifrarlos sin ejecucion en tiempo de ejecucion. La herramienta detecta el patron estructural (bytes.zip con cycle y XOR) y lo marca para investigacion manual. Puedes ejecutar el fragmento XOR en un entorno de ejecucion Ruby para obtener el valor decodificado real.
Las puntuaciones de confianza van de 1 a 5. La puntuacion 5 (muy alta) se asigna cuando el contenido decodificado en Base64 contiene palabras clave de Ruby como def, class, require o module, prueba solida de codigo Ruby ofuscado. La 4 (alta) es para decodificaciones base64/unpack correctas o desenvolvimiento de eval anidado multinivel. La 3 (media) es para detecciones de envio send() y define_method. La 2 (baja) es para detecciones de patrones XOR cuya decodificacion requiere ejecucion en tiempo de ejecucion.
No. La herramienta cubre los patrones de ofuscacion de Ruby mas comunes, pero no puede manejar todos los metodos. No puede decodificar cadenas construidas mediante concatenacion, arrays o busquedas en hashes. No puede descifrar datos cifrados con OpenSSL, revertir funciones de transformacion ni manejar datos comprimidos con Zlib de Ruby. La ofuscacion avanzada puede requerir analisis dinamico en un entorno de ejecucion Ruby.
En Ruby, send() permite la invocacion dinamica de metodos por nombre: en lugar de obj.method(), los atacantes usan obj.send("method") para ocultar el nombre del metodo al analisis estatico. define_method crea metodos en tiempo de ejecucion, permitiendo definir codigo dinamicamente. Ambas son herramientas legitimas de metaprogramacion, pero se abusan con frecuencia en codigo Ruby ofuscado para evadir la deteccion por firmas.
Totalmente. El desofuscador de Ruby se ejecuta integramente en tu navegador. Tu codigo Ruby, los indicadores detectados, los valores decodificados y los resultados del analisis nunca se suben a ningun servidor, ni se almacenan en ninguna base de datos, ni se transmiten por la red. Todo el procesamiento ocurre localmente en tu dispositivo, sin llamadas a API ni recopilacion de datos.
Si: 100 % gratis, sin registro, sin cuenta y sin limites de uso. Analiza tanto codigo Ruby como necesites, tantas veces como quieras. No hay niveles premium, cargos ocultos ni limites de velocidad. La herramienta se ejecuta integramente en tu navegador: tu codigo nunca sale de tu dispositivo.