Tiny Online Tools logoTiny Online ToolssearchПоиск инструментов…grid_viewВсе инструменты
Главнаяchevron_rightИнструменты обратной разработкиchevron_rightWASM ДекомпиляторWASM Декомпилятор

WASM Декомпилятор

Преобразуйте бинарный файл WebAssembly в читаемый текст WAT с графом вызовов по функциям, структурой потока управления и предположением о тулчейне.

upload_file

Нажмите для выбора или перетащите файлы сюда

Перетащите файл .wasm, чтобы декомпилировать его

Допустимо: .wasm

Похожие инструменты

WASM Бинарный Проводник

WASM Бинарный Проводник

Просматривайте секции, функции, импорты, экспорты, память, таблицы и глобальные переменные модуля WebAssembly с точными смещениями и размерами в байтах.

WASM Визуализатор Импорта/Экспорта

WASM Визуализатор Импорта/Экспорта

Узнайте, что модулю WebAssembly нужно от хоста и что он предлагает взамен, сгруппировано по пространству имён, бок о бок.

WASM Демангл

WASM Демангл

Демангл имён символов Rust и C++, найденных в бинарном файле WebAssembly, по одному или массово по всему файлу.

Анализатор размера WASM

Анализатор размера WASM

Узнайте, какие функции и сегменты данных занимают больше всего места в модуле WebAssembly — с точной сортированной разбивкой и визуальной картой-treemap.

QR код генератор

QR код генератор

Generate QR codes из текст or URLs.

Генератор Случайных Дат

Генератор Случайных Дат

Генерируйте случайные даты в заданном диапазоне с настройками количества, формата и времени.

Конвертер кодировки текста

Конвертер кодировки текста

Преобразуйте текст в UTF-8 hex-байты, Base64 или percent encoding.

apps

Больше инструментов

Просмотрите нашу полную коллекцию бесплатных онлайн-инструментов.

Бинарный файл .wasm не предназначен для прямого чтения — но его можно преобразовать в WAT, читаемый текстовый формат WebAssembly, и проанализировать структурно, выходя за рамки простого потока инструкций. WASM Декомпилятор делает и то, и другое, прямо в браузере.

Проясним, что это такое, а что нет. Этот инструмент не восстанавливает исходный код на Rust, C или C++ — эта информация теряется, как только компилятор создаёт WASM. Что он восстанавливает точно:

  • Полный дизассемблированный WAT, созданный wabt (WebAssembly Binary Toolkit), с применёнными отладочными именами, если модуль содержит секцию "name".
  • Граф вызовов, построенный путём обхода реального байткода каждой функции в поисках инструкций call и call_indirect — а не угаданный из текста WAT. call_indirect показывает, на какую сигнатуру типа функции он нацелен, никогда не угаданную конкретную функцию, потому что реальная цель разрешается только во время выполнения — это структурный факт о коде, а не ограничение этого инструмента.
  • Структуру потока управления по функциям: максимальную глубину вложенности block/loop/if и количество каждого, давая приблизительное представление о структурной сложности функции без необходимости полного графа потока управления.
  • Предположение о тулчейне на основе доказательств — "вероятно Rust", "вероятно Emscripten (C/C++)" или "вероятно AssemblyScript" — основанное на реальных, проверяемых доказательствах: искажённых префиксах символов Rust, характерных импортах рантайма Emscripten (emscripten_*, __cxa_*, __wasm_call_ctors), или строках пути стандартной библиотеки AssemblyScript ~lib/, найденных в сегментах данных модуля. Инструмент всегда показывает конкретные найденные доказательства и формулирует результат как "вероятно" — никогда как достоверность, и никогда как догадку без обоснования.

Функция, байткод которой использует инструкцию за пределами моделируемого набора опкодов инструмента (SIMD, атомарные операции, операции с массовой памятью), помечается как "частичный дизассемблированный код", а не молча показывается как полная — честность о границах анализа важнее аккуратного результата.

Полезно для аудита структуры стороннего модуля .wasm, понимания того, как его функции вызывают друг друга, или для первого знакомства с незнакомым бинарным файлом перед более глубоким анализом.