2015-01-17 16 views
16

Tôi muốn phân tích đối tượng luồng trong tệp PDF được mã hóa bằng cách sử dụng /FlateDecode.Làm cách nào để giải mã luồng PDF?

Có công cụ nào cho phép một giải mã mã hóa như vậy (ASCII85decode, LZWDecode, RunlenghtDecode, v.v.) được sử dụng trong tệp PDF không?

Nội dung luồng có nhiều khả năng là cấu trúc tệp PE, mà PDF có thể sẽ sử dụng sau này trong khai thác.

Ngoài ra, có hai bảng xref trong PDF, điều đó là ổn nhưng cũng có hai %% EOF theo sau xref.

Có phải sự hiện diện của các quyền này không? (Lưu ý: Thứ hai xref điểm đến 1st xref sử dụng tên /prev

xref này dùng để chỉ thứ hai xref:.

 
xref 
5 6 
0000000618 00000 n 
0000000658 00000 n 
0000000701 00000 n 
0000000798 00000 n 
0000045112 00000 n 
0000045219 00000 n 
1 1 
0000045753 00000 n 
3 1 
0000045838 00000 n 
trailer 
> 
startxref 
46090 
%%EOF 

thứ hai xref:

 
xref 
0 5 
0000000000 65535 f 
0000000010 00000 n 
0000000067 00000 n 
0000000136 00000 n 
0000000373 00000 n 
trailer 
> 
startxref 
429 
%%EOF 

Trả lời

7
  1. "Hai xref bảng và hai %%EOF"?

    Đây không phải là dấu hiệu của tệp PDF độc hại. Có thể có hai hoặc thậm chí nhiều bản sao của mỗi tệp nếu tệp được tạo thông qua tính năng "cập nhật gia tăng". (Mỗi tệp PDF được ký điện tử giống như vậy và mỗi tệp đã được thay đổi trong Acrobat và được lưu bằng cách sử dụng nút/nút 'Lưu'/thay vì 'Lưu dưới dạng ...' nút/menu cũng giống như vậy.)

  2. "Cách giải mã luồng PDF nén từ một đối tượng cụ thể"?

    Hãy xem Didier Stevens' Kịch bản lệnh Python pdf-parser.py. Với công cụ dòng lệnh này, bạn có thể đổ luồng giải mã của bất kỳ đối tượng PDF nào vào một tệp. lệnh ví dụ để đổ dòng của đối tượng PDF số 13:

    pdf-parser.py -o 13 -f -d obj13.dump my.pdf 
    
+0

Cảm ơn câu trả lời Tôi sẽ xem xét phân tích cú pháp ... – rebel87

+0

* "Mỗi tệp PDF được ký điện tử giống như" * - Không nhất thiết. Chỉ khi các thay đổi được thêm sau khi ký mà không vi phạm chữ ký, bản cập nhật gia tăng là cần thiết. – mkl

+0

@mkl: bạn có thể chỉ cho tôi một ví dụ về tệp PDF đã ký, mà bạn đã thêm thay đổi vào sau khi ký và nơi những thay đổi này không vi phạm chữ ký không? –

9

A%%EOF nhận xét phải có mặt ở cuối tệp, mọi nhận xét khác (mọi dòng bắt đầu %) có thể có mặt tại bất kỳ thời điểm nào trong tệp. Vì vậy, có, 2 %%EOF nhận xét là hoàn toàn hợp lệ. Đây là tài liệu trong PDF Reference. Kiểm tra ví dụ 3.11 trong Sách hướng dẫn tham khảo 1.7 PDF ở trang 112 cho một ví dụ được ghi lại trong đặc tả có cấu trúc mà bạn mô tả. Đây là một tệp PDF đã được cập nhật từng bước.

Lưu ý rằng các phiên bản PDF gần đây hơn có thể có luồng tham chiếu chéo, chúng tự nén.

Cách đơn giản nhất để giải mã một tập tin PDF là sử dụng một công cụ thiết kế để làm điều đó, ví dụ MuPDF có thể làm điều này với "mutool clean -d <input pdf file> <output PDF file>" sẽ giải nén (-d) tất cả các con suối nén trong một file PDF và viết ra để một tệp PDF mới.

Nếu không, bạn sẽ cần phải sử dụng một cái gì đó như zlib cho giải nén Flate và LZW, bạn sẽ cần phải viết giải nén RunLength của riêng bạn cũng như ASCIIHex85 tôi nghĩ. Chưa kể JBIG, JPEG và JPEG2000 nếu bạn muốn các hình ảnh được giải mã.

+0

Thankyou cho câu trả lời Kens – rebel87

+2

Một số chàng trai chứ không phải ngu ngốc downvoted câu hỏi OP và cũng đã bỏ phiếu để đóng nó lại. Xin vui lòng upvote câu hỏi để cân bằng này ra ... –

3

Bạn có thể sử dụng RUPS để phân tích PDF và xuất hoặc chỉ xem luồng đã được giải mã. Về %% EOF, bạn có thể có số lượng phần phụ thêm vào PDF.

+0

Thankyou Paulo để trả lời – rebel87

+0

Một số kẻ khá ngu ngốc downvoted câu hỏi OP và cũng đã bỏ phiếu để đóng nó. Xin vui lòng upvote câu hỏi để cân bằng này ... –

2

Liên quan đến công cụ, như đã nêu trong câu trả lời khác có một số công cụ có thể được sử dụng để giải nén các luồng (trên Command- hoặc bằng cách khác). Tuy nhiên, cũng có một số công cụ giúp bạn dễ dàng kiểm tra tệp PDF bằng cách cho phép bạn đi bộ cây đối tượng và xem những gì bên trong luồng nén dễ dàng. Hai tôi đã sử dụng là:

1) callas pdfToolbox Desktop (chú ý, tôi liên kết với công ty này). pdfToolbox có tùy chọn "Khám phá PDF" cho phép bạn xem các đối tượng được liên kết với một trang, tối đa và bao gồm các toán tử trang thực tế.

2) Trình duyệt Enfocus. Tôi không chắc nếu vẫn còn tìm thấy, nhưng công cụ này sẽ cho phép bạn mở thư mục gốc của cây đối tượng của một tệp PDF và sau đó trình bày phân cấp đối tượng theo cách rất giống với Trình tìm kiếm trên máy Mac với tệp hệ thống. Trình duyệt thậm chí sẽ cho phép bạn chỉnh sửa các tệp PDF (bạn thực sự nên biết mình đang làm gì trong trường hợp này) bằng cách chỉnh sửa các đối tượng cấp thấp, tạo đối tượng mới hoặc thay đổi nội dung của luồng. Thật tuyệt.

Cập nhật: Hóa ra trình duyệt vẫn có sẵn, bạn có thể tải nó ở đây: http://www.enfocus.com/en/products/browser/

+0

Cảm ơn David Tôi chắc chắn sẽ xem xét cả hai công cụ. .. – rebel87

Các vấn đề liên quan