Tiny Online Tools logoTiny Online ToolssearchПоиск инструментов…grid_viewВсе инструменты
Главнаяchevron_rightPDF инструментыchevron_rightИнспектор JavaScript в PDFИнспектор JavaScript в PDF

Инспектор JavaScript в PDF

Находит все сценарии внутри PDF — действия документа, события страниц и аннотаций, расчёты полей форм — и показывает их, не запуская.

upload_file

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

Выберите PDF для поиска сценариев

Допустимо: .pdf,application/pdf

shieldНайденные сценарии здесь только читаются и показываются как текст. Ничего не выполняется, не внедряется в эту страницу и никуда не отправляется.

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

Извлечение вложений из PDF

Извлечение вложений из PDF

Находит и сохраняет все файлы, вложенные в PDF, включая вложения в аннотациях и связанные файлы PDF 2.0.

Очистка метаданных PDF

Очистка метаданных PDF

Удаляет из PDF автора, программу, отметки времени, XMP и другие скрытые данные — и показывает доказательство, что каждое значение действительно исчезло.

Извлечение ссылок из PDF

Извлечение ссылок из PDF

Показывает все ссылки в PDF — внешние, внутренние, почтовые и «голые» URL в тексте без аннотаций — со страницей, видимым текстом и пометками риска.

Извлечение структуры PDF

Извлечение структуры PDF

Превращает PDF в структурированный JSON — заголовки, абзацы, списки, таблицы и изображения — по тегам документа или по разметке страницы.

Минификатор JS

Минификатор JS

Минифицирует JavaScript, удаляя комментарии и пробелы.

Конвертировать AVIF в JPG

Конвертировать AVIF в JPG

Конвертируйте современные AVIF-изображения в универсальный формат JPG прямо в браузере.

Диктофон

Диктофон

Записывайте звук прямо с микрофона в браузере. Скачивайте в формате WebM/Opus или M4A. Полная конфиденциальность, загрузка не требуется.

apps

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

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

Зачем PDF вообще сценарии

PDF поддерживает JavaScript со времён Acrobat 3. Именно он заставляет форму складывать столбец, отклонять неверно введённую дату или блокировать поле, пока не поставлена галочка. Он же делает вредоносный PDF достойным отправки.

Большинство инструментов, обещающих обнаружить JavaScript в PDF, смотрят только в /Names /JavaScript. Это хранилище уровня документа, и в настоящей деловой форме оно обычно пусто. Интересный код привязан к конкретным полям.

Все места, где идёт поиск

  • /Names /JavaScript — дерево имён уровня документа. Это дерево, а не список: тот, кто читает только корневой массив, ничего не найдёт в файле с большим числом сценариев.
  • /OpenAction — срабатывает в момент открытия документа, ещё до первого прочитанного слова.
  • Дополнительные действия документа — перед закрытием, до и после сохранения, до и после печати.
  • Действия страницы — при открытии и закрытии страницы.
  • Действия аннотаций — действие /A ссылки или кнопки, а также вход и выход мыши, нажатие, отпускание, получение и потеря фокуса.
  • Действия полей формы — нажатие клавиши, форматирование, проверка и расчёт. Именно здесь находится код любой формы, которая что-то делает.
  • /AcroForm /CO — порядок расчёта, определяющий, какая из двух зависимых сумм побеждает.

Цепочки действий через /Next прослеживаются: остановившийся на первом звене прочтёт безобидную часть и пропустит передачу управления.

Наблюдения, а не приговоры

Вызовы вроде app.launchURL, this.submitForm, this.exportDataObject, Net.HTTP, eval и длинные цепочки escape-последовательностей \uNNNN отмечаются как повод прочитать сценарий. Ни один из них ничего не доказывает: законный авансовый отчёт вызывает submitForm, а законный шаблон — util.printf. Отметка лишь указывает, куда смотреть.

Ничего не выполняется

Сценарии читаются из графа объектов как текст и отображаются. Они никогда не вычисляются, не внедряются в страницу и не загружаются по сети. Скопируйте один, сохраните как .js или заберите все в ZIP вместе с отчётом JSON.

Конфиденциальность

Файл полностью разбирается в вашем браузере и никуда не загружается — что особенно важно, когда изучаемый файл как раз и есть тот, которому вы не доверяете.