Перейти к содержимому
Aback Tools Logo

Деобфускатор и распаковщик Ruby

Автоматически обнаруживайте и обращайте обфускацию Ruby. Инструмент выявляет строки, закодированные Base64.decode64() и Base64.strict_decode64(), Base64-декодирование через .unpack("m"), паттерны XOR-шифра, вызовы динамической диспетчеризации send(), определения во время выполнения define_method, вложенный eval() с рекурсивной распаковкой и hex-упакованные строки через .pack("H*"). Каждое обнаружение включает оценку уверенности, номера строк исходного кода и контекст окружающего кода. Бесплатно, приватно и без регистрации.

Ruby Deobfuscator & Unpacker

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.

Examples:

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!

Возможности

  • 7 детекторов паттернов обфускации Ruby: автоматически находит строки, закодированные Base64.decode64() и Base64.strict_decode64(), Base64-декодирование через .unpack('m'), байтовые паттерны XOR-шифра (bytes.zip.cycle.map .pack), вызовы динамической диспетчеризации send(), динамические определения define_method, вложенный eval() с рекурсивным декодированием и hex-упакованные строки через .pack('H*'). Каждый детектор использует специализированное сопоставление с учётом синтаксиса Ruby.
  • Отображение закодированных значений и декодированного анализа: каждое обнаружение показывает исходное закодированное значение или индикатор обфускации рядом с декодированным результатом либо анализом в аккуратной карточке. Строки Base64 декодируются полностью, вложенный eval рекурсивно распаковывается до 3 уровней, а вызовы send/define_method показывают динамические имена методов.
  • Оценка уверенности и исходный контекст: каждое обнаружение получает оценку уверенности от 1 до 5: очень высокая — для декодированного Base64, содержащего ключевые слова Ruby (def, class, require), высокая — для успешных декодирований, средняя — для обнаружений send/define_method и низкая — для XOR-паттернов, требующих выполнения. Для каждого индикатора включены номера строк исходного кода и контекст окружающего кода.
  • 100 % локально в браузере и приватно: вся деобфускация Ruby выполняется полностью в вашем браузере. Ваш Ruby-код, все обнаруженные индикаторы, декодированные значения и результаты анализа никогда не покидают устройство. Никаких загрузок на сервер, вызовов API, хранения данных и отслеживания.

Что такое деобфускация Ruby?

Деобфускация Ruby — это процесс обнаружения и обращения намеренных техник обфускации кода, используемых в Ruby-программах. Обфусцированный Ruby-код часто скрывает строки, вызовы методов и логику, чтобы обойти статический анализ, обойти инструменты безопасности или защитить интеллектуальную собственность. Распространённые техники включают кодирование строк в Base64, использование .unpack("m") для встроенного декодирования, сокрытие вызовов методов за динамической диспетчеризацией send(), определение методов во время выполнения через define_method и оборачивание полезной нагрузки во вложенные вызовы eval(). Деобфускация Ruby необходима для анализа безопасности, реагирования на инциденты и понимания вредоносного или защищённого Ruby-кода.

Как работает наш деобфускатор Ruby

Деобфускатор Ruby сканирует исходный код Ruby с помощью сопоставления паттернов с учётом языка для каждой техники обфускации. Вызовы Base64.decode64() обнаруживаются путём извлечения строкового аргумента и его декодирования через функцию браузера atob(). Паттерны .unpack("m") выявляются и декодируются аналогично. Вложенные вызовы eval() рекурсивно распаковываются до 3 уровней, где на каждом уровне делается попытка декодировать внутренний Base64. Вызовы send() определяются по их строковым аргументам-именам методов, а определения define_method фиксируются вместе с именами методов. Паттерны XOR-шифра (bytes.zip с cycle.map и XOR на pack) обнаруживаются с контекстными флагами. Вся обработка выполняется локально в вашем браузере.

Ограничения и замечания

У этого инструмента есть важные ограничения. Паттерны XOR-шифра обнаруживаются, но не могут быть декодированы без реального ключа во время выполнения — они помечаются для ручного исследования. Пользовательское шифрование с библиотеками Ruby OpenSSL или Digest не поддерживается. Построение строк через переменные ("this_" + "that") не определяется как обфускация, поскольку это легитимный паттерн Ruby. Сжатые gzip-данные не обрабатываются, так как Ruby Zlib недоступен в браузере. Всегда проверяйте декодированный вывод перед действиями на его основе — возможны ложные срабатывания при случайных совпадениях строк.

