Fråga:
Öppet källkodsverktyg för nedbrytning av en PDF
Lizz
2013-04-03 08:09:07 UTC
view on stackexchange narkive permalink

Jag har letat efter ett GUI-verktyg med öppen källkod för att extrahera PDF-filer på ett automatiserat sätt i Windows-system. Jag har använt Didier Stevens verktyg med stort intresse ett tag, men kan inte förstå hur man använder hans PDF-sönderdelning / analysverktyg, även efter att ha sett några av hans videor . De verkar kräva betydande förståelse för den underliggande PDF-konstruktionen och möjligen mycket mer.

För SWF-filer är verktyget SWFScan den typen jag letar efter: du laddar fil i fråga i verktyget. Därifrån kan du utforska länkar, skript och bilder. Den analyserar till och med koden automatiskt och visar vilka delar som kan ha säkerhetsproblem och vad problemet är för var och en, ger sedan en webbsidaraferens med mer information.

Känner någon till ett bra GUI för öppen källkod för Windows som kan ladda en PDF och inte köra den utan extrahera alla skript, sammanställd kod, text, länkar, bilder etc.? Helst skulle det visa förhållandet för var och en, som när du klickar på en viss bild, skulle det berätta vilket skript som körs, vilken URL det går till och låta dig se bilden på egen hand.

PDF-filer är så vanliga, bredvid SWF, att den här typen av verktyg verkar som om det redan skulle vara vanligt. Jag kanske har förbisett det / dem.

