Soru:
Bir PDF'yi ayrıştırmak için açık kaynaklı GUI aracı
Lizz
2013-04-03 08:09:07 UTC
view on stackexchange narkive permalink

Windows sistemlerinde PDF'leri otomatik bir şekilde çıkarmak için açık kaynaklı bir GUI aracı arıyordum. Didier Steven'ın araçlarını bir süredir büyük bir ilgiyle kullandım, ancak videolarından bazılarını izledikten sonra bile PDF ayrıştırma / analiz araçlarını nasıl kullanacağımı anlayamıyorum . Altta yatan PDF yapısının önemli ölçüde anlaşılmasını ve muhtemelen çok daha fazlasını gerektiriyor gibi görünüyorlar.

SWF dosyaları için, SWFScan aracı aradığım türden: söz konusu dosyayı araca yerleştirin. Oradan bağlantıları, komut dosyalarını ve resimleri keşfedebilirsiniz. Hatta kodu otomatik olarak analiz eder ve hangi parçaların güvenlik sorunları olabileceğini ve her biri için sorunun ne olduğunu gösterir, ardından daha fazla bilgi içeren bir web sayfası referansı verir.

Herkes için iyi bir açık kaynaklı GUI bilen var mı? Bir PDF yükleyebilen ve yürütemeyen ancak tüm komut dosyalarını, derlenmiş kodu, metni, bağlantıları, görüntüleri vb. Çıkaran Windows? İdeal olarak, her birinin ilişkisini gösterir, örneğin belirli bir resme tıkladığınızda, hangi komut dosyalarının çalıştırıldığını, hangi URL'ye gittiğini söyler ve resmi kendi başına görmenizi sağlar.

PDF'ler SWF'nin yanında o kadar yaygındır ki, bu tür bir araç zaten yaygın gibi görünüyor. Gözden kaçırmış olabilirim / onları.