Приватность и безопасность

Этот инструмент работает полностью в вашем браузере на клиентском JavaScript. Ruby-код, который вы вставляете, все обнаруженные индикаторы обфускации, декодированные значения и результаты анализа никогда не загружаются на сервер, не сохраняются в базе данных и не передаются по сети. Весь разбор, сопоставление паттернов и декодирование выполняются локально на вашем устройстве. Нет вызовов API, аналитического отслеживания, cookies и сбора данных любого рода. Поэтому инструмент полностью безопасен для анализа проприетарного Ruby-кода, сторонних гемов, образцов вредоносного ПО и чувствительного исходного кода.

Часто задаваемые вопросы

Инструмент обнаруживает семь распространённых паттернов обфускации Ruby: Base64.decode64() и Base64.strict_decode64() со строками в Base64, Base64-декодирование через .unpack("m"), манипуляции с байтами через XOR-шифр (bytes.zip с cycle.map и XOR), вызовы динамической диспетчеризации send() со строковыми именами методов, динамические определения методов через define_method, вложенный eval() с рекурсивным Base64-декодированием до 3 уровней и hex-строки через .pack("H*").

Когда инструмент встречает вызов eval() со строковым аргументом, он рекурсивно пытается декодировать все внутренние вызовы Base64.decode64() или .unpack("m") в этой строке. Каждый декодированный слой снова проверяется на дополнительные вызовы eval(), до 3 уровней. Так раскрывается настоящий Ruby-код после снятия всех слоёв обфускации.

Паттерны XOR-шифра обычно используют ключ, определённый в другом месте кода или сконструированный динамически, что делает расшифровку без выполнения во время выполнения невозможной. Инструмент обнаруживает структурный паттерн (bytes.zip с cycle и XOR) и помечает его для ручного исследования. Вы можете выполнить XOR-фрагмент в среде Ruby, чтобы получить реальное декодированное значение.

Оценки уверенности варьируются от 1 до 5. Оценка 5 (очень высокая) ставится, когда декодированное содержимое Base64 содержит ключевые слова Ruby вроде def, class, require или module — сильное свидетельство обфусцированного Ruby-кода. 4 (высокая) — для успешных декодирований base64/unpack или многоуровневой распаковки вложенного eval. 3 (средняя) — для обнаружения send()-диспетчеризации и define_method. 2 (низкая) — для обнаружения XOR-паттернов, декодирование которых требует выполнения во время выполнения.

Нет. Инструмент охватывает самые распространённые паттерны обфускации Ruby, но не справляется со всеми методами. Он не декодирует строки, собранные через конкатенацию, массивы или поиск в хешах. Он не расшифровывает данные OpenSSL, не обращает функции преобразования и не обрабатывает данные, сжатые Ruby Zlib. Для продвинутой обфускации может потребоваться динамический анализ в среде выполнения Ruby.

В Ruby send() позволяет динамически вызывать метод по имени: вместо obj.method() атакующие используют obj.send("method"), чтобы скрыть имя метода от статического анализа. define_method создаёт методы во время выполнения, позволяя определять код динамически. Оба — легитимные инструменты метапрограммирования, но их часто злоупотребляют в обфусцированном Ruby-коде, чтобы обойти сигнатурное обнаружение.

Абсолютно. Деобфускатор Ruby работает полностью в вашем браузере. Ваш Ruby-код, обнаруженные индикаторы, декодированные значения и результаты анализа никогда не загружаются на сервер, не сохраняются в базе данных и не передаются по сети. Вся обработка выполняется локально на вашем устройстве, без вызовов API и сбора данных.

Да — 100 % бесплатно, без регистрации, без аккаунта и без ограничений. Анализируйте столько Ruby-кода, сколько нужно, столько раз, сколько хотите. Нет премиум-уровней, скрытых платежей и лимитов скорости. Инструмент работает полностью в браузере — ваш код никогда не покидает устройство.