Warum eine PDF überhaupt Skripte hat
PDF unterstützt JavaScript seit Acrobat 3. Es sorgt dafür, dass ein Formular eine Spalte addiert, ein falsch geschriebenes Datum zurückweist oder ein Feld sperrt, bis ein Kästchen angekreuzt ist. Es ist auch der Grund, warum sich eine bösartige PDF zu verschicken lohnt.
Die meisten Werkzeuge, die PDF-JavaScript zu erkennen versprechen, schauen nur in /Names /JavaScript. Das ist der Speicher auf Dokumentebene, und in einem echten Geschäftsformular ist er meist leer. Der interessante Code hängt an einzelnen Feldern.
Alle geprüften Orte
/Names /JavaScript— der Namensbaum auf Dokumentebene. Ein Baum, keine Liste: wer nur das Wurzel-Array liest, findet in einer skriptreichen Datei nichts./OpenAction— läuft im Moment des Öffnens, bevor Sie ein Wort gelesen haben.- Zusätzliche Dokumentaktionen — vor dem Schließen, vor und nach dem Speichern, vor und nach dem Drucken.
- Seitenaktionen — beim Öffnen und Schließen der Seite.
- Anmerkungsaktionen — die
/A-Aktion eines Links oder Buttons sowie Maus-Eintritt, Maus-Austritt, Maustaste gedrückt und losgelassen, Fokus und Fokusverlust. - Formularfeldaktionen — Tastendruck, Format, Prüfung und Berechnung. Hier steckt der Code jedes Formulars, das irgendetwas tut.
/AcroForm /CO— die Berechnungsreihenfolge, die entscheidet, welche von zwei voneinander abhängigen Summen gewinnt.
Aktionsketten über /Next werden verfolgt: wer beim ersten Glied stehenbleibt, liest den harmlosen Teil und verpasst die Übergabe.
Beobachtungen, keine Urteile
Aufrufe wie app.launchURL, this.submitForm, this.exportDataObject, Net.HTTP, eval und lange Ketten aus \uNNNN-Escapes werden als Gründe markiert, das Skript zu lesen. Keiner davon beweist etwas: eine seriöse Reisekostenabrechnung ruft submitForm auf, eine seriöse Vorlage ruft util.printf auf. Die Markierung sagt nur, wo man hinsehen sollte.
Nichts wird ausgeführt
Skripte werden als Text aus dem Objektgraphen gelesen und angezeigt. Sie werden nie ausgewertet, nie in die Seite injiziert, nie über das Netz geladen. Kopieren Sie eines, speichern Sie es als .js, oder nehmen Sie alle als ZIP mit JSON-Bericht mit.
Datenschutz
Die Datei wird vollständig im Browser gelesen und nie hochgeladen — was gerade dann zählt, wenn die geprüfte Datei die ist, der Sie nicht trauen.
Tiny Online Tools







