Frage:
Open Source GUI Tool zum Zerlegen einer PDF
Lizz
2013-04-03 08:09:07 UTC
view on stackexchange narkive permalink

Ich habe nach einem Open-Source-GUI-Tool gesucht, um PDFs auf Windows-Systemen automatisiert zu extrahieren. Ich habe die Tools von Didier Steven eine Weile mit großem Interesse verwendet, kann aber auch nach dem Ansehen einiger seiner Videos keinen Sinn für die Verwendung seiner PDF-Zerlegungs- / Analysetools ergeben . Sie scheinen ein umfassendes Verständnis der zugrunde liegenden PDF-Konstruktion und möglicherweise noch viel mehr zu erfordern.

Für SWF-Dateien ist das Tool SWFScan die Art, nach der ich suche: Sie laden das Datei in Frage in das Tool. Von dort aus können Sie die Links, Skripte und Bilder erkunden. Es analysiert sogar automatisch den Code und zeigt an, bei welchen Teilen Sicherheitsprobleme auftreten können und um welches Problem es sich handelt. Anschließend wird eine Webseitenreferenz mit weiteren Informationen angezeigt.

Kennt jemand eine gute Open-Source-Benutzeroberfläche für Windows, das eine PDF-Datei laden und nicht ausführen kann, sondern alle Skripte, kompilierten Code, Text, Links, Bilder usw. extrahiert? Im Idealfall wird die Beziehung zwischen den einzelnen Skripten angezeigt. Wenn Sie beispielsweise auf ein bestimmtes Bild klicken, erfahren Sie, welche Skripte ausgeführt werden, zu welcher URL sie gehen, und können das Bild einzeln anzeigen. P. >

PDFs sind neben SWF so häufig, dass diese Art von Tool bereits häufig vorkommt. Ich habe es vielleicht übersehen.