Didier Stevens araçları yaygın olarak kullanılmaktadır, ancak haklısınız, anlamak istiyorsanız PDF dosya biçimini anlamanız gerekir. Yapının temellerini açıklamak için bir PDF dosyasında satır satır dolaşan (biraz uzun) [blog gönderisi] (http://www.amccormack.net/anatomy-of-a-pdf-document/) var, ancak hiçbiri herhangi bir GUI aracı kullanmaz. Didier'de ayrıca [010 Editor] (http://www.sweetscape.com/010editor/) için bir [şablon] (http://blog.didierstevens.com/programs/pdf-tools/) vardır. 010 güçlü bir üne sahiptir ve 30 gün boyunca ücretsiz deneyebilirsiniz
@amccormack Harika yorum, etiket düzenleme ve harika yazma - Şimdi okuyorum. İlginç bir şekilde, aradığım aracın * var olması * gerektiğine * inandırıyor - sadece ticari olarak olsa bile, iyi olsaydı bunun için ödeme yapardım. Eskiden harika araçların genellikle metin / komut satırı tabanlı olduğunu düşünürdüm, ancak bunun gibi durumlar bir resmin bazen 1.000 kelimeden daha değerli olduğunu anlamamı sağlıyor. SWF dosyalarından daha karmaşık olsa bile, böyle bir araçtan yararlanabilecek bir yapı vardır.
2006'dan beri bakımsız, ancak yine de ilginç bir araç: http://multivalent.sourceforge.net/
Ayrıca, https://github.com/qpdf/qpdf yardımcı olabilir, pdf'yi kaynak düzeyinde daha okunabilir bir biçime dönüştürebilir.
Artık yorumundaki bağlantının altındaki @amccormack's blog gönderisine erişemiyorum; Burada biraz değiştirilmiş bir URL ile buluyorum: https://amccormack.net/2012-01-22-anatomy-of-a-pdf-document.html Teşekkürler!
Beş yanıtlar:
#1
+30
Mick
2013-04-03 23:14:38 UTC
view on stackexchange narkive permalink

Sogeti'nin Origami çerçevesi, GTK tabanlı bir GUI ile birlikte gelir.

Nedir?

origami PDF belgelerini ayrıştırmak, analiz etmek ve taklit etmek için tasarlanmış bir Ruby çerçevesi. Bu bir PDF oluşturma kitaplığı DEĞİLDİR. Kötü amaçlı PDF dosyaları oluşturmak ve analiz etmek için bir komut dosyası oluşturma aracı sağlamayı amaçlamaktadır. Ayrıca, anında özelleştirilmiş PDF'ler oluşturmak veya halihazırda mevcut belgelere (kötü) kod eklemek için kullanılabilir.

  • PDF belgelerini sıfırdan oluşturun.
  • Mevcut belgeleri ayrıştırın, değiştirin ve yeniden derleyin.
  • Belge yapısının derinliklerine inerek, sıkıştırılmış PDF nesne akışlarını açarak ve adları ve dizeleri gizlemeyi kaldırarak belgeleri nesne düzeyinde keşfedin.
  • Şifreleme / şifre çözme, imza, dosya ekleri gibi üst düzey işlemler ...
  • Belge içeriğine hızlı bir şekilde göz atmak için bir GTK arayüzü.

enter image description here

Windows 7 sistemime şu şekilde yükledim:

  • Sahip olduğunuzdan emin olun Windows http://rubyinstaller.org/downloads/ için yüklü Ruby v1.9.3
  • NOT: Bu, daha yeni / daha eski Ruby sürümlerinde çalışabilir, ancak yalnızca Windows 7'de v1.9.3'te test ettim (Linux sistemimde ruby ​​v1.8.7 ile çalışıyor)
  • Ardından, bir ADMIN cmd istemi ve çalışıyor:

    gem install origami

  • Ardından, ruby'yi yüklemeniz gerekecek -gtk2 . Daha önce olduğu gibi aynı ADMIN cmd komut isteminden şunu çalıştırın:

    gem install gtk2

  • Daha sonra pdfwalker'ı, taşındığı için yükleyin ayrı bir cevher için:

    gem install pdfwalker

Son olarak, pdfwalker 'ı bir cmd istemi.

Bu sizin için işe yaramazsa, esasen * nix üzerine kurulum talimatlarını izleyebileceğiniz Cygwin 'den yukarıdaki adımları denemenizi öneririm.

Ubuntu / Debian'a kuruyorsanız

Ruby'yi aşağıdaki komutla kurun:

apt install ruby-full

Daha sonra origami'yi yukarıda listelendiği gibi kurun:

gem install origami

GUI'yi kullanmak istiyorsanız, gtk2'yi kurabilmeniz için muhtemelen libgtk2.0-dev'i kurmanız ve rake gem'i kurmanız gerekir:

  apt install libgtk2.0-devgem install rakegem install gtk2  

pdfwalker da libcanberra'ya ihtiyaç duyduğundan, onu şimdi kurmak iyi bir fikirdir:

apt install libcanberra-gtk-module

Sonrasında pdfwalker'ı kurun, çünkü ayrı bir gemiye taşındı:

gem install pdfwalker

Ve yukarıda açıklandığı gibi komut satırından çalıştırılmalıdır.

Bu harika olurdu, ancak GUI 'pdfwalker'ı kurmuş / çalışıyormuş gibi görünmüyorum. Web sayfasına baktığımda Windows desteğini görmüyorum. Bu uygulamanın GUI'sini Windows üzerinde nasıl çalıştırabileceğimi bana gösterebilir misiniz?
Cevabımı Windows'a yükleme adımlarıyla güncelledim. Şimdi Windows 7 sistemimde çalıştırıyorum.
Ruby 2.2., Gtk2-2.2.5 için güncelleme: Bunun çalışması için çok sayıda Cygwin paketine ihtiyacınız var. Gcc ve make'in yanı sıra, kitaplıkların listesi açık değildir ve "gem install origami" ve [http://superuser.com/questions/923190/gem-installation-failling-with-the-compiler-failed-to- çalıştırmayı içerir. generate-an-execable-fi] (mkmf.log dosyasını okur) hangi kitaplıklarda başarısız olduğunu görmek için. Aynı zamanda bir X sunucusu kurmayı, başlatmayı, `dışa aktarma DISPLAY =: 0.0` gerektirir ve hatta şunu elde ederim:` /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in 'required': sınıf için süper sınıf uyuşmazlığı Tarih (TypeError) '
#2
+8
Denis Laskov
2013-04-03 12:23:08 UTC
view on stackexchange narkive permalink

Komut dosyaları ve açıklardan yararlanma gibi çoğunlukla kötü amaçlı içeriği çıkarmak için çevrimiçi araçlara bakabilirsiniz:

Wepawet - js \ pdf \ flash dosyalarının analizi için çevrimiçi araç seti.

Jsunpack - PDF \ HTML \ JS gibi paketlenmiş \ kodlanmış JavaScript kodu içerebilen dosyaların analizi için çevrimiçi araç seti. .pcap dosyalarıyla da çalışır

Ek olarak - kabuk kodlarını ve gizli alanları çıkarmak için linux için çevrimdışı araç (iyi, GUI değil, ancak iyi bir araç):

Pdfextract - Bir PDF'den çeşitli metin alanlarını çıkarabilen çevrimdışı bir komut satırı aracı ve kitaplık.

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

Belki PdfStreamDumper istediğiniz şeye yeterince yakındır, ancak yine de etkili bir şekilde kullanmak için biraz PDF bilgisine ihtiyacınız olacak.

Lütfen bağlantı ve / veya ilgili konu hakkında kısa bir açıklama ekleyin. Yalnızca bağlantı yanıtları yanıt olarak kabul edilmez.
#4
+5
jduck
2013-04-04 00:37:08 UTC
view on stackexchange narkive permalink

Cerbero Profiler 'ı şiddetle tavsiye ederim!

Cerbero Profiler, öncelikle kötü amaçlı yazılım ve adli analiz için tasarlanmış bir araçtır. Üzerinde analiz gerçekleştirdiği çok sayıda dosya formatını (aşağıda listelenmiştir) destekler ve kullanıcının kendi iç düzenini incelemesine izin verir. Profiler genellikle 0 günlük tehditleri ve dosyaların içindeki kişisel bilgileri tanımlamak için kullanılır. Bununla birlikte, projenin ölçeği göz önüne alındığında, başka birçok kullanım alanına sahiptir ve Profiler'ı çalışırken görmek için blogumuzu ziyaret etmenizi öneririz.

Ayrıca kontrol etmek isteyebilirsiniz açık kaynak dosya inceleme aracım. Bunun için bir PDF ayrıştırıcı yazdım, ancak henüz taahhüt etmedim. Üzgünüm, bunun pek yardımcı olmadığını biliyorum. Yine de eninde sonunda bunu yukarı çekeceğim.

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

GUI olmasa da, sorunuzun otomatik bir şekilde bir parçası olarak yardımcı olacak komut satırı araçlarından bahsetmeye değer olduğuna inanıyorum. Ben şahsen mupdf ilişkili komut satırı aracını kullandım: mutool.

Örneğin aşağıdaki PDF dosyası, burada kapsüllenmiş JPX akışını çıkarmak için yapmanız gerekenler:

  $ mutool info Bug691816.pdf Bug691816.pdf: PDF-1.5Info nesnesi (49 0 R ): << / ModDate (D: 20101122114310-08'00 ') / CreationDate (D: 20101122114251-08'00') / Başlık (ID1561x.indd) / Creator (Adobe InDesign 1.5.2) / Producer (Adobe PDF Library 4.16 ) >> Sayfalar: 1 1-1 sayfalarından bilgi alınıyor ... Mediaboxes (1): 1 (54 0 R): [0 0 612 792] Resimler (1): 1 (54 0 R): [JPX] 300x161 8bpc Idx ( 58 0 R)  

Yani yapmanız gereken tek şey:

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

Şunları doğrulayabilirsiniz:

  $ file obj58.jp2obj58.jp2: JPEG 2000 Bölüm 1 (JP2)  

Belgelere bakın:


PDF / A-3: Gömülü Dosya ( bu dosyada olduğu gibi) şunları da çalıştırabilirsiniz:

  $ mutool portföy ZUGFeRD_1p0_BASIC_Einfach.pdf x 0 ZUGFeRD- invoice.xml $ head ZUGFeRD-invoice.xml<? xml version = "1.0" kodlama = "UTF-8"? ><! - Nutzungsrechte ZUGFeRD Datenformat Sürüm 1.0, 25.6.2014 eV ("FeRD") ist ua die Schaffung und Spezifizierung eines offenen Datenformats für strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht diskriminierender, standardisierter Technologien ("ZUGFeRD Datenformat")  

Belgelere bakın:

OP, GUI aracını ister
Aslında bunu kaçırdım, bu "otomatik bir şekilde" imho ile çelişiyor
çoğu durumda evet, ancak zorunlu değil


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...