Readit News logoReadit News
layer8 · a month ago
These PDFs apparently used the “incremental update” feature of PDF, where edits to the document are merely appended to the original file.

It’s easy to extract the earlier versions, for example with a plain text editor. Just search for lines starting with “%%EOF”, and truncate the file after that line. Voila, the resulting file is the respective earlier PDF version.

(One exception is the first %%EOF in a so-called linearized PDF, which marks a pseudo-revision that is only there for technical reasons and isn’t a valid PDF file by itself.)

ajross · a month ago
It's hilarious the extent to which Adobe Systems's ridiculously futile attempt to chase MS Word features ended up being the single most productive espionage tool of the last quarter century.
layer8 · a month ago
I don’t think this was particularly modeled on MS Word. The incremental update feature was introduced with PDF 1.2 in 1996. It allows to quickly save changes without having to rewrite the whole file, for example when annotating a PDF.

Incremental updates are also essential for PDF signatures, since when you add a subsequent signature to a PDF, you couldn’t rewrite the file without breaking previous signatures. Hence signatures are appended as incremental updates.

theturtletalks · a month ago
New OSINT skill unlocked
toomuchtodo · a month ago
I see an interesting parallel to how people think about captured encrypted data, and how long that encryption needs to be effective for until technology catches up and can decrypt (by which point, hopefully the decrypted data is worthless). If all of these documents are stored in durable archives, future methodologies may arrive to extract value or intelligence not originally available at the time of capture and disclosure.
TazeTSchnitzel · 25 days ago
Microsoft Word once had a "Fast Save" feature which did this. It's hard to find much information about it these days. Supposedly it was removed in Office 2003 SP3: https://www.betaarchive.com/wiki/index.php?title=Microsoft_K....
password4321 · a month ago
The "print and scan physical papers back to a PDF of images" technique for final release is looking better and better from an information protection perspective.
cookiengineer · a month ago
> The "print and scan physical papers back to a PDF of images" technique for final release is looking better and better from an information protection perspective.

Note that all (edit: color-/ink-) printers have "invisible to the human eye" yellow dotcodes, which contain their serial number, and in some cases even the public IP address when they've already connected to the internet (looking at you, HP and Canon).

So I'd be careful to use a printer of any kind if you're not in control of the printer's firmware.

There's lots of tools that started to decode the information hidden in dotcodes, in case you're interested [1] [2] [3]

[1] https://github.com/Natounet/YellowDotDecode

[2] https://github.com/mcandre/dotsecrets

[3] (when I first found out about it in 2007) https://fahrplan.events.ccc.de/camp/2007/Fahrplan/events/197...

culi · a month ago
That's why I'm (still) waiting on this https://www.crowdsupply.com/open-tools/open-printer

It's mindboggling how much open-source 3d printing stuff is out there (and I'm grateful for it) but this is completely lacking in the 2d printing world

emptybits · a month ago
Thanks for the links but can you share evidence for the "public IP address" claim? Each time I've read this concept (intriguing! possible!), I search for evidence and I can't find any.

The MIC and yellow dots have been studied and decoded by many and all I've ever seen, including at your links, are essentially date + time + serial#.

Don't get me wrong ... stamping our documents with a fingerprint back to our printers and adding date and time is nasty enough. I don't see a need to overstate the scope of what is shared though.

everdrive · a month ago
>Note that all printers have "invisible to the human eye" yellow dotcodes, which contain their serial number, and in some cases even the public IP address when they've already connected to the internet (looking at you, HP and Canon).

I've got a black and white brother printer which uses toner. Is there something similar for this printer?

mmh0000 · a month ago
If you have a UV flashlight, these dots are visible with decent vision.

And of course we have to include the Wikipedia entry:

https://en.wikipedia.org/wiki/Printer_tracking_dots

askvictor · a month ago
Could this be circumvented by randomly (or not-so-randomly) adding single-pixel yellow dots to the data sent to the printer?
notepad0x90 · a month ago
a better approach is to convert them to jpeg/png. Then convert that to raw BMP, and then share or print that.

A more modern approach for text documents would be to have an LLM read and rephrase, and restructure everything without preserving punctuation and spacing, using a simple encoding like utf-8, and then use the technique above or just take analog pictures of the monitor. The analog (film) part protects against deepfakes and serves as proof if you need it (for the source and final product alike).

There various solutions out there after the leaks that keep happening where documents and confidential information is served/staged in a way that will reveal the person with who it is shared. Even if you copy paste the text into notepad and save it in ascii format, it will reveal you. Off-the-shelf printers are of course a big no-no.

If all else fails, that analog picture technique works best for exfil, but the final thing you share will still track back to you. I bet spies are back to using microfilms these days.

I only say all of that purely out of a fascination into the subject and for the sake of discussion (think like a thief if you want to catch one and all). Ultimately, you shouldn't share private information with unauthorized parties, period. Personal or otherwise. If you, like snowden, feel that all lawful means are exhausted and that is your only option to address some grievance, then don't assume any technique or planning will protect you, if it isn't worth the risk of imprisonment, then you shouldn't be doing it anyways. Assume you will be imprisoned or worse.

emeril · a month ago
I suppose I'd just save the pdf to tiff/png then remake back into a pdf from there to avoid printing and scanning?

if really paranoid, I suppose one could run a filter on the image files to make them a bit fuzzy/noisy

Deleted Comment