Didier Stevens-Tools sind weit verbreitet, aber Sie haben Recht, Sie benötigen ein Verständnis des PDF-Dateiformats, wenn Sie es verstehen möchten. Ich habe einen (etwas längeren) [Blog-Beitrag] (http://www.amccormack.net/anatomy-of-a-pdf-document/), der Zeile für Zeile durch eine PDF-Datei geht, um die Grundlagen der Struktur zu erklären. Aber keines davon verwendet irgendwelche GUI-Tools. Didier hat auch eine [Vorlage] (http://blog.didierstevens.com/programs/pdf-tools/) für [010 Editor] (http://www.sweetscape.com/010editor/). 010 hat einen guten Ruf und Sie können es 30 Tage lang kostenlos testen
@amccormack Großartiger Kommentar, Tag-Bearbeitung und großartige Berichterstattung - ich lese ihn jetzt. Interessanterweise überzeugt es mich, dass das Tool, nach dem ich suche, existieren sollte - auch wenn es nur kommerziell ist, wofür ich bezahlen würde, wenn es gut wäre. Früher dachte ich, dass großartige Tools normalerweise auf Text / Befehlszeile basieren, aber in solchen Fällen wird mir klar, dass ein Bild manchmal mehr als 1.000 Wörter wert ist. Selbst bei einer höheren Komplexität als SWF-Dateien gibt es immer noch eine Struktur, die von einem solchen Tool profitieren könnte.
Seit 2006 nicht mehr gewartet, aber immer noch ein interessantes Tool: http://multivalent.sourceforge.net/
Auch https://github.com/qpdf/qpdf kann helfen, es kann das PDF auf der Quellenebene in ein besser lesbares Format konvertieren.
Ich kann unter dem Link in seinem Kommentar nicht mehr auf den @amccormack's-Blogbeitrag zugreifen. Ich finde es hier mit einer leicht geänderten URL: https://amccormack.net/2012-01-22-anatomy-of-a-pdf-document.html Vielen Dank!
Fünf antworten:
#1
+30
Mick
2013-04-03 23:14:38 UTC
view on stackexchange narkive permalink

Sogetis Origami-Framework wird mit einer GTK-basierten Benutzeroberfläche geliefert.

Was ist das?

Origami ist Ein Ruby-Framework zum Parsen, Analysieren und Fälschen von PDF-Dokumenten. Dies ist KEINE PDF-Rendering-Bibliothek. Ziel ist es, ein Skript-Tool zum Generieren und Analysieren schädlicher PDF-Dateien bereitzustellen. Es kann auch verwendet werden, um benutzerdefinierte PDFs im laufenden Betrieb zu erstellen oder um (bösen) Code in bereits vorhandene Dokumente einzufügen.

Funktionen

  • Erstellen Sie PDF-Dokumente von Grund auf neu.
  • Analysieren Sie vorhandene Dokumente, ändern Sie sie und kompilieren Sie sie neu.
  • Durchsuchen Sie Dokumente auf Objektebene, gehen Sie tief in die Dokumentstruktur ein, dekomprimieren Sie PDF-Objektströme und entfernen Sie Namen und Zeichenfolgen.
  • Übergeordnete Vorgänge wie Verschlüsselung / Entschlüsselung, Signatur, Dateianhänge ...
  • Eine GTK-Schnittstelle zum schnellen Durchsuchen des Dokumentinhalts.

enter image description here

So habe ich es auf meinem Windows 7-System installiert:

HINWEIS: Dies funktioniert möglicherweise auf neueren / älteren Ruby-Versionen. Ich habe es jedoch nur unter v1.9.3 unter Windows 7 getestet. (Es funktioniert mit Ruby v1.8.7 auf meinem Linux-System.)
  • Installieren Sie als Nächstes Origami, indem Sie ein ADMIN cmd-Eingabeaufforderung und wird ausgeführt:

    gem install origami

  • Als Nächstes müssen Sie ruby ​​installieren -gtk2 . Führen Sie an derselben ADMIN-Cmd-Eingabeaufforderung wie zuvor Folgendes aus:

    gem install gtk2

  • Installieren Sie anschließend pdfwalker, da es verschoben wurde zu einem separaten Juwel:

    gem install pdfwalker

  • Führen Sie abschließend einfach pdfwalker aus eine cmd-Eingabeaufforderung.

    Wenn dies bei Ihnen nicht funktioniert, empfehlen wir Ihnen, die obigen Schritte von Cygwin aus zu versuchen, wo Sie im Wesentlichen den Anweisungen zur Installation auf * nix folgen können.

    Wenn Sie es unter Ubuntu / Debian installieren

    Installieren Sie Ruby mit dem folgenden Befehl:

    apt install ruby-full

    Installieren Sie anschließend Origami wie oben aufgeführt:

    gem install origami

    Wenn Sie die GUI verwenden möchten, werden Sie Wahrscheinlich müssen Sie libgtk2.0-dev installieren und das Rake-Gem installieren, damit Sie gtk2 installieren können:

      apt install libgtk2.0-devgem install rakegem install gtk2  

    Da pdfwalker auch libcanberra benötigt, ist es eine gute Idee, es jetzt zu installieren:

    apt install libcanberra-gtk-module

    Danach Installieren Sie pdfwalker, da es in ein separates Gem verschoben wurde:

    gem install pdfwalker

    Und es sollte wie oben beschrieben über die Befehlszeile ausgeführt werden.

    Das wäre großartig, aber ich kann die GUI 'pdfwalker' anscheinend nicht installieren / ausführen. Wenn ich mir die Webseite anschaue, sehe ich keine Windows-Unterstützung. Können Sie mir zeigen, wie ich die GUI dieser App unter Windows zum Laufen bringen kann?
    Ich habe meine Antwort mit Schritten zur Installation unter Windows aktualisiert. Ich habe es jetzt auf meinem Windows 7-System ausgeführt.
    Update für Ruby 2.2., GTK2-2.2.5: Sie benötigen eine ganze Reihe von Cygwin-Paketen, damit dies funktioniert. Neben gcc und make ist die Liste der Bibliotheken nicht offensichtlich und beinhaltet das Ausführen von `gem install origami` und [http://superuser.com/questions/923190/gem-installation-failling-with-the-compiler-failed-to- generate-an-executeable-fi] (Lesen des mkmf.log), um zu sehen, in welchen Bibliotheken es fehlschlägt. Außerdem muss ein X-Server installiert und gestartet werden, "DISPLAY =: 0.0 exportieren", und sogar ich erhalte: "/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in" require ": Superclass Mismatch for Class Datum (TypeError) `
    #2
    +8
    Denis Laskov
    2013-04-03 12:23:08 UTC
    view on stackexchange narkive permalink

    Um hauptsächlich schädliche Inhalte wie Skripte und Exploits zu extrahieren, können Sie sich Online-Tools ansehen:

    Wepawet - Online-Toolkit zur Analyse von js \ pdf \ flash-Dateien.

    Jsunpack - Online-Toolkit zur Analyse von Dateien, die gepackten \ codierten JavaScript-Code enthalten können, z. B. PDF \ HTML \ JS. Arbeiten Sie auch mit .pcap-Dateien.

    Zusätzlich - Offline-Tool für Linux (naja, keine GUI, aber gutes Tool) zum Extrahieren von Shellcodes und versteckten Feldern:

    Pdfextract - Ein Offline-Befehlszeilentool und eine Bibliothek, mit denen verschiedene Textbereiche aus einer PDF-Datei extrahiert werden können.

    #3
    +6
    broadway
    2013-04-03 12:21:09 UTC
    view on stackexchange narkive permalink

    Vielleicht PdfStreamDumper ist nah genug an dem, was Sie wollen, aber Sie benötigen noch einige PDF-Kenntnisse, um es effektiv nutzen zu können.

    Bitte fügen Sie eine kurze Beschreibung des Links und / oder der relevanten Angelegenheit hinzu. Nur-Link-Antworten gelten nicht als Antworten.
    #4
    +5
    jduck
    2013-04-04 00:37:08 UTC
    view on stackexchange narkive permalink

    Ich kann Cerbero Profiler nur empfehlen!

    Der Cerbero Profiler ist ein Tool, das hauptsächlich für Malware und forensische Analysen entwickelt wurde. Es unterstützt eine Vielzahl von Dateiformaten (siehe unten), in denen Analysen durchgeführt werden, und ermöglicht es dem Benutzer, das interne Layout zu überprüfen. Der Profiler wird häufig verwendet, um 0-Tage-Bedrohungen und persönliche Informationen in Dateien zu identifizieren. Angesichts des Umfangs des Projekts hat es jedoch viele andere Verwendungszwecke. Wir empfehlen Ihnen, unseren Blog zu besuchen, um den Profiler in Aktion zu sehen.

    Vielleicht möchten Sie auch einen Blick darauf werfen mein Open-Source-Tool zum Zerlegen von Dateien. Ich habe einen PDF-Parser dafür geschrieben, ihn aber noch nicht festgeschrieben. Entschuldigung, ich weiß, dass das nicht viel hilft. Ich werde es aber irgendwann hochschieben.

    #5
    +2
    tibar
    2017-11-16 20:36:00 UTC
    view on stackexchange narkive permalink

    Obwohl es keine grafische Benutzeroberfläche gibt, ist es meines Erachtens erwähnenswert, Befehlszeilentools zu erwähnen, die beim automatisierten Teil Ihrer Frage helfen. Ich habe persönlich das mupdf zugeordnete Befehlszeilentool verwendet: mutool .

    Zum Beispiel arbeiten Sie an den folgenden PDF-Datei, hier ist, was Sie tun würden, um den gekapselten JPX-Stream zu extrahieren:

      $ mutool info Bug691816.pdf Bug691816.pdf: PDF-1.5Info-Objekt (49 0 R. ): << / ModDate (D: 20101122114310-08'00 ') / CreationDate (D: 20101122114251-08'00') / Titel (ID1561x.indd) / Ersteller (Adobe InDesign 1.5.2) / Produzent (Adobe PDF Library 4.16 ) >>Seiten: 1 Abrufen von Informationen von den Seiten 1-1 ... Mediaboxen (1): 1 (54 0 R): [0 0 612 792] Bilder (1): 1 (54 0 R): [JPX] 300 x 161 8 bpc Idx ( 58 0 R)  

    Sie müssen also einfach:

      $ mutool show -be -o obj58.jp2 Bug691816.pdf 58  

    Sie können Folgendes überprüfen:

      $ file obj58.jp2obj58.jp2: JPEG 2000 Teil 1 (JP2)  

    Siehe Dokumentation:

    hr>

    Für PDF / A-3: EmbeddedFile (wie in dieser Datei) können Sie sogar ausführen:

      $ mutool Portfolio ZUGFeRD_1p0_BASIC_Einfach.pdf x 0 ZUGFeRD- rechnung.xml $ head ZUGFeRD-rechnung.xml<? xml version = "1.0" encoding = "UTF-8"? - ><! eV („FeRD“) ist ua Die zugehörigen und Spezifikation eines offenen Datenformats für strukturierte Rechte Datenaustausch auf der Grundlage Grundlage und nicht diskriminierend, Standard Dokumentationen (ZUGFeRD Datenformat)  

    Siehe Dokumentation:

    OP fragt nach dem GUI-Tool
    In der Tat habe ich das verpasst, dies widerspricht imho "auf automatisierte Weise"
    in den meisten Fällen ja, muss aber nicht


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...