Didier Stevens-verktyg används ofta, men du har rätt, du behöver en förståelse för PDF-filformatet om du vill förstå det. Jag har ett (något långt) [blogginlägg] (http://www.amccormack.net/anatomy-of-a-pdf-document/) som går igenom en PDF-fil rad för rad för att förklara grunderna i strukturen, men inget av det använder några GUI-verktyg. Didier har också en [mall] (http://blog.didierstevens.com/programs/pdf-tools/) för [010 Editor] (http://www.sweetscape.com/010editor/). 010 har ett starkt rykte och du kan prova det gratis i 30 dagar
@amccormack Bra kommentar, taggredigering och bra skrivning - jag läser det nu. Intressant nog är det övertygande att verktyget jag letar efter * borde * existera - även om det bara är kommersiellt, vilket jag skulle betala för om det var bra. Jag brukade tänka att bra verktyg vanligtvis är text / kommandoradsbaserade, men fall som detta får mig att inse att en bild ibland är värd mer än 1 000 ord. Även med större komplexitet än SWF-filer finns det fortfarande en struktur som kan dra nytta av ett sådant verktyg.
Underhålls sedan 2006, men ändå ett intressant verktyg: http://multivalent.sourceforge.net/
Https://github.com/qpdf/qpdf kan också hjälpa, det kan konvertera pdf till ett mer mänskligt läsbart format, på källnivå.
Jag kan inte längre komma åt @amccormack's blogginlägg under länken i hans kommentar; Jag hittar det här, med en något förändrad URL: https://amccormack.net/2012-01-22-anatomy-of-a-pdf-document.html Tack!
Fem svar:
Mick
2013-04-03 23:14:38 UTC
view on stackexchange narkive permalink

Sogetis Origami-ramverk levereras med ett GTK-baserat GUI.

Vad är det?

origami är ett Ruby-ramverk utformat för att analysera, analysera och smida PDF-dokument. Detta är INTE ett PDF-renderingsbibliotek. Det syftar till att tillhandahålla ett skriptverktyg för att generera och analysera skadliga PDF-filer. Den kan också användas för att skapa skräddarsydda PDF-filer direkt eller för att injicera (onda) koder i redan existerande dokument.

Funktioner

  • Skapa PDF-dokument från grunden.
  • Analysera befintliga dokument, ändra dem och kompilera dem om.
  • Utforska dokument på objektnivå, gå djupt in i dokumentstrukturen, komprimera PDF-objektströmmar och avmarkera namn och strängar.
  • Högnivååtgärder, som kryptering / dekryptering, signatur, filbilagor ...
  • Ett GTK-gränssnitt för att snabbt bläddra i dokumentets innehåll.

enter image description here

Så här installerade jag det på mitt Windows 7-system:

  • Se till att du har Ruby v1.9.3 installerad för Windows http://rubyinstaller.org/downloads/
  • OBS: Detta kan fungera på nyare / äldre Ruby-versioner, men jag har bara testat på v1.9.3 på Windows 7. (Det fungerar med ruby ​​v1.8.7 på mitt Linux-system)
  • Installera sedan origami genom att öppna en ADMIN cmd-uppmaning och kör:

    gem install origami

  • Därefter måste du installera ruby -gtk2 . Från samma ADMIN cmd-prompt som tidigare, kör:

    gem install gtk2

  • Installera sedan pdfwalker, eftersom den flyttades till en separat pärla:

    gem install pdfwalker

Slutligen kör du bara pdfwalker från en cmd-uppmaning.

Om detta inte fungerar för dig föreslår jag att du försöker stegen ovan från Cygwin, där du i princip kan följa instruktionerna för installation på * nix.

Om du installerar det på Ubuntu / Debian

Installera ruby ​​med följande kommando:

apt install ruby-full

Installera sedan origami enligt listan ovan:

gem install origami

Om du vill använda GUI kommer du måste förmodligen installera libgtk2.0-dev och installera rake-pärlan för att du ska kunna installera gtk2:

  apt install libgtk2.0-devgem install rakekem install gtk2  

Eftersom pdfwalker också behöver libcanberra är det en bra idé att installera det nu:

apt install libcanberra-gtk-module

Efteråt installera pdfwalker eftersom den flyttades till en separat pärla:

gem installera pdfwalker

Och den ska köras från kommandoraden som beskrivs ovan.

Det här skulle vara jättebra, men jag verkar inte få GUI 'pdfwalker' installerat / kört. När jag tittar på webbsidan ser jag inte Windows-support. Kan du peka på mig hur jag kan få den här appens GUI att köras på Windows?
Jag uppdaterade mitt svar med steg för installation på Windows. Jag har det på mitt Windows 7-system nu.
Uppdatering för Ruby 2.2., Gtk2-2.2.5: Du behöver en hel del Cygwin-paket för att detta ska fungera. Förutom gcc och make är listan över bibliotek inte uppenbar och innebär att man kör 'gem install origami' och [http://superuser.com/questions/923190/gem-installation-failling-with-the-compiler-failed-to- generera-en-körbar-fi] (läser mkmf.log) för att se vilka bibliotek det misslyckas med. Det kräver också att du installerar en X-server, startar den, `exportera DISPLAY =: 0.0` och till och med jag får:` /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in `require ': superclass mismatch för klass Datum (TypeError) `
Denis Laskov
2013-04-03 12:23:08 UTC
view on stackexchange narkive permalink

För att extrahera skadligt innehåll, till exempel skript och exploater, kan du titta på onlineverktyg:

Wepawet - onlineverktygssats för analys av js \ pdf \ flash-filer.

Jsunpack - verktygslåda online för analys av filer som kan innehålla packad \ kodad JavaScript-kod, som PDF \ HTML \ JS. fungerar också med .pcap-filer

Dessutom - offlineverktyg för Linux (ja, inte GUI, men bra verktyg) för att extrahera skalkoder och dolda fält:

Pdfextract - Ett offline kommandoradsverktyg och bibliotek som kan extrahera olika textområden från en PDF.

broadway
2013-04-03 12:21:09 UTC
view on stackexchange narkive permalink

Kanske PdfStreamDumper är tillräckligt nära vad du vill, men du behöver fortfarande lite kunskap om PDF för att använda den effektivt.

Lägg till en kort beskrivning om länken och / eller relevant fråga. Endast länk-svar anses inte vara svar.
jduck
2013-04-04 00:37:08 UTC
view on stackexchange narkive permalink

Jag rekommenderar Cerbero Profiler!

Cerbero Profiler är ett verktyg som huvudsakligen är utformat för malware och kriminalteknisk analys. Den stöder ett stort antal filformat (listade nedan) som analyserar och låter användaren inspektera sin interna layout. Profiler används ofta för att identifiera 0-dagars hot och personlig information i filer. Med tanke på projektets omfattning har det många andra användningsområden och vi uppmuntrar dig att besöka vår blogg för att se Profilen i aktion.

Du kanske också vill kolla in mitt verktyg för öppen källkod för fil-dissekering. Jag skrev en PDF-parser för det, men har inte begått det ännu. Tyvärr, jag vet att det inte hjälper mycket. Jag kommer dock så småningom att trycka upp det.

tibar
2017-11-16 20:36:00 UTC
view on stackexchange narkive permalink

Även om det inte finns något GUI, tror jag att det är värt att nämna kommandoradsverktyg som hjälper till med på ett automatiserat sätt en del av din fråga. Jag har personligen använt det mupdf associerade kommandoradsverktyget: mutool.

Till exempel arbetar jag med följande PDF-fil, här är vad du skulle göra för att extrahera den inkapslade JPX-strömmen:

  $ 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) / Creator (Adobe InDesign 1.5.2) / Producer (Adobe PDF Library 4.16 ) >>Sidor: 1Hämta information från sidorna 1-1 ... Mediaboxer (1): 1 (54 0 R): [0 0 612 792] Bilder (1): 1 (54 0 R): [JPX] 300x161 8bpc Idx ( 58 0 R)  

Så du behöver helt enkelt:

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

Du kan verifiera:

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

Se dokumentation:


För PDF / A-3: EmbeddedFile (som i den här filen) kan du till och med köra:

  $ mutool portfolio ZUGFeRD_1p0_BASIC_Einfach.pdf x 0 ZUGFeRD- invoice.xml $ head ZUGFeRD-invoice.xml<? xml version = "1.0" encoding = "UTF-8"? ><! - Nutzungsrechte ZUGFeRD Dataformat Version 1.0, 25.6.2014Beispiel Version 29.09.2014Z eV („FeRD“) är ua die Schaffung und Spezifizierung eines offenen Datenformats für strukturierten elektronischen Datenaustausch auf der Grundlage offener and nicht diskriminierender, standardisierter Technologien („ZUGFeRD Datenformat“)  

Se dokumentation:

OP ber om GUI-verktyg
Jag saknade det faktiskt, detta strider mot 'på ett automatiserat sätt' imho
i de flesta fall ja, men behöver inte


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...