maximilianthe1 · a month ago
I think "Print to PDF" would be easiest
tester756 · a month ago
Why not just make screenshoot of every PDF page?
jeffbee · a month ago
It could still be identifiable, for example if the document has been prepared such that the intended recipient's identity is encoded into subtle modulation of the widths of spaces.
JumpinJack_Cash · a month ago
Is there a multifunction B&W printer which prints and then automatically positions the paper on the scanner and scans?
dredmorbius · a month ago
Far more straightforward to print a stack, then feed that stack through the copier/scanner.
iAMkenough · a month ago
That'd be fun to make Section 508 compliant at mass scale.
alhirzel · a month ago
There needs to be better tooling for inspecting PDF documents. Right now, my needs are met by using `qpdf` to export QDF [1], but it is just begging for a GUI to wrap around it...

[1] https://qpdf.readthedocs.io/en/stable/qdf.html

piffey · a month ago
Take a look at the REMNux reverse engineering page for PDF documents (https://docs.remnux.org/discover-the-tools/analyze+documents...). Lots of tools here for looking at malicious PDFs that can be used to inspect/understand even non-malicious documents.
soared · a month ago
In what contest do you use that tool? Looks like that page is primarily about editing pdfs using that format rather than inspecting.

Very tempting to fool around with the ideas especially after the Epstein pdf debacle.

Deleted Comment

Ms-J · a month ago
This is insightful work, great job.

Recently someone else revisited the Snowden documents and also found more info, but I can't recall the exact details.

Snowden and the archives were absolute gifts to us all. It's a shame he didn't release everything in full though.

libroot · a month ago
Thank you. The most recent completely new information from the Snowden files is found in Jacob Appelbaum's 2022 thesis[1], in which he revealed information that had not been previously public (not found on any previously published documents and so on). And AFAIK, the most recent new information from the published documents (along with this post) might actually be in our other posts[2], but there might be some others we aren't aware of.

[1]: https://www.electrospaces.net/2023/09/some-new-snippets-from...

[2]: Part 2: https://libroot.org/posts/going-through-snowden-documents-pa...

and part 3: https://libroot.org/posts/going-through-snowden-documents-pa...

Dead Comment

c-c-c-c-c · a month ago
> We contacted Ryan Gallagher, the journalist who led both investigations, to ask about the editorial decision to remove these sections. After more than a week, we have not received a response.

Hopefully we'll hear something now that the Christmas holidays are over.

echelon · a month ago
Why are the journalists redacting the docs? That's incredibly puzzling.

Is there something in here so damaging that they refuse to publish it?

Did the government tell them they'd be in trouble if they published it?

Are the journalists the only ones with access to the raw files?

nacozarina · a month ago
Traditionally an editor would be obligated to review the material and redact info that could be harmful to others. The publisher has distinct liability independent of govt opinion.
pfisherman · a month ago
Can someone spell out how this is possible? Do pdfs store a complete document version history? Do they store diffs in the metadata? Does this happen each time the document is edited?
aidos · a month ago
You can replace objects in PDF documents. A PDF is mostly just a bunch of objects of different types so the readers know what to do with them. Each object has a numbered ID. I recommend mutool for decompressing the PDF so you can read it in a text editor:

    mutool clean -d in.pdf out.pdf
If you look below you can see a Pages list (1 0 obj) that references (2 0 R) a Page (2 0 obj).

    1 0 obj
    <<
      /Type /Pages
      /Count 1
      /Kids [ 2 0 R ]
    >>
    endobj

    2 0 obj
    <<
      /Type /Page
      /Contents 5 0 R
      ...
    >>
    endobj
Rather than editing the PDFs in place, it's possible to update these objects to overwrite them by appending a new "generation" of an object. Notice the 0 has been incremented to a 1 here. This allows leaving the original PDF intact while making edits.

    1 1 obj
    <<
      /Type /Pages
      /Count 2
      /Kids [ 2 0 R 200 0 R ]
    >>
    endobj
You can have anything inside a PDF that you want really and it could be orphaned so a PDF reader never picks up on it. There's nothing to say an object needs to be referenced (oh, there's a "trailer" at the end of the PDF that says where the Root node is, so they know where to start).

pfisherman · a month ago
Thanks for the technical explanation! This is pretty fascinating.

So it works kind of like a soft delete — dereference instead of scrubbing the bits.

Is this behavior generally explicitly defined in PDF editors (i.e. an intended feature)? Is it defined in some standard or set of best practices? Or is it a hack (or half baked feature) someone implemented years ago that has just kind of stuck around and propagated?

SeriousM · a month ago
To put it reaaaaaly simple, a PDF is like a notion document (blocks and bricks) with a git-like object graph?
flotzam · a month ago
At the bottom of the page there's a link to the pdfresurrect package, whose description says

"The PDF format allows for previous changes to be retained in a revised version of the document, thereby keeping a running history of revisions to the document.

This tool extracts all previous revisions while also producing a summary of changes between revisions."

alhirzel · a month ago
PDFs are just a table of objects and tree of references to those objects; probably, prior versions of the document were expressed in objects with no references or something like that.
pseudosavant · a month ago
In addition to the print paper and scan approach, I do wonder how effective it would be to “Print to XPS” and then “print” that into a PDF.
bawolff · a month ago
Its crazy this is just being discovered now.
WiSaGaN · a month ago
I think it's likely someone already discovered this. It's just that info is not broadcasted to people who want to comment on this thread.
chatmasta · a month ago
I wonder if it’s because of all the attention on the Epstein PDF files.