Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

WCoG||GTFO (Working Code on GitHub)


Apparently, the PDF is _also_ it's own git repo. (This is normal for POC||GTFO.)


Not the main PDF. If you unzip (!) the main PDF, you get the copy of the "Git as PDF" article in its own separate file (PDFGitPolyglot.pdf), and that latter file you can use as a git repo.

  $ git clone PDFGitPolyglot.pdf testrepo
  Cloning into 'testrepo'...
  Receiving objects: 100% (432/432), 622.40 KiB | 0 bytes/s, done.
  Resolving deltas: 100% (270/270), done.
Within the repo you can find the raw PDF, and all the source files for that PDF (including .tex article) and scripts for turning it into a git repo.


I've never seen this done before, and I'm in awe.


When zellyn said this is normal for PoC||GTFO, they weren't kidding.

https://www.alchemistowl.org/pocorgtfo/ (Click "Spoiler" for some of the old ones)


If you are interested in polyglot files like this, have a look at the work of [0] (who was probably directly involved in this particular release).

[0] https://twitter.com/angealbertini


This is all impressive, but the PDF format is what makes all the magic possible. Among its features that make such a thing easily achievable:

- The relevant table-of-content of its data is located at the end, unlike most other file format. (You can put it near the begnning too, known as "optimized PDF" to make displaying the first page faster when downloading sequentially.)

- The PDF format is, surprisingly, text with embeeded byte streams which can contain any data.

- It does require a !PDF marker near the beginning, but it doesn't need to be first.

- It support natively ZIP compression, so embedding a ZIP inside is easy.

- ZIP allows "cheating" by not really compressing data, thus allowing data verbatim and allowing large chunks of arbitrary data, as long as you can control the first few bytes.

With these technical freedom, building a PDF that look like multiple file format is more accessible.


I think each issue does include the relevant source code. So if you have the PDF file and are reading about the code, you already have the code available and you don't need GitHub.


why the free advertisement? bitbucket and others are also pretty good.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: