Diğer yanıtlarda bahsedilen GUI tabanlı araçların yanı sıra, orijinal PDF kaynak kodunu farklı bir gösterime dönüştürebilen ve (şimdi değiştirilmiş dosyayı) bir metin düzenleyiciyle incelemenizi sağlayan birkaç komut satırı aracı vardır. Aşağıdaki tüm araçlar Linux, Mac OS X, diğer Unix sistemleri veya Windows üzerinde çalışır.
qpdf (benim favorim)
Sıkıştırılmış (çoğu) nesnenin akışlarını açmak ve ayrıca ObjStmnesneleri ayrı dolaylı nesnelere ayırmak için qpdf kullanın :
qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf
qpdfkendisini "PDF dosyalarında yapısal, içeriği koruyan dönüştürmeler" yapan bir araç olarak tanımlıyor .
Ardından uncompressed-qpdf.pdf, en sevdiğiniz metin düzenleyicide dosyayı açın + inceleyin . Önceden sıkıştırılmış (ve dolayısıyla ikili) baytların çoğu artık düz metin olacaktır.
mutool
Orada da mutoolbirlikte geliyor komut satırı aracı MuPDF (aynı şirket tarafından yapılan Ghostscript'e kardeş ürünüdür, PDF görüntüleyici Artifex ). Aşağıdaki komut aynı zamanda akışları açar ve bir metin düzenleyici aracılığıyla incelemeyi daha kolay hale getirir:
mutool clean -d orig.pdf uncompressed-mutool.pdf
podofouncompress
PoDoFo , PDF formatıyla çalışmak için bir FreeSoftware / OpenSource kitaplığıdır ve dahil olmak üzere birkaç komut satırı aracı içerirpodofouncompress. PDF akışlarını açmak için şu şekilde kullanın:
podofouncompress orig.pdf uncompressed-podofo.pdf
peepdf.py
PeePDF , PDF dosyalarını keşfetmenize yardımcı olan Python tabanlı bir araçtır. Orijinal amacı PDF tabanlı kötü amaçlı yazılımların araştırılması ve incelenmesiydi, ancak tamamen zararsız PDF dosyalarının yapısını araştırmayı da yararlı buluyorum.
Bir PDF'de bulunan nesnelere ve akışlara "göz atmak" için etkileşimli olarak kullanılabilir.
Burada bir kullanım örneği vermeyeceğim, sadece belgelerine bir bağlantı vereceğim:
pdfid.py ve pdf-parser.py
pdfid.pyve Didier Stevens'ınpdf-parser.py iki PDF aracıdır Python ile yazılmış .
Geçmişleri de kötü niyetli kişilerin araştırılmasına yardımcı olmaktır. PDF'leri - ancak aynı zamanda zararsız PDF dosyalarının yapısını ve içeriğini analiz etmeyi de faydalı buluyorum.
PDF nesnesinin sıkıştırılmamış akışını nasıl çıkaracağıma bir örnek. 5 * .dump dosyasına:
pdf-parser.py -o 5 -f -d obj5.dump my.pdf
Son notlar
Lütfen bir PDF içindeki bazı ikili parçaların sıkıştırılamaz (veya insan tarafından okunabilir ASCII koduna çözülebilir) olmadığına dikkat edin, çünkü bunlar PDF'lerin içine gömülüdür ve yerel formatlarında kullanılır. Bu tür PDF parçaları, JPEG görüntüleri, yazı tipleri veya ICC renk profilleridir.
Eğer araç ve verilen komut satırı örneklere yukarıda karşılaştırırsanız, yaptıklarını keşfedeceksiniz DEĞİL tüm özdeş çıktılar üretirler. Bunları kendi başlarına farklılıkları açısından karşılaştırma çabası, PDF sözdiziminin ve dosya biçiminin doğasını daha iyi anlamanıza yardımcı olabilir.